Please review the fix for:

6992121: StringBuilder.ensureCapacity(int minCap) throws OutOfMemoryError with minCap=Integer.MIN_VALUE

Webrev at:
    http://cr.openjdk.java.net/~mchung/6992121/webrev.00/

This is a regression caused by the changes for 6933217 (Huge arrays handled poorly in core libraries). The ensureCapacity() method in the StringBuffer, StringBuilder, ArrayList, and Vector classes are a public API that accepts negative numbers. The following overflow-conscious code:

  if (minimumCapacity - value.length>  0)

considers negative minimumCapacity as overflow case where OutOfMemoryError will 
be thrown.  So the implementation of the public ensureCapacity() methods need 
to check if the input argument is positive before doing the above 
overflow-conscious check.

Thanks
Mandy

Reply via email to