# HG changeset patch # User michaelm # Date 1383158270 0 # Node ID 7bc67bed3c147fc0512c39d877d16b2f64821e1b # Parent dd0deeb04933ee74773b22e15dedb97219722117 8027570: NullPointerException in URLPermission.hashCode() Reviewed-by: chegar diff -r dd0deeb04933 -r 7bc67bed3c14 src/share/classes/java/net/URLPermission.java --- a/src/share/classes/java/net/URLPermission.java Mon Oct 14 22:09:15 2013 +0100 +++ b/src/share/classes/java/net/URLPermission.java Wed Oct 30 18:37:50 2013 +0000 @@ -353,7 +353,7 @@ return getActions().hashCode() + scheme.hashCode() + authority.hashCode() - + path == null ? 0 : path.hashCode(); + + (path == null ? 0 : path.hashCode()); } diff -r dd0deeb04933 -r 7bc67bed3c14 test/java/net/URLPermission/URLPermissionTest.java --- a/test/java/net/URLPermission/URLPermissionTest.java Mon Oct 14 22:09:15 2013 +0100 +++ b/test/java/net/URLPermission/URLPermissionTest.java Wed Oct 30 18:37:50 2013 +0000 @@ -26,7 +26,7 @@ /** * @test - * @bug 8010464 + * @bug 8010464 8027570 */ public class URLPermissionTest { @@ -110,6 +110,28 @@ return new ActionImpliesTest(arg1, arg2, expected); } + static class HashCodeTest extends Test { + String arg1, arg2; + int hash; + + HashCodeTest(String arg1, String arg2, int hash) { + this.arg1 = arg1; + this.arg2 = arg2; + this.hash = hash; + } + + @Override + boolean execute() { + URLPermission p = new URLPermission(arg1, arg2); + int h = p.hashCode(); + return h == hash; + } + } + + static HashCodeTest hashtest(String arg1, String arg2, int expected) { + return new HashCodeTest(arg1, arg2, expected); + } + static class URLEqualityTest extends Test { String arg1, arg2; @@ -178,6 +200,11 @@ extest("http:") }; + static Test[] hashTests = { + hashtest("http://www.foo.com/path", "GET:X-Foo", 388644203), + hashtest("http:*", "*:*", 3255810) + }; + static Test[] pathImplies2 = { imtest("http://[FE80::]:99", "http://[fe80:0::]:99", true), @@ -326,6 +353,17 @@ } + for (int i=0; i