In other cases similar to this an InternalError is thrown. It seems that for a 
property like this which can have a dramatic effect on performance silently 
ignoring bad input may not be the right choice.

java  -Djava.lang.Integer.IntegerCache.high=foobar
Exception in thread "main" java.lang.ExceptionInInitializerError
        at java.lang.Integer.valueOf(Integer.java:640)
        at sun.launcher.LauncherHelper.initHelpMessage(LauncherHelper.java:330)
Caused by: java.lang.NumberFormatException: For input string: "foobar"
        at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.parseInt(Integer.java:527)
        at java.lang.Integer$IntegerCache.<clinit>(Integer.java:607)
        ... 2 more

Doesn't seem to be that bad to me, but throwing internal error with an 
appropriate "system property java.lang.Integer.IntegerCache.high must be 
non-negative integer" message would seem to be superior than silently doing the 
wrong thing when:

java  -Djava.lang.Integer.IntegerCache.high=1024-Xmx2g

or the less obviously wrong:

java  -Djava.lang.Integer.IntegerCache.high=1024\
-Xmx2g

is encountered.

Mike

On May 29 2013, at 11:00 , Brian Burkhalter wrote:

> http://cr.openjdk.java.net/~bpb/8015395/
> 
> Fix is to ignore bad value passed for java.lang.Integer.IntegerCache.high 
> property and devolve to the default.
> 
> Thanks,
> 
> Brian

Reply via email to