|
17 | 17 | import org.elasticsearch.cluster.metadata.ProjectMetadata; |
18 | 18 | import org.elasticsearch.cluster.node.DiscoveryNodes; |
19 | 19 | import org.elasticsearch.cluster.routing.IndexRoutingTable; |
20 | | -import org.elasticsearch.common.util.set.Sets; |
21 | 20 | import org.elasticsearch.gateway.GatewayService; |
22 | 21 | import org.elasticsearch.index.Index; |
23 | 22 |
|
@@ -353,19 +352,25 @@ private static ProjectsDelta calculateProjectDelta(Metadata previousMetadata, Me |
353 | 352 | && previousMetadata.hasProject(ProjectId.DEFAULT) |
354 | 353 | && currentMetadata.projects().size() == 1 |
355 | 354 | && currentMetadata.hasProject(ProjectId.DEFAULT)) { |
356 | | - return EMPTY_PROJECT_DELTA; |
| 355 | + return ProjectsDelta.EMPTY; |
357 | 356 | } |
358 | 357 |
|
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; |
363 | 367 |
|
| 368 | + return new ProjectsDelta(Collections.unmodifiableSet(added), Collections.unmodifiableSet(removed)); |
364 | 369 | } |
365 | 370 |
|
366 | | - private static final ProjectsDelta EMPTY_PROJECT_DELTA = new ProjectsDelta(Set.of(), Set.of()); |
367 | | - |
368 | 371 | public record ProjectsDelta(Set<ProjectId> added, Set<ProjectId> removed) { |
| 372 | + private static final ProjectsDelta EMPTY = new ProjectsDelta(Set.of(), Set.of()); |
| 373 | + |
369 | 374 | public boolean isEmpty() { |
370 | 375 | return added.isEmpty() && removed.isEmpty(); |
371 | 376 | } |
|
0 commit comments