RFR: 8297530: java.lang.IllegalArgumentException: Negative length on strings concatenation

Alan Bateman alanb at openjdk.org
Thu Nov 24 14:17:22 UTC 2022


On Thu, 24 Nov 2022 13:23:13 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> When concatenating Strings, OutOfMemoryError should be thrown on all overflow conditions. This fixes a case that erroneously thro IAE on concatenations of long (`length > Integer.MAX_VALUE/2`) UTF16 strings due failing to check for overflow after shifting index left with the coder.
> 
> This was caught by a fuzzer test. Added a sanity test that fails without the patch (loosely derived from ImplicitStringConcatMany.java)

test/jdk/java/lang/String/concat/ImplicitStringConcatOOME.java line 36:

> 34:  * @run main/othervm -Xverify:all -Xmx4g ImplicitStringConcatOOME
> 35:  *
> 36:  * @compile ImplicitStringConcatOOME.java

I don't think you need the @compile tags but you might need `@requires sun.arch.data.model == "64"` so that the test only runs on 64-bit systems.

-------------

PR: https://git.openjdk.org/jdk/pull/11354


More information about the core-libs-dev mailing list