Make task config collection fields immutable Making task config collection fields immutable makes it much safer to potentially share definitions via caches. The performance impact of this change seems to be at the noise level. Change-Id: Ic04117ef070430f54e9ff6a72bf991cd4871e502
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java index 58cb37d..345dbc5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -19,6 +19,7 @@ import com.google.gerrit.server.git.meta.AbstractVersionedMetaData; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -286,7 +287,7 @@ String name = e.getKey(); valueByName.put(name.substring(prefix.length()), e.getValue()); } - return valueByName; + return Collections.unmodifiableMap(valueByName); } protected Map<String, String> getStringByName(SubSection s, Iterable<String> names) { @@ -321,7 +322,8 @@ } protected List<String> getStringList(SubSection s, String key) { - return Arrays.asList(cfg.getStringList(s.section, s.subSection, key)); + return Collections.unmodifiableList( + Arrays.asList(cfg.getStringList(s.section, s.subSection, key))); } public String key() {