Browse Source

Make DatastreamMetadata Immutable (#72693)

This map should not be mutable. Also, the builder is unused.
Armin Braun 4 years ago
parent
commit
cbb2ca2826

+ 2 - 20
server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamMetadata.java

@@ -51,11 +51,11 @@ public class DataStreamMetadata implements Metadata.Custom {
     private final Map<String, DataStream> dataStreams;
 
     public DataStreamMetadata(Map<String, DataStream> dataStreams) {
-        this.dataStreams = dataStreams;
+        this.dataStreams = Map.copyOf(dataStreams);
     }
 
     public DataStreamMetadata(StreamInput in) throws IOException {
-        this.dataStreams = in.readMap(StreamInput::readString, DataStream::new);
+        this(in.readMap(StreamInput::readString, DataStream::new));
     }
 
     public Map<String, DataStream> dataStreams() {
@@ -105,10 +105,6 @@ public class DataStreamMetadata implements Metadata.Custom {
         return builder;
     }
 
-    public static Builder builder() {
-        return new Builder();
-    }
-
     @Override
     public int hashCode() {
         return Objects.hash(this.dataStreams);
@@ -131,20 +127,6 @@ public class DataStreamMetadata implements Metadata.Custom {
         return Strings.toString(this);
     }
 
-    public static class Builder {
-
-        private final Map<String, DataStream> dataStreams = new HashMap<>();
-
-        public Builder putDataStream(DataStream dataStream) {
-            dataStreams.put(dataStream.getName(), dataStream);
-            return this;
-        }
-
-        public DataStreamMetadata build() {
-            return new DataStreamMetadata(dataStreams);
-        }
-    }
-
     static class DataStreamMetadataDiff implements NamedDiff<Metadata.Custom> {
 
         final Diff<Map<String, DataStream>> dataStreamDiff;