Skip to content

Commit fbe4b81

Browse files
committed
address feedback
1 parent 2adcb2d commit fbe4b81

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

server/src/main/java/org/elasticsearch/cluster/ClusterChangedEvent.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.elasticsearch.cluster.metadata.ProjectMetadata;
1818
import org.elasticsearch.cluster.node.DiscoveryNodes;
1919
import org.elasticsearch.cluster.routing.IndexRoutingTable;
20-
import org.elasticsearch.common.util.set.Sets;
2120
import org.elasticsearch.gateway.GatewayService;
2221
import org.elasticsearch.index.Index;
2322

@@ -353,19 +352,25 @@ private static ProjectsDelta calculateProjectDelta(Metadata previousMetadata, Me
353352
&& previousMetadata.hasProject(ProjectId.DEFAULT)
354353
&& currentMetadata.projects().size() == 1
355354
&& currentMetadata.hasProject(ProjectId.DEFAULT)) {
356-
return EMPTY_PROJECT_DELTA;
355+
return ProjectsDelta.EMPTY;
357356
}
358357

359-
return new ProjectsDelta(
360-
Collections.unmodifiableSet(Sets.difference(currentMetadata.projects().keySet(), previousMetadata.projects().keySet())),
361-
Collections.unmodifiableSet(Sets.difference(previousMetadata.projects().keySet(), currentMetadata.projects().keySet()))
362-
);
358+
final Set<ProjectId> added = new HashSet<>();
359+
final Set<ProjectId> removed = new HashSet<>(previousMetadata.projects().keySet());
360+
for (var currentProject : currentMetadata.projects().keySet()) {
361+
if (removed.remove(currentProject) == false) {
362+
added.add(currentProject);
363+
}
364+
}
365+
assert added.contains(ProjectId.DEFAULT) == false;
366+
assert removed.contains(ProjectId.DEFAULT) == false;
363367

368+
return new ProjectsDelta(Collections.unmodifiableSet(added), Collections.unmodifiableSet(removed));
364369
}
365370

366-
private static final ProjectsDelta EMPTY_PROJECT_DELTA = new ProjectsDelta(Set.of(), Set.of());
367-
368371
public record ProjectsDelta(Set<ProjectId> added, Set<ProjectId> removed) {
372+
private static final ProjectsDelta EMPTY = new ProjectsDelta(Set.of(), Set.of());
373+
369374
public boolean isEmpty() {
370375
return added.isEmpty() && removed.isEmpty();
371376
}

0 commit comments

Comments
 (0)