RFR: 8027570 NullPointerException in URLPermission.hashCode()
Michael McMahon
michael.x.mcmahon at oracle.com
Wed Oct 30 09:51:04 PDT 2013
Interesting little bug this one. The precedence rules
were overlooked and the expected result of an expression evaluation
wasn't what was expected. The webrev is below, but the diff is
diff -r 9a5048dc7c0d src/share/classes/java/net/URLPermission.java
--- a/src/share/classes/java/net/URLPermission.java Wed Oct 30
14:41:42 2013 +0000
+++ b/src/share/classes/java/net/URLPermission.java Wed Oct 30
16:33:15 2013 +0000
@@ -353,7 +353,7 @@
return getActions().hashCode()
+ scheme.hashCode()
+ authority.hashCode()
- + path == null ? 0 : path.hashCode();
+ + (path == null ? 0 : path.hashCode());
}
Without the parentheses:
scheme.hashCode() + authority.hashCode() + path
is evaluated as a string concatenation. The result is compared with
null, which always fails,
meaning that path.hashCode() is always called, even when path is null ....
webrev is at http://cr.openjdk.java.net/~michaelm/8027570/webrev.1/
Thanks
Michael
More information about the net-dev
mailing list