diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/SharedMediaDriverSupport.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/SharedMediaDriverSupport.scala index efd75e731f..0076cc35f4 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/SharedMediaDriverSupport.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/SharedMediaDriverSupport.scala @@ -43,17 +43,24 @@ object SharedMediaDriverSupport { .threadingMode(ThreadingMode.SHARED) .sharedIdleStrategy(TaskRunner.createIdleStrategy(idleCpuLevel)) + // concludeAeronDirectory needed for Aeron 1.2.4, otherwise NPE from isDriverActive + driverContext.concludeAeronDirectory() + // Check if the media driver is already started by another multi-node jvm. // It checks more than one time with a sleep inbetween. The number of checks // depends on the multi-node index (i). @tailrec def isDriverInactive(i: Int): Boolean = { if (i < 0) true else { - val active = driverContext.isDriverActive(5000, new Consumer[String] { + val active = try driverContext.isDriverActive(5000, new Consumer[String] { override def accept(msg: String): Unit = { println(msg) } - }) + }) catch { + case NonFatal(e) ⇒ + println(e.getMessage) + false + } if (active) false else { Thread.sleep(500) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 0506b47e04..74bedf1ebc 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -17,7 +17,7 @@ object Dependencies { val sslConfigVersion = "0.2.1" val slf4jVersion = "1.7.23" val scalaXmlVersion = "1.0.6" - val aeronVersion = "1.2.3" + val aeronVersion = "1.2.4" val Versions = Seq( crossScalaVersions := Seq("2.11.8", "2.12.1"),