Trace context can be injected using case insensitive logic for keys.
Then extraction will not be able to extract context because extraction is case-sensitive:
https://github.com/open-telemetry/opentelemetry-java/blob/master/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java#L76
Proposed fix for TextMapGetter:
@Override
public String get(Map<String, String> carrier, String key) {
for (Map.Entry<String, String> entry : carrier.entrySet()) {
if (key.equalsIgnoreCase(entry.getKey())) {
return entry.getValue();
}
}
return null;
}
I'm not sure if this is a bug... In OpenTelemetry, it is the responsibility of the carrier to implement case-sensitive-ness. So the map's get implementation would be expected to be case-insensitive. Iterating the map seems quite inefficient.
@Oberon00 it's a bug in shim layer, not in OpenTelemetry API.
shim layer creates carrier: https://github.com/open-telemetry/opentelemetry-java/blob/master/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java#L32
I see. OK, looks like a bug indeed.
CC @carlosalberto