diff options
| author | Kristen Kozak <sebright@google.com> | 2017-05-05 13:33:25 -0700 |
|---|---|---|
| committer | Kristen Kozak <sebright@google.com> | 2017-05-05 13:33:25 -0700 |
| commit | c8b0c4d8278d77440e2ce50306e605cfba146bbd (patch) | |
| tree | 1cc3e73ce54048dfa662470fba818d94a5ec62d5 | |
| parent | 2a0b908f08ff0eadd370f0ad3f9e39da5f02042e (diff) | |
| download | platform_external_opencensus-java-c8b0c4d8278d77440e2ce50306e605cfba146bbd.tar.gz platform_external_opencensus-java-c8b0c4d8278d77440e2ce50306e605cfba146bbd.tar.bz2 platform_external_opencensus-java-c8b0c4d8278d77440e2ce50306e605cfba146bbd.zip | |
Make View's lists of aggregations immutable.
| -rw-r--r-- | core/src/main/java/com/google/instrumentation/stats/View.java | 9 | ||||
| -rw-r--r-- | core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/core/src/main/java/com/google/instrumentation/stats/View.java b/core/src/main/java/com/google/instrumentation/stats/View.java index 90996960..30443338 100644 --- a/core/src/main/java/com/google/instrumentation/stats/View.java +++ b/core/src/main/java/com/google/instrumentation/stats/View.java @@ -18,6 +18,8 @@ import com.google.instrumentation.common.Timestamp; import com.google.instrumentation.stats.ViewDescriptor.DistributionViewDescriptor; import com.google.instrumentation.stats.ViewDescriptor.IntervalViewDescriptor; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -96,7 +98,9 @@ public abstract class View { private DistributionView(DistributionViewDescriptor distributionViewDescriptor, List<DistributionAggregation> distributionAggregations, Timestamp start, Timestamp end) { this.distributionViewDescriptor = distributionViewDescriptor; - this.distributionAggregations = distributionAggregations; + this.distributionAggregations = + Collections.unmodifiableList( + new ArrayList<DistributionAggregation>(distributionAggregations)); this.start = start; this.end = end; } @@ -142,7 +146,8 @@ public abstract class View { private IntervalView(IntervalViewDescriptor intervalViewDescriptor, List<IntervalAggregation> intervalAggregations) { this.intervalViewDescriptor = intervalViewDescriptor; - this.intervalAggregations = intervalAggregations; + this.intervalAggregations = + Collections.unmodifiableList(new ArrayList<IntervalAggregation>(intervalAggregations)); } } } diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java index 396f43ce..2e2beb54 100644 --- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java +++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java @@ -20,6 +20,7 @@ import com.google.instrumentation.common.SimpleEventQueue; import com.google.instrumentation.common.Timestamp; import com.google.instrumentation.internal.TestClock; import com.google.instrumentation.stats.View.DistributionView; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; @@ -127,7 +128,8 @@ public class StatsManagerImplTest { DistributionView view = (DistributionView) statsManager.getView(RpcViewConstants.RPC_CLIENT_ROUNDTRIP_LATENCY_VIEW); - List<DistributionAggregation> distributionAggregations = view.getDistributionAggregations(); + List<DistributionAggregation> distributionAggregations = + new ArrayList<DistributionAggregation>(view.getDistributionAggregations()); assertThat(distributionAggregations).hasSize(2); // Sort distributionAggregations by count. Collections.sort(distributionAggregations, new Comparator<DistributionAggregation>() { |
