8015395: NumberFormatException during startup if JDK-internal property java.lang.Integer.IntegerCache.high set to bad value

Fall back to default if a bad value is passed for this property.

Reviewed-by: mduigou
This commit is contained in:
Brian Burkhalter 2013-06-18 11:36:39 -07:00
parent 857e168f7a
commit 66bcedaa7a

View File

@ -788,10 +788,14 @@ public final class Integer extends Number implements Comparable<Integer> {
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
try {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
} catch( NumberFormatException nfe) {
// If the property cannot be parsed into an int, ignore it.
}
}
high = h;