aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristen Kozak <sebright@google.com>2017-05-05 13:33:25 -0700
committerKristen Kozak <sebright@google.com>2017-05-05 13:33:25 -0700
commitc8b0c4d8278d77440e2ce50306e605cfba146bbd (patch)
tree1cc3e73ce54048dfa662470fba818d94a5ec62d5
parent2a0b908f08ff0eadd370f0ad3f9e39da5f02042e (diff)
downloadplatform_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.java9
-rw-r--r--core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java4
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>() {