From 8841d4186e37aaab3f09a645eaa5a81d4404773f Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Tue, 18 Aug 2015 11:03:25 -0600 Subject: [PATCH] Make MilliSpan.getTimelineAnnotations read only --- .../org/springframework/cloud/sleuth/MilliSpan.java | 11 ++++++++--- .../springframework/cloud/sleuth/MilliSpanTests.java | 10 +++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java index dd0b18a6e..6655db673 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/MilliSpan.java @@ -40,7 +40,7 @@ public class MilliSpan implements Span { private List parents; private final String spanId; private boolean remote = false; - private final Map kVAnnotations = new LinkedHashMap<>(); + private final Map annotations = new LinkedHashMap<>(); private final String processId; @Singular private final List timelineAnnotations = new ArrayList<>(); @@ -96,7 +96,7 @@ public class MilliSpan implements Span { @Override public void addAnnotation(String key, String value) { - this.kVAnnotations.put(key, value); + this.annotations.put(key, value); } @Override @@ -107,7 +107,12 @@ public class MilliSpan implements Span { @Override public Map getAnnotations() { - return Collections.unmodifiableMap(kVAnnotations); + return Collections.unmodifiableMap(this.annotations); + } + + @Override + public List getTimelineAnnotations() { + return Collections.unmodifiableList(this.timelineAnnotations); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/MilliSpanTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/MilliSpanTests.java index 91fc45885..e1209c497 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/MilliSpanTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/MilliSpanTests.java @@ -22,14 +22,22 @@ import org.junit.Test; /** * @author Rob Winch + * @author Spencer Gibb */ public class MilliSpanTests { - @Test(expected = UnsupportedOperationException.class) public void getAnnotationsReadOnly() { MilliSpan span = new MilliSpan(1, 2, "name", "traceId", Collections.emptyList(), "spanId", true, "processId"); span.getAnnotations().put("a", "b"); } + + + @Test(expected = UnsupportedOperationException.class) + public void getTimelineAnnotationsReadOnly() { + MilliSpan span = new MilliSpan(1, 2, "name", "traceId", Collections.emptyList(), "spanId", true, "processId"); + + span.getTimelineAnnotations().add(new TimelineAnnotation(1, "1")); + } } \ No newline at end of file