Skip to main content
diff options
authorCarsten Hammer2020-12-06 16:12:49 +0000
committerAlexander Kurtakov2021-07-21 12:04:37 +0000
commita5ebd39f8583016398b6a5cd84e803c3f90035dc (patch)
parent6106c97ef442846155e07a86908df1a6e14a0172 (diff) in This method contains an unsynchronized lazy initialization of a non-volatile static field. Because the compiler or processor may reorder instructions, threads are not guaranteed to see a completely initialized object, if the method can be called by multiple threads. You can make the field volatile to correct the problem. For more information, see the Java Memory Model web site. Rank: Troubling (14), confidence: Normal Pattern: LI_LAZY_INIT_STATIC Type: LI, Category: MT_CORRECTNESS (Multithreaded correctness) Change-Id: I232f050bbbc83403c4b7346cb411ec47b74f19fd Signed-off-by: Carsten Hammer <> Reviewed-on: Tested-by: Platform Bot <> Reviewed-by: Alexander Kurtakov <>
1 files changed, 5 insertions, 5 deletions
diff --git a/ b/
index 255738d2f..cfbe9e9fb 100644
--- a/
+++ b/
@@ -39,17 +39,17 @@ public class ScopeRegistry {
private static List<IScopeHandle> scopes = null;
- private static ScopeRegistry instance;
private boolean initialized = false;
+ private static class RegistryHolder {
+ static final ScopeRegistry instance = new ScopeRegistry();
+ }
private ScopeRegistry() {
public static ScopeRegistry getInstance() {
- if (instance == null)
- instance = new ScopeRegistry();
- return instance;
+ return RegistryHolder.instance;
public AbstractHelpScope getScope(String id) {

Back to the top