RFR 7103957: NegativeArraySizeException while initializing class IntegerCache

Brian Burkhalter brian.burkhalter at oracle.com
Wed Jan 9 19:58:27 UTC 2013


Please review at your convenience.

Issue
https://jbs.oracle.com/bugs/browse/JDK-7103957

The problem and suggested fix provided in the issue description are accurate: the array is one element too large.

Diff
--- a/src/share/classes/java/lang/Integer.java	Tue Nov 13 20:02:39 2012 -0800
+++ b/src/share/classes/java/lang/Integer.java	Wed Jan 09 11:45:28 2013 -0800
@@ -772,7 +772,7 @@
                 int i = parseInt(integerCacheHighPropValue);
                 i = Math.max(i, 127);
                 // Maximum array size is Integer.MAX_VALUE
-                h = Math.min(i, Integer.MAX_VALUE - (-low));
+                h = Math.min(i, Integer.MAX_VALUE - (-low) - 1);
             }
             high = h;

Testing
All java/lang tests passed on default array of platforms.

Thanks,

Brian


More information about the core-libs-dev mailing list