From 1b68b028570d97aa3eb81168e68d1836b5aece60 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Mon, 23 Nov 2020 13:30:07 -0500 Subject: [PATCH] Shut down rpc service at app shut down routine --- .../main/java/bisq/core/app/BisqExecutable.java | 2 ++ .../core/app/misc/ExecutableForAppWithP2p.java | 2 ++ .../java/bisq/core/dao/node/full/RpcService.java | 14 ++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/core/src/main/java/bisq/core/app/BisqExecutable.java b/core/src/main/java/bisq/core/app/BisqExecutable.java index 67270b5c6de..5e4863c818f 100644 --- a/core/src/main/java/bisq/core/app/BisqExecutable.java +++ b/core/src/main/java/bisq/core/app/BisqExecutable.java @@ -21,6 +21,7 @@ import bisq.core.btc.wallet.BsqWalletService; import bisq.core.btc.wallet.BtcWalletService; import bisq.core.dao.DaoSetup; +import bisq.core.dao.node.full.RpcService; import bisq.core.offer.OpenOfferManager; import bisq.core.setup.CorePersistedDataHost; import bisq.core.setup.CoreSetup; @@ -229,6 +230,7 @@ public void gracefulShutDown(ResultHandler resultHandler) { injector.getInstance(ArbitratorManager.class).shutDown(); injector.getInstance(TradeStatisticsManager.class).shutDown(); injector.getInstance(XmrTxProofService.class).shutDown(); + injector.getInstance(RpcService.class).shutDown(); injector.getInstance(DaoSetup.class).shutDown(); injector.getInstance(AvoidStandbyModeService.class).shutDown(); injector.getInstance(OpenOfferManager.class).shutDown(() -> { diff --git a/core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java b/core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java index 9ab2eeb7381..0cb4006deb5 100644 --- a/core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java +++ b/core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java @@ -22,6 +22,7 @@ import bisq.core.btc.wallet.BsqWalletService; import bisq.core.btc.wallet.BtcWalletService; import bisq.core.dao.DaoSetup; +import bisq.core.dao.node.full.RpcService; import bisq.core.offer.OpenOfferManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager; @@ -86,6 +87,7 @@ public void gracefulShutDown(ResultHandler resultHandler) { try { if (injector != null) { JsonFileManager.shutDownAllInstances(); + injector.getInstance(RpcService.class).shutDown(); injector.getInstance(DaoSetup.class).shutDown(); injector.getInstance(ArbitratorManager.class).shutDown(); injector.getInstance(OpenOfferManager.class).shutDown(() -> injector.getInstance(P2PService.class).shutDown(() -> { diff --git a/core/src/main/java/bisq/core/dao/node/full/RpcService.java b/core/src/main/java/bisq/core/dao/node/full/RpcService.java index d694cee91c2..1357288a998 100644 --- a/core/src/main/java/bisq/core/dao/node/full/RpcService.java +++ b/core/src/main/java/bisq/core/dao/node/full/RpcService.java @@ -121,6 +121,20 @@ public RpcService(Preferences preferences, // API /////////////////////////////////////////////////////////////////////////////////////////// + public void shutDown() { + if (daemon != null) { + daemon.shutdown(); + log.info("daemon shut down"); + } + + if (client != null) { + client.close(); + log.info("client closed"); + } + + executor.shutdown(); + } + void setup(ResultHandler resultHandler, Consumer errorHandler) { ListenableFuture future = executor.submit(() -> { try {