Skip to content

Commit 476da0b

Browse files
Merge pull request #2224 from DedunuKarunarathne/master
Handle ConcurrentModificationException in OpenTelemetry
2 parents 695642e + 58e7371 commit 476da0b

File tree

1 file changed

+4
-3
lines changed
  • modules/core/src/main/java/org/apache/synapse/aspects/flow/statistics/tracing/opentelemetry/management/handling/span

1 file changed

+4
-3
lines changed

modules/core/src/main/java/org/apache/synapse/aspects/flow/statistics/tracing/opentelemetry/management/handling/span/SpanHandler.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import java.util.List;
5050
import java.util.Map;
5151
import java.util.Objects;
52+
import java.util.concurrent.ConcurrentHashMap;
5253

5354
/**
5455
* Controls Jaeger spans, with respect to various events received during Synapse message flow.
@@ -203,13 +204,13 @@ private void startSpan(StatisticDataUnit statisticDataUnit, MessageContext synCt
203204
Span span;
204205
Map<String, String> tracerSpecificCarrier = new HashMap<>();
205206

206-
Map headersMap = (Map) ((Axis2MessageContext) synCtx).getAxis2MessageContext()
207-
.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
207+
Map headersMap = new ConcurrentHashMap<>((Map) ((Axis2MessageContext) synCtx).getAxis2MessageContext()
208+
.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS));
208209
Object statusCode = ((Axis2MessageContext) synCtx).getAxis2MessageContext().getProperty("HTTP_SC");
209210
Object statusDescription = ((Axis2MessageContext) synCtx).getAxis2MessageContext().getProperty("HTTP_DESC");
210211
// We only need to extract span context from headers when there are trp headers available
211212
if (headersMap == null) {
212-
headersMap = new HashMap();
213+
headersMap = new ConcurrentHashMap();
213214
}
214215
if (isOuterLevelSpan(statisticDataUnit, spanStore)) {
215216
// Extract span context from headers

0 commit comments

Comments
 (0)