Skip to content

Commit c2f3bfb

Browse files
authored
Fix InstrumenterConfig for Code Origin default (#10240)
Missed that Code Origin is also defined in InstrumenterConfig so need to share the default based on JDK version between InstrumenterConfig and Config
1 parent 6ccbc06 commit c2f3bfb

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/origin/CodeOriginConfigTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.junit.jupiter.api.Assertions.assertTrue;
55

66
import datadog.trace.api.Config;
7+
import datadog.trace.api.InstrumenterConfig;
78
import org.junit.jupiter.api.Test;
89
import org.junit.jupiter.api.condition.EnabledForJreRange;
910
import org.junit.jupiter.api.condition.EnabledOnJre;
@@ -15,29 +16,34 @@ public class CodeOriginConfigTest {
1516
@Test
1617
public void defaultConfigJDK25() {
1718
assertTrue(Config.get().isDebuggerCodeOriginEnabled());
19+
assertTrue(InstrumenterConfig.get().isCodeOriginEnabled());
1820
}
1921

2022
@EnabledOnJre(JRE.JAVA_21)
2123
@Test
2224
public void defaultConfigJDK21() {
2325
assertFalse(Config.get().isDebuggerCodeOriginEnabled());
26+
assertFalse(InstrumenterConfig.get().isCodeOriginEnabled());
2427
}
2528

2629
@EnabledOnJre(JRE.JAVA_17)
2730
@Test
2831
public void defaultConfigJDK17() {
2932
assertFalse(Config.get().isDebuggerCodeOriginEnabled());
33+
assertFalse(InstrumenterConfig.get().isCodeOriginEnabled());
3034
}
3135

3236
@EnabledOnJre(JRE.JAVA_11)
3337
@Test
3438
public void defaultConfigJDK11() {
3539
assertFalse(Config.get().isDebuggerCodeOriginEnabled());
40+
assertFalse(InstrumenterConfig.get().isCodeOriginEnabled());
3641
}
3742

3843
@EnabledOnJre(JRE.JAVA_8)
3944
@Test
4045
public void defaultConfigJDK8() {
4146
assertFalse(Config.get().isDebuggerCodeOriginEnabled());
47+
assertFalse(InstrumenterConfig.get().isCodeOriginEnabled());
4248
}
4349
}

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2596,7 +2596,7 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
25962596
EXCEPTION_REPLAY_ENABLED);
25972597
debuggerCodeOriginEnabled =
25982598
configProvider.getBoolean(
2599-
CODE_ORIGIN_FOR_SPANS_ENABLED, getDefaultCodeOriginForSpanEnabled());
2599+
CODE_ORIGIN_FOR_SPANS_ENABLED, InstrumenterConfig.getDefaultCodeOriginForSpanEnabled());
26002600
debuggerCodeOriginMaxUserFrames =
26012601
configProvider.getInteger(CODE_ORIGIN_MAX_USER_FRAMES, DEFAULT_CODE_ORIGIN_MAX_USER_FRAMES);
26022602
debuggerMaxExceptionPerSecond =
@@ -2977,14 +2977,6 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
29772977
log.debug("New instance: {}", this);
29782978
}
29792979

2980-
private boolean getDefaultCodeOriginForSpanEnabled() {
2981-
if (JavaVirtualMachine.isJavaVersionAtLeast(25)) {
2982-
// activate by default Code Origin only for JDK25+
2983-
return true;
2984-
}
2985-
return false;
2986-
}
2987-
29882980
private static boolean isValidUrl(String url) {
29892981
if (url == null || url.isEmpty()) {
29902982
return false;

internal-api/src/main/java/datadog/trace/api/InstrumenterConfig.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import static datadog.trace.api.ConfigDefaults.DEFAULT_API_SECURITY_ENDPOINT_COLLECTION_ENABLED;
44
import static datadog.trace.api.ConfigDefaults.DEFAULT_APPSEC_ENABLED;
55
import static datadog.trace.api.ConfigDefaults.DEFAULT_CIVISIBILITY_ENABLED;
6-
import static datadog.trace.api.ConfigDefaults.DEFAULT_CODE_ORIGIN_FOR_SPANS_ENABLED;
76
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_ENABLED;
87
import static datadog.trace.api.ConfigDefaults.DEFAULT_IAST_ENABLED;
98
import static datadog.trace.api.ConfigDefaults.DEFAULT_INTEGRATIONS_ENABLED;
@@ -86,6 +85,7 @@
8685
import static datadog.trace.util.CollectionUtils.tryMakeImmutableList;
8786
import static datadog.trace.util.CollectionUtils.tryMakeImmutableSet;
8887

88+
import datadog.environment.JavaVirtualMachine;
8989
import datadog.trace.api.profiling.ProfilingEnablement;
9090
import datadog.trace.api.telemetry.ConfigInversionMetricCollectorImpl;
9191
import datadog.trace.api.telemetry.ConfigInversionMetricCollectorProvider;
@@ -231,7 +231,7 @@ private InstrumenterConfig() {
231231

232232
codeOriginEnabled =
233233
configProvider.getBoolean(
234-
CODE_ORIGIN_FOR_SPANS_ENABLED, DEFAULT_CODE_ORIGIN_FOR_SPANS_ENABLED);
234+
CODE_ORIGIN_FOR_SPANS_ENABLED, getDefaultCodeOriginForSpanEnabled());
235235
traceEnabled = configProvider.getBoolean(TRACE_ENABLED, DEFAULT_TRACE_ENABLED);
236236
traceOtelEnabled = configProvider.getBoolean(TRACE_OTEL_ENABLED, DEFAULT_TRACE_OTEL_ENABLED);
237237
metricsOtelEnabled =
@@ -665,6 +665,14 @@ public boolean isApiSecurityEndpointCollectionEnabled() {
665665
? ConfigProvider.withoutCollector()
666666
: ConfigProvider.getInstance());
667667

668+
static boolean getDefaultCodeOriginForSpanEnabled() {
669+
if (JavaVirtualMachine.isJavaVersionAtLeast(25)) {
670+
// activate by default Code Origin only for JDK25+
671+
return true;
672+
}
673+
return false;
674+
}
675+
668676
public static InstrumenterConfig get() {
669677
return INSTANCE;
670678
}

0 commit comments

Comments
 (0)