File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
main/java/io/opentelemetry/api/incubator/propagation
test/java/io/opentelemetry/api/incubator/propagation Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change 1010import java .util .Collections ;
1111import java .util .List ;
1212import java .util .Map ;
13+ import java .util .concurrent .atomic .AtomicBoolean ;
14+ import java .util .logging .Level ;
15+ import java .util .logging .Logger ;
1316import javax .annotation .Nullable ;
1417
1518/**
4346 */
4447public final class EnvironmentGetter implements TextMapGetter <Map <String , String >> {
4548
49+ private static final AtomicBoolean LOG_KEYS_CALLED = new AtomicBoolean (false );
50+ private static final Logger LOGGER = Logger .getLogger (EnvironmentGetter .class .getName ());
4651 private static final EnvironmentGetter INSTANCE = new EnvironmentGetter ();
4752
4853 private EnvironmentGetter () {}
@@ -54,6 +59,13 @@ public static EnvironmentGetter getInstance() {
5459
5560 @ Override
5661 public Iterable <String > keys (Map <String , String > carrier ) {
62+ if (LOG_KEYS_CALLED .compareAndSet (false , true )) {
63+ LOGGER .log (
64+ Level .WARNING ,
65+ "keys() called on EnvironmentGetter. "
66+ + "This may produce unexpected results with propagators which depend on case sensitivity or special characters in keys." ,
67+ new Throwable ());
68+ }
5769 if (carrier == null ) {
5870 return Collections .emptyList ();
5971 }
Original file line number Diff line number Diff line change 77
88import static io .opentelemetry .sdk .testing .assertj .OpenTelemetryAssertions .assertThat ;
99
10+ import io .github .netmikey .logunit .api .LogCapturer ;
11+ import io .opentelemetry .internal .testing .slf4j .SuppressLogger ;
1012import java .util .Collections ;
1113import java .util .HashMap ;
1214import java .util .Map ;
1315import org .junit .jupiter .api .Test ;
16+ import org .junit .jupiter .api .extension .RegisterExtension ;
1417
1518class EnvironmentGetterTest {
1619
20+ @ RegisterExtension
21+ LogCapturer logCapturer = LogCapturer .create ().captureForType (EnvironmentGetter .class );
22+
1723 @ Test
1824 void get () {
1925 Map <String , String > carrier = new HashMap <>();
@@ -45,6 +51,7 @@ void get_null() {
4551 }
4652
4753 @ Test
54+ @ SuppressLogger (EnvironmentGetter .class )
4855 void keys_valuesAreNormalized () {
4956 Map <String , String > carrier = new HashMap <>();
5057 carrier .put ("otel.trace.id" , "V1" );
@@ -53,6 +60,9 @@ void keys_valuesAreNormalized() {
5360 assertThat (EnvironmentGetter .getInstance ().keys (carrier ))
5461 .containsExactlyInAnyOrder ("OTEL_TRACE_ID" , "OTEL_BAGGAGE_KEY" );
5562 assertThat (EnvironmentGetter .getInstance ().keys (null )).isEmpty ();
63+
64+ assertThat (logCapturer .size ()).isEqualTo (1 );
65+ logCapturer .assertContains ("keys() called on EnvironmentGetter" );
5666 }
5767
5868 @ Test
You can’t perform that action at this time.
0 commit comments