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