Skip to content

Commit 5f8101a

Browse files
authored
Make RepositoriesMetaData contents unmodifiable (#30361)
This commit makes the RepositoriesMetaData backing list no longer modifiable. Ref #30333
1 parent 09a6ba4 commit 5f8101a

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

server/src/main/java/org/elasticsearch/cluster/metadata/RepositoriesMetaData.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.io.IOException;
3434
import java.util.ArrayList;
3535
import java.util.Arrays;
36+
import java.util.Collections;
3637
import java.util.EnumSet;
3738
import java.util.List;
3839

@@ -51,7 +52,7 @@ public class RepositoriesMetaData extends AbstractNamedDiffable<Custom> implemen
5152
* @param repositories list of repositories
5253
*/
5354
public RepositoriesMetaData(List<RepositoryMetaData> repositories) {
54-
this.repositories = repositories;
55+
this.repositories = Collections.unmodifiableList(repositories);
5556
}
5657

5758
/**
@@ -107,7 +108,7 @@ public RepositoriesMetaData(StreamInput in) throws IOException {
107108
for (int i = 0; i < repository.length; i++) {
108109
repository[i] = new RepositoryMetaData(in);
109110
}
110-
this.repositories = Arrays.asList(repository);
111+
this.repositories = Collections.unmodifiableList(Arrays.asList(repository));
111112
}
112113

113114
public static NamedDiff<Custom> readDiffFrom(StreamInput in) throws IOException {

server/src/test/java/org/elasticsearch/snapshots/RepositoriesMetaDataSerializationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ protected Custom doParseInstance(XContentParser parser) throws IOException {
112112
assertEquals(XContentParser.Token.START_OBJECT, parser.nextToken());
113113
RepositoriesMetaData repositoriesMetaData = RepositoriesMetaData.fromXContent(parser);
114114
assertEquals(XContentParser.Token.END_OBJECT, parser.currentToken());
115-
List<RepositoryMetaData> repos = repositoriesMetaData.repositories();
115+
List<RepositoryMetaData> repos = new ArrayList<>(repositoriesMetaData.repositories());
116116
repos.sort(Comparator.comparing(RepositoryMetaData::name));
117117
return new RepositoriesMetaData(repos);
118118
}

0 commit comments

Comments
 (0)