diff --git a/google-cloud-bigtable-emulator-core/src/main/java/com/google/cloud/bigtable/emulator/core/EmulatorController.java b/google-cloud-bigtable-emulator-core/src/main/java/com/google/cloud/bigtable/emulator/core/EmulatorController.java index 5ae045c8f7..d39c263faf 100644 --- a/google-cloud-bigtable-emulator-core/src/main/java/com/google/cloud/bigtable/emulator/core/EmulatorController.java +++ b/google-cloud-bigtable-emulator-core/src/main/java/com/google/cloud/bigtable/emulator/core/EmulatorController.java @@ -134,10 +134,12 @@ public synchronized void start(int port) shutdownHook = new Thread( () -> { - if (!isStopped) { - isStopped = true; - process.destroy(); + synchronized (EmulatorController.this) { + if (!isStopped) { + isStopped = true; + } } + process.destroy(); }); Runtime.getRuntime().addShutdownHook(shutdownHook);