On Tue, 4 Feb 2025 22:54:48 GMT, Shaojin Wen <s...@openjdk.org> wrote:
>> The following code can reproduce the problem, writing out of bounds causes >> JVM Crash >> >> >> StringBuilder buf = new StringBuilder(); >> buf.append('δΈ'); >> >> Thread[] threads = new Thread[40]; >> final CountDownLatch latch = new CountDownLatch(threads.length); >> Runnable r = () -> { >> for (int i = 0; i < 1000000; i++) { >> buf.setLength(0); >> buf.trimToSize(); >> buf.append(123456789123456789L); >> } >> latch.countDown(); >> }; >> >> for (int i = 0; i < threads.length; i++) { >> threads[i] = new Thread(r); >> } >> for (Thread t : threads) { >> t.start(); >> } >> latch.await(); >> >> >> This problem can be avoided by using the value of ensureCapacityInternal >> directly. > > Shaojin Wen has updated the pull request incrementally with one additional > commit since the last revision: > > fx comments Thanks @RogerRiggs, your suggestion is great, I have fixed it, please help me review it again. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23427#issuecomment-2635254981