39
39
import com .datastax .oss .driver .internal .core .metadata .MetadataManager .RefreshSchemaResult ;
40
40
import com .datastax .oss .driver .internal .core .metadata .NodeStateEvent ;
41
41
import com .datastax .oss .driver .internal .core .metadata .NodeStateManager ;
42
+ import com .datastax .oss .driver .internal .core .metrics .NodeMetricUpdater ;
42
43
import com .datastax .oss .driver .internal .core .metrics .SessionMetricUpdater ;
43
44
import com .datastax .oss .driver .internal .core .pool .ChannelPool ;
44
45
import com .datastax .oss .driver .internal .core .util .Loggers ;
@@ -549,10 +550,11 @@ private void close() {
549
550
550
551
// clear metrics to prevent memory leak
551
552
for (Node n : metadataManager .getMetadata ().getNodes ().values ()) {
552
- ((DefaultNode ) n ).getMetricUpdater ().clearMetrics ();
553
+ NodeMetricUpdater updater = ((DefaultNode ) n ).getMetricUpdater ();
554
+ if (updater != null ) updater .clearMetrics ();
553
555
}
554
556
555
- DefaultSession . this . metricUpdater .clearMetrics ();
557
+ if ( metricUpdater != null ) metricUpdater .clearMetrics ();
556
558
557
559
List <CompletionStage <Void >> childrenCloseStages = new ArrayList <>();
558
560
for (AsyncAutoCloseable closeable : internalComponentsToClose ()) {
@@ -575,10 +577,11 @@ private void forceClose() {
575
577
576
578
// clear metrics to prevent memory leak
577
579
for (Node n : metadataManager .getMetadata ().getNodes ().values ()) {
578
- ((DefaultNode ) n ).getMetricUpdater ().clearMetrics ();
580
+ NodeMetricUpdater updater = ((DefaultNode ) n ).getMetricUpdater ();
581
+ if (updater != null ) updater .clearMetrics ();
579
582
}
580
583
581
- DefaultSession . this . metricUpdater .clearMetrics ();
584
+ if ( metricUpdater != null ) metricUpdater .clearMetrics ();
582
585
583
586
if (closeWasCalled ) {
584
587
// onChildrenClosed has already been scheduled
0 commit comments