Skip to content

Commit 426b4c7

Browse files
committed
Protect against null datacenter
1 parent 69ecc6e commit 426b4c7

1 file changed

Lines changed: 18 additions & 15 deletions

File tree

core/src/main/java/com/datastax/oss/driver/internal/core/metadata/diagnostic/topology/TopologyDiagnosticGenerator.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,25 @@ protected void generateChildDiagnostics(
6969
DefaultNodeGroupDiagnostic.Builder globalDiagnostic,
7070
Map<String, DefaultNodeGroupDiagnostic.Builder> localDiagnostics) {
7171
for (Node node : nodes.values()) {
72-
DefaultNodeGroupDiagnostic.Builder localDiagnostic =
73-
localDiagnostics.compute(
74-
node.getDatacenter(),
75-
(dc, diag) -> diag == null ? new DefaultNodeGroupDiagnostic.Builder() : diag);
76-
localDiagnostic.incrementTotal();
77-
globalDiagnostic.incrementTotal();
78-
if (node.getState() == NodeState.UP) {
79-
localDiagnostic.incrementUp();
80-
globalDiagnostic.incrementUp();
81-
} else if (node.getState() == NodeState.UNKNOWN) {
82-
localDiagnostic.incrementUnknown();
83-
globalDiagnostic.incrementUnknown();
84-
} else {
85-
localDiagnostic.incrementDown();
86-
globalDiagnostic.incrementDown();
72+
if (node.getDatacenter() != null) {
73+
DefaultNodeGroupDiagnostic.Builder localDiagnostic =
74+
localDiagnostics.compute(
75+
node.getDatacenter(),
76+
(dc, diag) -> diag == null ? new DefaultNodeGroupDiagnostic.Builder() : diag);
77+
incrementCounters(localDiagnostic, node);
8778
}
79+
incrementCounters(globalDiagnostic, node);
80+
}
81+
}
82+
83+
protected void incrementCounters(DefaultNodeGroupDiagnostic.Builder diagnostic, Node node) {
84+
diagnostic.incrementTotal();
85+
if (node.getState() == NodeState.UP) {
86+
diagnostic.incrementUp();
87+
} else if (node.getState() == NodeState.UNKNOWN) {
88+
diagnostic.incrementUnknown();
89+
} else {
90+
diagnostic.incrementDown();
8891
}
8992
}
9093
}

0 commit comments

Comments
 (0)