Fix NPE due to initialization order, see #2473

This commit is contained in:
Patrik Nordwall 2012-09-06 10:04:52 +02:00
parent 6e4b0dc3de
commit 806b5efcdf

View file

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