From 806b5efcdfa907048e04512b3ab99d8c4e06dae9 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Thu, 6 Sep 2012 10:04:52 +0200 Subject: [PATCH] Fix NPE due to initialization order, see #2473 --- akka-cluster/src/main/scala/akka/cluster/Cluster.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/akka-cluster/src/main/scala/akka/cluster/Cluster.scala b/akka-cluster/src/main/scala/akka/cluster/Cluster.scala index c76b637164..d648880396 100644 --- a/akka-cluster/src/main/scala/akka/cluster/Cluster.scala +++ b/akka-cluster/src/main/scala/akka/cluster/Cluster.scala @@ -149,7 +149,9 @@ class Cluster(val system: ExtendedActorSystem, val failureDetector: FailureDetec /** * INTERNAL API */ - private[cluster] val clusterCore: ActorRef = { + private[cluster] lazy val clusterCore: ActorRef = { + // this val must be lazy for correct initialization order, + // ClusterDaemon children may use for example subscribe before we get the GetClusterCoreRef reply implicit val timeout = system.settings.CreationTimeout Await.result((clusterDaemons ? InternalClusterAction.GetClusterCoreRef).mapTo[ActorRef], timeout.duration) }