diff --git a/src/main/java/com/amazon/janusgraph/diskstorage/dynamodb/DynamoDBDelegate.java b/src/main/java/com/amazon/janusgraph/diskstorage/dynamodb/DynamoDBDelegate.java index 235221f..470ee67 100644 --- a/src/main/java/com/amazon/janusgraph/diskstorage/dynamodb/DynamoDBDelegate.java +++ b/src/main/java/com/amazon/janusgraph/diskstorage/dynamodb/DynamoDBDelegate.java @@ -33,6 +33,7 @@ import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.Future; import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import org.apache.commons.lang3.builder.EqualsBuilder; import org.janusgraph.diskstorage.BackendException; @@ -856,6 +857,12 @@ public void shutdown() { MetricManager.INSTANCE.getRegistry().remove(executorGaugeName); // TODO(amcp) figure out a way to make the thread pool not be static // https://github.com/awslabs/dynamodb-titan-storage-backend/issues/48 + clientThreadPool.shutdown(); + try { + clientThreadPool.awaitTermination(5L, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new IllegalStateException("Shutdown was interrupted", e); + } client.shutdown(); }