diff --git a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java index d1cb08163c5..b8dfced36d5 100644 --- a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java +++ b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java @@ -76,7 +76,12 @@ public static CompletableFuture startComponent(LifecycleComponent componen component.getName(), t, e); System.err.println(e.getMessage()); // start the shutdown hook when an uncaught exception happen in the lifecycle component. - shutdownHookThread.start(); + try { + shutdownHookThread.start(); + } catch (IllegalThreadStateException ise) { + // the shutdown hook thread is already running (e.g. triggered by a prior + // exception or by the JVM shutdown sequence), so there is nothing else to do. + } }); component.publishInfo(new ComponentInfoPublisher());