diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanAccumulator.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanAccumulator.java index bfaeac69e..2a412d167 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanAccumulator.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanAccumulator.java @@ -17,7 +17,6 @@ package org.springframework.cloud.sleuth.util; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.springframework.cloud.sleuth.Span; @@ -31,21 +30,25 @@ import org.springframework.cloud.sleuth.SpanReporter; * @since 1.0.0 */ public class ArrayListSpanAccumulator implements SpanReporter { - private final List spans = Collections.synchronizedList(new ArrayList()); + private final List spans = new ArrayList<>(); public List getSpans() { - return this.spans; + synchronized (this.spans) { + return this.spans; + } } @Override public String toString() { return "ArrayListSpanAccumulator{" + - "spans=" + this.spans + + "spans=" + getSpans() + '}'; } @Override public void report(Span span) { - this.spans.add(span); + synchronized (this.spans) { + this.spans.add(span); + } } }