Skip to content

Commit 3f398bf

Browse files
committed
Feedback
1 parent 6221bcd commit 3f398bf

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/IndexLifecycleTransition.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.elasticsearch.cluster.metadata.ProjectMetadata;
1919
import org.elasticsearch.common.Strings;
2020
import org.elasticsearch.common.settings.Settings;
21+
import org.elasticsearch.core.Nullable;
2122
import org.elasticsearch.index.Index;
2223
import org.elasticsearch.license.XPackLicenseState;
2324
import org.elasticsearch.xcontent.ToXContentObject;
@@ -444,22 +445,26 @@ static ClusterState addStepInfoToClusterState(Index index, ClusterState clusterS
444445
*/
445446
public static ClusterState removePolicyForIndexes(final Index[] indices, ClusterState currentState, List<String> failedIndexes) {
446447
final ProjectMetadata currentProject = currentState.metadata().getProject();
447-
final ProjectMetadata updatedProject = removePolicyForIndexes(indices, currentProject, failedIndexes);
448+
final ProjectMetadata.Builder updatedProject = removePolicyForIndexes(indices, currentProject, failedIndexes);
448449

449-
if (currentProject == updatedProject) {
450+
if (updatedProject == null) {
450451
return currentState;
451452
} else {
452453
return ClusterState.builder(currentState).putProjectMetadata(updatedProject).build();
453454
}
454455
}
455456

456-
private static ProjectMetadata removePolicyForIndexes(
457+
/**
458+
* @return If one or more policies were removed, then a new builder representing the changed project state.
459+
* Otherwise {@code null} (if no changes were made)
460+
*/
461+
@Nullable
462+
private static ProjectMetadata.Builder removePolicyForIndexes(
457463
final Index[] indices,
458464
ProjectMetadata currentProject,
459465
List<String> failedIndexes
460466
) {
461-
ProjectMetadata.Builder newProject = ProjectMetadata.builder(currentProject);
462-
boolean projectChanged = false;
467+
ProjectMetadata.Builder newProject = null;
463468
for (Index index : indices) {
464469
IndexMetadata indexMetadata = currentProject.index(index);
465470
if (indexMetadata == null) {
@@ -468,16 +473,15 @@ private static ProjectMetadata removePolicyForIndexes(
468473
} else {
469474
IndexMetadata.Builder newIdxMetadata = removePolicyForIndex(indexMetadata);
470475
if (newIdxMetadata != null) {
476+
if (newProject == null) {
477+
newProject = ProjectMetadata.builder(currentProject);
478+
}
471479
newProject.put(newIdxMetadata);
472-
projectChanged = true;
473480
}
474481
}
475482
}
476-
if (projectChanged) {
477-
return newProject.build();
478-
} else {
479-
return currentProject;
480-
}
483+
484+
return newProject;
481485
}
482486

483487
/**

0 commit comments

Comments
 (0)