From 3126ad31066e66c35aa39f0c33ce2778f1e7089a Mon Sep 17 00:00:00 2001 From: Morteza Adigozalpour Date: Tue, 7 Sep 2021 20:43:47 +0200 Subject: [PATCH] fix: Remove unnecessary and possibly not threadsafe flag (#1811) --- .../iluwatar/singleton/ThreadSafeDoubleCheckLocking.java | 6 +----- .../iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java | 4 +--- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java index d3a164d37..0e322103a 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeDoubleCheckLocking.java @@ -36,16 +36,12 @@ public final class ThreadSafeDoubleCheckLocking { private static volatile ThreadSafeDoubleCheckLocking instance; - private static boolean flag = true; - /** * private constructor to prevent client from instantiating. */ private ThreadSafeDoubleCheckLocking() { // to prevent instantiating by Reflection call - if (flag) { - flag = false; - } else { + if (instance != null) { throw new IllegalStateException("Already initialized."); } } diff --git a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java index 2e68c2ece..94f47e661 100644 --- a/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java +++ b/singleton/src/main/java/com/iluwatar/singleton/ThreadSafeLazyLoadedIvoryTower.java @@ -34,9 +34,7 @@ public final class ThreadSafeLazyLoadedIvoryTower { private ThreadSafeLazyLoadedIvoryTower() { // Protect against instantiation via reflection - if (instance == null) { - instance = this; - } else { + if (instance != null) { throw new IllegalStateException("Already initialized."); } }