@@ -78,7 +78,6 @@ class SpannerCloudMonitoringExporter implements MetricExporter {
78
78
private CompletableResultCode lastExportCode ;
79
79
private final MetricServiceClient client ;
80
80
private final String spannerProjectId ;
81
- private final AtomicBoolean isShutdown = new AtomicBoolean (false );
82
81
83
82
static SpannerCloudMonitoringExporter create (String projectId , @ Nullable Credentials credentials )
84
83
throws IOException {
@@ -109,7 +108,7 @@ static SpannerCloudMonitoringExporter create(String projectId, @Nullable Credent
109
108
110
109
@ Override
111
110
public CompletableResultCode export (Collection <MetricData > collection ) {
112
- if (isShutdown . get ()) {
111
+ if (client . isShutdown ()) {
113
112
logger .log (Level .WARNING , "Exporter is shut down" );
114
113
return CompletableResultCode .ofFailure ();
115
114
}
@@ -207,31 +206,24 @@ private ApiFuture<List<Empty>> exportTimeSeriesInBatch(
207
206
208
207
@ Override
209
208
public CompletableResultCode flush () {
210
- if (lastExportCode != null ) {
211
- return lastExportCode ;
212
- }
213
209
return CompletableResultCode .ofSuccess ();
214
210
}
215
211
216
212
@ Override
217
213
public CompletableResultCode shutdown () {
218
- if (! isShutdown . compareAndSet ( false , true )) {
214
+ if (client . isShutdown ( )) {
219
215
logger .log (Level .WARNING , "shutdown is called multiple times" );
220
216
return CompletableResultCode .ofSuccess ();
221
217
}
222
- CompletableResultCode flushResult = flush ();
223
218
CompletableResultCode shutdownResult = new CompletableResultCode ();
224
- flushResult .whenComplete (
225
- () -> {
226
- try {
227
- client .shutdown ();
228
- shutdownResult .succeed ();
229
- } catch (Throwable e ) {
230
- logger .log (Level .WARNING , "failed to shutdown the monitoring client" , e );
231
- shutdownResult .fail ();
232
- }
233
- });
234
- return CompletableResultCode .ofAll (Arrays .asList (flushResult , shutdownResult ));
219
+ try {
220
+ client .shutdown ();
221
+ shutdownResult .succeed ();
222
+ } catch (Throwable e ) {
223
+ logger .log (Level .WARNING , "failed to shutdown the monitoring client" , e );
224
+ shutdownResult .fail ();
225
+ }
226
+ return shutdownResult ;
235
227
}
236
228
237
229
/**
0 commit comments