diff --git a/server/src/main/java/org/apache/druid/metadata/SQLMetadataSegmentManager.java b/server/src/main/java/org/apache/druid/metadata/SQLMetadataSegmentManager.java index 0bcf9face187..220c26b30537 100644 --- a/server/src/main/java/org/apache/druid/metadata/SQLMetadataSegmentManager.java +++ b/server/src/main/java/org/apache/druid/metadata/SQLMetadataSegmentManager.java @@ -105,7 +105,9 @@ public class SQLMetadataSegmentManager implements MetadataSegmentManager private final SQLMetadataConnector connector; // Volatile since this reference is reassigned in "poll" and then read from in other threads. - // Starts null so we can differentiate "never polled" (null) from "polled, but empty" (empty map) + // Starts null so we can differentiate "never polled" (null) from "polled, but empty" (empty map). + // Note that this is not simply a lazy-initialized variable: it starts off as null, and may transition between + // null and nonnull multiple times as stop() and start() are called. @Nullable private volatile ConcurrentHashMap dataSources = null; diff --git a/server/src/test/java/org/apache/druid/metadata/SQLMetadataSegmentManagerTest.java b/server/src/test/java/org/apache/druid/metadata/SQLMetadataSegmentManagerTest.java index 242dc5ecb277..7d1e178257e0 100644 --- a/server/src/test/java/org/apache/druid/metadata/SQLMetadataSegmentManagerTest.java +++ b/server/src/test/java/org/apache/druid/metadata/SQLMetadataSegmentManagerTest.java @@ -133,8 +133,8 @@ public void testPoll() ImmutableSet.copyOf(manager.getDataSource("wikipedia").getSegments()) ); Assert.assertEquals( - ImmutableSet.of(segment1, segment2), - ImmutableSet.copyOf(manager.iterateAllSegments()) + ImmutableSet.of(segment1, segment2), + ImmutableSet.copyOf(manager.iterateAllSegments()) ); }