Sometimes constraints are questionable

James Laskey james.laskey at oracle.com
Fri Jun 5 20:48:19 UTC 2020


I’m fixing the two in java.base. The other two are in different modules and would require changes to export. So you can file on those. 

��

> On Jun 5, 2020, at 5:36 PM, Stuart Marks <Stuart.Marks at oracle.com> wrote:
> 
> 
> 
>> On 6/3/20 10:36 AM, Stuart Marks wrote:
>> 3) Integer wraparound/overflow during size computation. AS.newLength generates this:
>>     OutOfMemoryError: Required array length too large
>> (3) is the only case generated by the library. In fact, AS.hugeLength() has oldLength and minGrowth parameters, which seems like enough detail already. These could reasonably be formatted into the error message, something like:
>>     private static int hugeLength(int oldLength, int minGrowth) {
>>         int minLength = oldLength + minGrowth;
>>         if (minLength < 0) { // overflow
>>             throw new OutOfMemoryError(
>>                 String.format("Required array length %d + %d too large", oldLength, minGrowth));
>>         }
>> Would this help? If this were added, would it be sufficient to allow various use sites to convert to use AS.newLength? (Except possibly StringJoiner.)
> 
> Anything further on this? Should I file a bug/rfe for this? Also, I could update the docs to explain ArraysSupport.newLength better, per my earlier exchange with David Holmes.
> 
> s'marks
> 



More information about the core-libs-dev mailing list