diff --git a/src/main/java/software/amazon/cloudwatchlogs/emf/model/MetricDirective.java b/src/main/java/software/amazon/cloudwatchlogs/emf/model/MetricDirective.java index cd33ec67..f5218702 100644 --- a/src/main/java/software/amazon/cloudwatchlogs/emf/model/MetricDirective.java +++ b/src/main/java/software/amazon/cloudwatchlogs/emf/model/MetricDirective.java @@ -86,7 +86,7 @@ List> getAllDimensionKeys() { */ void setDimensions(List dimensionSets) { shouldUseDefaultDimension = false; - dimensions = dimensionSets; + dimensions = new ArrayList<>(dimensionSets); } /** diff --git a/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java b/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java index 73a65775..ca70c395 100644 --- a/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java +++ b/src/test/java/software/amazon/cloudwatchlogs/emf/model/MetricDirectiveTest.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Arrays; +import java.util.Collections; import org.junit.Test; public class MetricDirectiveTest { @@ -126,4 +127,18 @@ public void testPutDimensionsWhenDefaultDimensionsDefined() throws JsonProcessin serializedMetricDirective, "{\"Dimensions\":[[\"Version\",\"Region\"],[\"Version\",\"Instance\"]],\"Metrics\":[],\"Namespace\":\"aws-embedded-metrics\"}"); } + + @Test + public void testPutDimensionsAfterSetDimensions() throws JsonProcessingException { + MetricDirective metricDirective = new MetricDirective(); + metricDirective.setDimensions(Collections.singletonList(DimensionSet.of("Version", "1"))); + metricDirective.putDimensionSet(DimensionSet.of("Region", "us-east-1")); + metricDirective.putDimensionSet(DimensionSet.of("Instance", "inst-1")); + + String serializedMetricDirective = objectMapper.writeValueAsString(metricDirective); + + assertEquals( + serializedMetricDirective, + "{\"Dimensions\":[[\"Version\"],[\"Region\"],[\"Instance\"]],\"Metrics\":[],\"Namespace\":\"aws-embedded-metrics\"}"); + } }