diff --git a/src/main/java/io/vertx/ext/shell/command/impl/CommandRegistryImpl.java b/src/main/java/io/vertx/ext/shell/command/impl/CommandRegistryImpl.java index 66b3d316..b320d633 100644 --- a/src/main/java/io/vertx/ext/shell/command/impl/CommandRegistryImpl.java +++ b/src/main/java/io/vertx/ext/shell/command/impl/CommandRegistryImpl.java @@ -55,22 +55,21 @@ public static CommandRegistry get(Vertx vertx) { final VertxInternal vertx; final ConcurrentHashMap commandMap = new ConcurrentHashMap<>(); - final Closeable hook; private volatile boolean closed; public CommandRegistryImpl(VertxInternal vertx) { - this.vertx = vertx; - hook = completionHandler -> { + + vertx.registerResource(timeout -> { try { doClose(); registries.remove(vertx); } catch (Exception e) { - completionHandler.fail(e); - return; + return Future.failedFuture(e); } - completionHandler.succeed(); - }; - vertx.addCloseHook(hook); + return Future.succeededFuture(); + }); + + this.vertx = vertx; } private void doClose() {