diff --git a/server/src/main/java/org/elasticsearch/gateway/GatewayMetaState.java b/server/src/main/java/org/elasticsearch/gateway/GatewayMetaState.java index 2160d9cff7853..fecbc51ac6bc8 100644 --- a/server/src/main/java/org/elasticsearch/gateway/GatewayMetaState.java +++ b/server/src/main/java/org/elasticsearch/gateway/GatewayMetaState.java @@ -107,9 +107,10 @@ private void initializeClusterState(ClusterName clusterName) throws IOException } public void setLocalNode(DiscoveryNode localNode) { - previousClusterState = ClusterState.builder(previousClusterState) - .nodes(DiscoveryNodes.builder().add(localNode).localNodeId(localNode.getId()).build()) - .build(); + assert previousClusterState.nodes().getLocalNode() == null : "setLocalNode must only be called once"; + previousClusterState = ClusterState.builder(previousClusterState) + .nodes(DiscoveryNodes.builder().add(localNode).localNodeId(localNode.getId()).build()) + .build(); } protected void upgradeMetaData(MetaDataIndexUpgradeService metaDataIndexUpgradeService, MetaDataUpgrader metaDataUpgrader) @@ -195,7 +196,7 @@ public long getCurrentTerm() { @Override public ClusterState getLastAcceptedState() { - assert previousClusterState.nodes().getSize() > 0 : "Call setLocalNode before calling this method"; + assert previousClusterState.nodes().getLocalNode() != null : "Call setLocalNode before calling this method"; return previousClusterState; }