)]}'
{
  "commit": "a517acd8c2afcd696159de1f6b0fcc24b48c1057",
  "tree": "6eb3c09103b36bc77abbcd93508a4bd3b376eb2c",
  "parents": [
    "133e1c70c3f30c7be3ddfbafcf0eeb8d048022c4"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Tue Dec 21 14:17:43 2021 +0100"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Tue Dec 21 14:17:43 2021 +0100"
  },
  "message": "Ignore current violations of ThreadPriorityCheck and enable error level for it\n\nThere are 2 legacy usages of Thread#setPriority:\n\n* WorkQueue:\n  - class to create thread pools for all kind of background tasks\n  - the thread priority is used to mark some thread pools as more\n    important than others to take priority if there are not enough free\n    threads\n  - the size of the thread pools is controlled by gerrit.config and\n    admins are advised to configure the thread pool sizes carefully by\n    taking the number of available processors into account\n\n* AbstractLuceneIndex:\n  - class to do indexing when Lucene is used as index backend\n  - the thread priority is used to give the Lucene reopen thread a\n    higher priority than normal worker threads (the Lucene reopen thread\n    periodically updates some cached references in Lucene)\n\nThe recommendation for addressing ThreadPriorityCheck is to ensure that\nthe average number of runnable threads is not significantly greater than\nthe number of processors. It\u0027s the responsibility of admins to configure\nthe thread pool sizes accordingly. Using thread priorities in addition\nshouldn\u0027t do any harm, hence we keep the current calls as they are.\nHowever we enable the ThreadPriorityCheck ErrorProne bug pattern to get\naware of future usages and avoid them if possible.\n\nBug: Issue 15085\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I544da327c56fd884853d885bf725d21fd0f78e44\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5392ab464a5132c151467ad0b02073657397eea2",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/lucene/AbstractLuceneIndex.java",
      "new_id": "f6013a12c3206717b076926d61c1ec565d982699",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/lucene/AbstractLuceneIndex.java"
    },
    {
      "type": "modify",
      "old_id": "8b59474d31a57f260a7735a09d19ed4bba35153f",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/git/WorkQueue.java",
      "new_id": "06f4b7889cd3281f417c289ac96983d5091002bb",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/git/WorkQueue.java"
    },
    {
      "type": "modify",
      "old_id": "c5da873619411632308e4b4943d51b7cd9514cf4",
      "old_mode": 33188,
      "old_path": "tools/BUILD",
      "new_id": "101b46e0453d4e38aac05cef3381efcd5db04362",
      "new_mode": 33188,
      "new_path": "tools/BUILD"
    }
  ]
}
