)]}'
{
  "commit": "367e9c8f759aadd447f829d1d9a354513da53b50",
  "tree": "2795e381c6fc3275101f802204ca3944b0877d83",
  "parents": [
    "2550fd8d687ba4bd55b95d8cf577af1045c84913"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Fri Jun 02 11:29:41 2023 +0000"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Fri Jun 02 11:32:40 2023 +0000"
  },
  "message": "RepoUpdater: Convert ConcurrentRefUpdateException into LockFailureException\n\nCalling the RepoCommand may fail with a ConcurrentRefUpdateException\nthat represents a LOCK_FAILURE. Convert this exception into a\nLockFailureException so that our auto-retrying logic for LOCK_FAILURES\ncan recognize the LOCK_FAILURE and retry the operation, instead of\nfailing immediately.\n\nExample stacktrace:\nupdate for foo/manifest:*:default.xml (Repo) \u003d\u003e foo/superproject:* (ref refs/heads/main) failed: org.eclipse.jgit.api.errors.ConcurrentRefUpdateException: Cannot lock refs/heads/main. Ensure that no other process has an open file handle on the lock file refs/heads/main.lock, then you may delete the lock file and retry.. RefUpdate return code was: LOCK_FAILURE\n\tat org.eclipse.jgit.gitrepo.BareSuperprojectWriter.commitTreeOnCurrentTip(BareSuperprojectWriter.java:311)\n\tat org.eclipse.jgit.gitrepo.BareSuperprojectWriter.write(BareSuperprojectWriter.java:141)\n\tat org.eclipse.jgit.gitrepo.RepoCommand.call(RepoCommand.java:573)\n\tat com.googlesource.gerrit.plugins.supermanifest.RepoUpdater.update(RepoUpdater.java:74)\n\tat com.googlesource.gerrit.plugins.supermanifest.SuperManifestRefUpdatedListener.updateForConfig(SuperManifestRefUpdatedListener.java:424)\n\tat com.googlesource.gerrit.plugins.supermanifest.SuperManifestRefUpdatedListener.onGitReferenceUpdated(SuperManifestRefUpdatedListener.java:314)\n\nFollow the example of change I2ff60b01a in gerrit core.\n\nChange-Id: I46be2ee251bfef9dee4ea65c3f689415095501dd\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "950f252524845abee497dd1dc84c45e3e652414a",
      "old_mode": 33188,
      "old_path": "java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java",
      "new_id": "c888d57d7dbc932f9b7cde4ce5fe4444bd8921e6",
      "new_mode": 33188,
      "new_path": "java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java"
    }
  ]
}
