Skip to content

Spring boot starter fails to load when an OpenTelemetry Bean is supplied #13971

@zeitlinger

Description

@zeitlinger

Describe the bug

The OtelMapConverter converter is missing if OTEL_EXPORTER_OTLP_HEADERS=a=b,c=d is supplied.

Steps to reproduce

Index: instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/SpringConfigPropertiesTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/SpringConfigPropertiesTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/SpringConfigPropertiesTest.java
--- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/SpringConfigPropertiesTest.java	(revision 6a47524c808e86bcc58cdc51daa06e440369642d)
+++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/SpringConfigPropertiesTest.java	(date 1748865374032)
@@ -8,6 +8,7 @@
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.entry;
 
+import io.opentelemetry.api.OpenTelemetry;
 import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration;
 import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
 import io.opentelemetry.sdk.autoconfigure.spi.internal.DefaultConfigProperties;
@@ -71,6 +72,7 @@
   void mapFlatHeaders(String key) {
     this.contextRunner
         .withSystemProperties(key + "=a=1,b=2")
+        .withBean(OpenTelemetry.class, OpenTelemetry::noop)
         .run(
             context ->
                 assertThat(getConfig(context).getMap(key))

Expected behavior

Test should not fail

Actual behavior

Test fails

Javaagent or library instrumentation version

2.16.0

Environment

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds triageNew issue that requires triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions