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 = String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) { if (integerCacheHighPropValue != null) {
try {
int i = parseInt(integerCacheHighPropValue); int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127); i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE // Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low) -1); 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; high = h;