diff options
Diffstat (limited to 'plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java')
-rw-r--r-- | plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java new file mode 100644 index 000000000000..9b5987966ca6 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/initialization/non_thread_safe_lazy_initialization/NonThreadSafeLazyInitialization.java @@ -0,0 +1,64 @@ +package com.siyeh.igtest.threading; + +public class NonThreadSafeLazyInitialization { + private static Object foo; + private Object instance; + + public Object getInstance() { + if (instance == null) { + instance = new Object(); + } + return instance; + } + + static + { + if (foo == null) { + foo = new Object(); + } + + } + + { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + + } + + public void instMethod() { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + } + + public static void staticMethod() { + if (foo == null) { + <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = new Object(); + } + } + + public void lockedInstMethod() { + synchronized (NonThreadSafeLazyInitialization.class) { + if (foo == null) { + foo = new Object(); + } + } + } + + private static String example = null; + + public Object getInstance2() { + if (foo == null) { + while (true) { + foo = ""; + } + } + return foo; + } + + public Object getInstance3() { + if (foo == null) <warning descr="Lazy initialization of 'static' field 'foo' is not thread-safe">foo</warning> = ""; + return foo; + } +} |