)]}'
{
  "commit": "b61faad2dbe40237a60c3ddb4497d48791003d4a",
  "tree": "4178f2de4be73202371ef4e26102ecae25fab866",
  "parents": [
    "51763923b765522ff0c1dd8c01c772303220b4e8"
  ],
  "author": {
    "name": "kylecarlstrom",
    "email": "kylecarlstrom@google.com",
    "time": "Thu Aug 27 14:13:24 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Aug 27 14:15:22 2026 -0700"
  },
  "message": "Omit Object#wait0 in ThreadUtils slow interrupt culprit selection.\n\nIn OpenJDK 21+, java.lang.Object.wait() calls the native wait0() method. ThreadUtils.warnAboutSlowInterrupt only checked for method name \"wait\", causing threads waiting on Object monitors to not be recognized as waiting. Because the main server thread has a deep stack trace, it was incorrectly selected as the longest active stack trace during slow interrupts.\n\nAlso add a null-safe fallback if all threads in the JVM are waiting or parked.\n\nPiperOrigin-RevId: 972151587\nChange-Id: I903441ed3d4bbec44a5e4bfbb964232ade1cc793\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f0171e2ae71d241c85cb7bfb280292c764ab684",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/util/ThreadUtils.java",
      "new_id": "fa0327900eb45160ca4a4e27ca83af0bba859cf1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/util/ThreadUtils.java"
    },
    {
      "type": "modify",
      "old_id": "398602f14ed7548da995e3ada9d9aeefbbe4f2ad",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/util/ThreadUtilsTest.java",
      "new_id": "7a0702d01130fcbec75aec15a6993ff3979c67d7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/util/ThreadUtilsTest.java"
    }
  ]
}
