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)

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

Commit messages:
 - Verify the sanity test holds when -CompactStrings
 - Adjust newArray to correctly throw OOME on overflow due shifting the index 
for UTF16 encoding

Changes: https://git.openjdk.org/jdk/pull/11354/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11354&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8297530
  Stats: 143 lines in 2 files changed: 141 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/11354.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11354/head:pull/11354

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

Reply via email to