RFR [9] 8040837: Avoid provoking NFEs when initializing InetAddrCachePolicy
Bernd Eckenfels
bernd-2014 at eckenfels.net
Thu Apr 17 20:28:36 UTC 2014
Am Thu, 17 Apr 2014 21:50:23 +0200
schrieb Bernd Eckenfels <bernd-2014 at eckenfels.net>:
> Hello,
>
> I would propose to use Integer.valueOf(tmp) instead, but looking at
> the context I think it is even better to skip this and the following
> null check with Integer.parseInt().
This is even shorter and it reduces the privileged actions invocations:
Integer tmp = java.security.AccessController.doPrivileged (
new PrivilegedAction<String>() {
public String run() {
try {
String tmpString = Security.getProperty(cachePolicyProp);
if (tmpString != null) return Integer.valueOf(tmpString);
} catch (NumberFormatException | IllegalArgumentException ignored) { }
try {
return Integer.getInteger(cachePolicyPropFallback);
} catch (NumberFormatException | IllegalArgumentException ignored) { }
return null;
}
});
if (tmp != null) {
cachePolicy = tmp.intValue();
if (cachePolicy < 0) {
cachePolicy = FOREVER;
}
propertySet = true;
} else {
/* No properties defined for positive caching. If there is no
* security manager then use the default positive cache value. */
if (System.getSecurityManager() == null) {
cachePolicy = DEFAULT_POSITIVE;
}
}
NB: this will
More information about the net-dev
mailing list