From e9c58c74abbad2b79e2ad5c8f293bcff09f85a90 Mon Sep 17 00:00:00 2001 From: Robert Merget Date: Thu, 19 Jun 2025 05:47:00 +0000 Subject: [PATCH] Fix SING_SINGLETON_GETTER_NOT_SYNCHRONIZED in BulkScanWorkerManager - Add volatile keyword to instance field - Implement double-checked locking for thread-safe singleton initialization - Resolves SpotBugs issue: SING_SINGLETON_GETTER_NOT_SYNCHRONIZED --- .../de/rub/nds/crawler/core/BulkScanWorkerManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/rub/nds/crawler/core/BulkScanWorkerManager.java b/src/main/java/de/rub/nds/crawler/core/BulkScanWorkerManager.java index d9df6cb..7ff0904 100644 --- a/src/main/java/de/rub/nds/crawler/core/BulkScanWorkerManager.java +++ b/src/main/java/de/rub/nds/crawler/core/BulkScanWorkerManager.java @@ -24,11 +24,15 @@ public class BulkScanWorkerManager { private static final Logger LOGGER = LogManager.getLogger(); - private static BulkScanWorkerManager instance; + private static volatile BulkScanWorkerManager instance; public static BulkScanWorkerManager getInstance() { if (instance == null) { - instance = new BulkScanWorkerManager(); + synchronized (BulkScanWorkerManager.class) { + if (instance == null) { + instance = new BulkScanWorkerManager(); + } + } } return instance; }