diff --git a/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java b/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java index b58d1e898..329141278 100644 --- a/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java +++ b/examples/src/main/java/org/bitcoinj/examples/ForwardingService.java @@ -133,11 +133,20 @@ public class ForwardingService implements AutoCloseable { kit.wallet().addCoinsReceivedEventListener(listener); } + /** + * Close the service. {@link AutoCloseable} will be triggered if an unhandled exception occurs within + * a try-with-resources block. + *

+ * Note that {@link WalletAppKit#setAutoStop(boolean)} is set by default and installs a shutdown handler + * via {@link Runtime#addShutdownHook(Thread)} so we do not need to worry about explicitly shutting down + * the {@code WalletAppKit} if the process is terminated. + */ @Override public void close() { - kit.wallet().removeCoinsReceivedEventListener(listener); + if (kit.isRunning()) { + kit.wallet().removeCoinsReceivedEventListener(listener); + } kit.stopAsync(); - kit.awaitTerminated(); } /**