)]}'
{
  "commit": "32eec14741464d1d2e6d286ed9d6ea83af821272",
  "tree": "bb01e4cb29266c9a025d7dc1d40e2d8dc97ad596",
  "parents": [
    "6f35f5b537bad5e7ad5d75eb58c203d18998de45"
  ],
  "author": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Thu Oct 12 15:45:17 2023 +0200"
  },
  "committer": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Thu Oct 12 17:03:34 2023 +0200"
  },
  "message": "IndexEventHandlerTest: fix flakiness in concurrent indexing tests\n\nThe usage of CyclicBarrier to synchronize two concurrent tasks was not\ncoded correctly. The assumption that when both concurrent tasks pass the\n`await()` point, which occurred before attempting to acquire a lock,\nensures concurrency was wrong: it can happen that one task acquires a\nlock and releases it before the other task even tries to acquire the\nlock. In the end both tasks succeed in acquiring the lock.\n\nTo fix the flakiness, the `await()` on the CyclicBarrier has to be\ncalled after a lock was successfully acquired but before it is released\nand also when failing to acquire the lock. This way the two `await()`\ncalls from two concurrent tasks ensure real concurrency.\n\nChange-Id: I4dd4faec5e94eecdefed4729e241ef174428bba1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "75c8a396cb784b7dc92a334dc15d09e5ecde4dee",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java",
      "new_id": "7c6a4f6641939607be4f9d03df17a4f979fb6325",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java"
    }
  ]
}
