From aa2ab4b6e20a19bd057e66d03027bb9ec2d5c507 Mon Sep 17 00:00:00 2001 From: Christopher Hunt Date: Tue, 31 Oct 2017 01:09:38 +1100 Subject: [PATCH] Remove shutdown hook on shutting down (#23866) When shutting down, we compliment the addition of a shutdown hook during startup with its removal. Doing so further ensures that no class loader is retained when unloading Akka in an OSGi style scenario. --- .../src/main/scala/akka/remote/artery/ArteryTransport.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/akka-remote/src/main/scala/akka/remote/artery/ArteryTransport.scala b/akka-remote/src/main/scala/akka/remote/artery/ArteryTransport.scala index ad839efc59..873dc18106 100644 --- a/akka-remote/src/main/scala/akka/remote/artery/ArteryTransport.scala +++ b/akka-remote/src/main/scala/akka/remote/artery/ArteryTransport.scala @@ -865,6 +865,7 @@ private[remote] class ArteryTransport(_system: ExtendedActorSystem, _provider: R override def shutdown(): Future[Done] = { if (hasBeenShutdown.compareAndSet(false, true)) { log.debug("Shutting down [{}]", localAddress) + Runtime.getRuntime.removeShutdownHook(shutdownHook) val allAssociations = associationRegistry.allAssociations val flushing: Future[Done] = if (allAssociations.isEmpty) Future.successful(Done)