@@ -556,18 +556,27 @@ public interface PersistedState extends Closeable {
556556 * marked as committed.
557557 */
558558 default void markLastAcceptedStateAsCommitted () {
559- final var lastAcceptedState = getLastAcceptedState ();
560- final var hasClusterUuid = lastAcceptedState .metadata ().clusterUUID ().equals (Metadata .UNKNOWN_CLUSTER_UUID ) == false ;
561- assert hasClusterUuid : "received cluster state with empty cluster uuid: " + lastAcceptedState ;
562-
563- if (hasClusterUuid && lastAcceptedState .metadata ().clusterUUIDCommitted () == false ) {
559+ final ClusterState lastAcceptedState = getLastAcceptedState ();
560+ Metadata .Builder metadataBuilder = null ;
561+ if (lastAcceptedState .getLastAcceptedConfiguration ().equals (lastAcceptedState .getLastCommittedConfiguration ()) == false ) {
562+ final CoordinationMetadata coordinationMetadata = CoordinationMetadata .builder (lastAcceptedState .coordinationMetadata ())
563+ .lastCommittedConfiguration (lastAcceptedState .getLastAcceptedConfiguration ())
564+ .build ();
565+ metadataBuilder = Metadata .builder (lastAcceptedState .metadata ());
566+ metadataBuilder .coordinationMetadata (coordinationMetadata );
567+ }
568+ assert lastAcceptedState .metadata ().clusterUUID ().equals (Metadata .UNKNOWN_CLUSTER_UUID ) == false
569+ : "received cluster state with empty cluster uuid: " + lastAcceptedState ;
570+ if (lastAcceptedState .metadata ().clusterUUID ().equals (Metadata .UNKNOWN_CLUSTER_UUID ) == false
571+ && lastAcceptedState .metadata ().clusterUUIDCommitted () == false ) {
572+ if (metadataBuilder == null ) {
573+ metadataBuilder = Metadata .builder (lastAcceptedState .metadata ());
574+ }
575+ metadataBuilder .clusterUUIDCommitted (true );
564576 logger .info ("cluster UUID set to [{}]" , lastAcceptedState .metadata ().clusterUUID ());
565577 }
566-
567- final var adjustedMetadata = lastAcceptedState .metadata ()
568- .withLastCommittedValues (hasClusterUuid , lastAcceptedState .getLastAcceptedConfiguration ());
569- if (adjustedMetadata != lastAcceptedState .metadata ()) {
570- setLastAcceptedState (ClusterState .builder (lastAcceptedState ).metadata (adjustedMetadata ).build ());
578+ if (metadataBuilder != null ) {
579+ setLastAcceptedState (ClusterState .builder (lastAcceptedState ).metadata (metadataBuilder ).build ());
571580 }
572581 }
573582
0 commit comments