Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8349241

Fix the concurrent execution JVM crash of StringBuilder::append(int/long)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3 P3
    • 25
    • 25
    • core-libs
    • None

      The following code can reproduce the problem, writing out of bounds causes JVM Crash

         StringBuilder buf = new StringBuilder();
          buf.append('δΈ­');

          final CountDownLatch latch = new CountDownLatch(10);
          Runnable r = () -> {
              for (int i = 0; i < 10000; i++) {
                  buf.setLength(0);
                  buf.trimToSize();
                  buf.append(123456789);
              }
              latch.countDown();
          };
          Thread[] threads = new Thread[10];
          for (int i = 0; i < threads.length; i++) {
              threads[i] = new Thread(r);
          }
          for (Thread t : threads) {
              t.start();
          }
          latch.await();
      }

            swen Shaojin Wen
            swen Shaojin Wen
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: