output: #fixed code
                                  @Override
      public void readComplete(int rc, LedgerHandle lh, Enumeration<LedgerEntry> seq, Object ctx) {
          SyncObj x = (SyncObj) ctx;
          if (rc != 0) {
              LOG.error("Failure during add {}", rc);
              x.failureOccurred = true;
          }
          synchronized (x) {
              x.value = true;
              x.ls = seq;
              x.notify();
          }
      }
input: #vulnerable code 
                                  @Override
      public void readComplete(int rc, LedgerHandle lh, Enumeration<LedgerEntry> seq, Object ctx) {
          if (rc != 0)
              fail("Failed to write entry");
          ls = seq;
          synchronized (sync) {
              sync.value = true;
              sync.notify();
          }
  
      } 
                              #location 5 
                              #vulnerability type THREAD_SAFETY_VIOLATION