)]}'
{
  "commit": "35649d11d85ba3d2e0202b69cab0860096151403",
  "tree": "58ab6998ca2cebd443a7605d534e25d151dc2f0e",
  "parents": [
    "0164eb9494a40b89c5a5c0c0331374dad432ff0b"
  ],
  "author": {
    "name": "Carsten Hammer",
    "email": "carsten.hammer@t-online.de",
    "time": "Tue Dec 08 23:03:03 2020 +0100"
  },
  "committer": {
    "name": "Karsten Thoms",
    "email": "karsten.thoms@karakun.com",
    "time": "Tue Jan 18 17:29:45 2022 -0500"
  },
  "message": "Bug 569590 - Use double-checked locking idiom\n\nIf you need high-performance lazy initializing of an instance field, use\nthe double-check idiom with a volatile field. This idiom wasn\u0027t\nguaranteed to work until release 5.0, when the platform got a new memory\nmodel. The idiom is very fast but also complicated and delicate, so\ndon\u0027t be tempted to modify it in any way. Just copy and paste --\nnormally not a good idea, but appropriate here:\n\n// Double-check idiom for lazy initialization of instance fields.\nprivate volatile FieldType field;\nFieldType getField() {\n    FieldType result \u003d field;\n    if (result \u003d\u003d null) { // First check (no locking)\n        synchronized(this) {\n            result \u003d field;\n            if (result \u003d\u003d null) // Second check (with locking)\n                field \u003d result \u003d computeFieldValue();\n        }\n    }\n     return result;\n}\n\nsee https://www.oracle.com/technical-resources/articles/javase/bloch-effective-08-qa.html\n\nChange-Id: I18685e5c8fc52bb98e1e28db98cbbe52afd09d26\nSigned-off-by: Carsten Hammer \u003ccarsten.hammer@t-online.de\u003e\nReviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/173575\nTested-by: Platform Bot \u003cplatform-bot@eclipse.org\u003e\nReviewed-by: Karsten Thoms \u003ckarsten.thoms@karakun.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "40761afd5e7b5eafed97ffbe17b5858fa308099c",
      "old_mode": 33188,
      "old_path": "bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/plugin/AbstractUIPlugin.java",
      "new_id": "5c0a4540935b3097723e268c6031be10244b1a45",
      "new_mode": 33188,
      "new_path": "bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/plugin/AbstractUIPlugin.java"
    }
  ]
}
