Skip to content

Commit de889b1

Browse files
committed
Fix metadata events for case when tablet map is empty
Tablet map could be empty, we need to address these cases.
1 parent 35dd5d9 commit de889b1

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

core/src/main/java/com/datastax/oss/driver/internal/core/metadata/AddTabletRefresh.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.datastax.oss.driver.api.core.CqlIdentifier;
44
import com.datastax.oss.driver.api.core.metadata.Tablet;
5+
import com.datastax.oss.driver.api.core.metadata.TabletMap;
56
import com.datastax.oss.driver.internal.core.context.InternalDriverContext;
67

78
/** Updates tablet metadata by adding provided Tablet to the TabletMap. */
@@ -20,7 +21,9 @@ public AddTabletRefresh(CqlIdentifier keyspace, CqlIdentifier table, Tablet tabl
2021
@Override
2122
public Result compute(
2223
DefaultMetadata oldMetadata, boolean tokenMapEnabled, InternalDriverContext context) {
23-
oldMetadata.tabletMap.addTablet(keyspace, table, tablet);
24+
if (oldMetadata.tabletMap != null) {
25+
oldMetadata.tabletMap.addTablet(keyspace, table, tablet);
26+
}
2427
return new Result(oldMetadata);
2528
}
2629
}

core/src/main/java/com/datastax/oss/driver/internal/core/metadata/RemoveNodeRefresh.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ public Result compute(
6767
return new Result(oldMetadata);
6868
} else {
6969
LOG.debug("[{}] Removing node {}", logPrefix, removedNode);
70-
oldMetadata.tabletMap.removeByNode(removedNode);
70+
if (oldMetadata.tabletMap != null) {
71+
oldMetadata.tabletMap.removeByNode(removedNode);
72+
}
7173
return new Result(
7274
oldMetadata.withNodes(newNodesBuilder.build(), tokenMapEnabled, false, null, context),
7375
ImmutableList.of(NodeStateEvent.removed((DefaultNode) removedNode)));

0 commit comments

Comments
 (0)