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) }