Skip to content

RUM-14609: Fix npe in TracingInterceptor tests#3181

Merged
satween merged 1 commit into
developfrom
tvaleev/feature/RUM-14609
Feb 18, 2026
Merged

RUM-14609: Fix npe in TracingInterceptor tests#3181
satween merged 1 commit into
developfrom
tvaleev/feature/RUM-14609

Conversation

@satween

@satween satween commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

This PR fixes test setup in order to remove NPE like following:

DatadogInterceptorWithoutRumTest > M create only one local tracer W intercept() called from multiple threads(int) STANDARD_ERROR
    Exception in thread "Thread-7" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.DatadogInterceptor.intercept(DatadogInterceptor.kt:148)
        at com.datadog.android.okhttp.trace.TracingInterceptorTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$32(TracingInterceptorTest.kt:1537)
        at java.base/java.lang.Thread.run(Thread.java:840)
    Exception in thread "Thread-8" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.DatadogInterceptor.intercept(DatadogInterceptor.kt:148)
        at com.datadog.android.okhttp.trace.TracingInterceptorTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$33(TracingInterceptorTest.kt:1541)
        at java.base/java.lang.Thread.run(Thread.java:840)

TracingInterceptorContextInjectionSampledTest > M create only one local tracer W intercept() called from multiple threads(int) STANDARD_ERROR
    Exception in thread "Thread-9" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorContextInjectionSampledTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$27(TracingInterceptorContextInjectionSampledTest.kt:1340)
        at java.base/java.lang.Thread.run(Thread.java:840)
    Exception in thread "Thread-10" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorContextInjectionSampledTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$28(TracingInterceptorContextInjectionSampledTest.kt:1344)
        at java.base/java.lang.Thread.run(Thread.java:840)

TracingInterceptorNonDdTracerNotSendingSpanTest > M create only one local tracer W intercept() called from multiple threads(int) STANDARD_ERROR
    Exception in thread "Thread-11" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorNonDdTracerNotSendingSpanTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$23(TracingInterceptorNonDdTracerNotSendingSpanTest.kt:1243)
        at java.base/java.lang.Thread.run(Thread.java:840)
    Exception in thread "Thread-12" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorNonDdTracerNotSendingSpanTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$24(TracingInterceptorNonDdTracerNotSendingSpanTest.kt:1247)
        at java.base/java.lang.Thread.run(Thread.java:840)

TracingInterceptorNonDdTracerTest > M create only one local tracer W intercept() called from multiple threads(int) STANDARD_ERROR
    Exception in thread "Thread-13" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorNonDdTracerTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$25(TracingInterceptorNonDdTracerTest.kt:1351)
        at java.base/java.lang.Thread.run(Thread.java:840)
    Exception in thread "Thread-14" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorNonDdTracerTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$26(TracingInterceptorNonDdTracerTest.kt:1355)
        at java.base/java.lang.Thread.run(Thread.java:840)

TracingInterceptorTest > M create only one local tracer W intercept() called from multiple threads(int) STANDARD_ERROR
    Exception in thread "Thread-17" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$32(TracingInterceptorTest.kt:1537)
        at java.base/java.lang.Thread.run(Thread.java:840)
    Exception in thread "Thread-18" java.lang.NullPointerException: Cannot invoke "com.datadog.android.trace.api.span.DatadogSpanBuilder.withParentContext(com.datadog.android.trace.api.span.DatadogSpanContext)" because the return value of "com.datadog.android.trace.api.span.DatadogSpanBuilder.withOrigin(String)" is null
        at com.datadog.android.okhttp.trace.TracingInterceptor.buildSpan(TracingInterceptor.kt:340)
        at com.datadog.android.okhttp.trace.TracingInterceptor.interceptAndTrace(TracingInterceptor.kt:238)
        at com.datadog.android.okhttp.trace.TracingInterceptor.doIntercept(TracingInterceptor.kt:157)
        at com.datadog.android.okhttp.trace.TracingInterceptor.intercept(TracingInterceptor.kt:122)
        at com.datadog.android.okhttp.trace.TracingInterceptorTest.M_create_only_one_local_tracer_W_intercept___called_from_multiple_threads$lambda$33(TracingInterceptorTest.kt:1541)
        at java.base/java.lang.Thread.run(Thread.java:840)

Additional Notes

Anything else we should know when reviewing?

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Make sure you discussed the feature or bugfix with the maintaining team in an Issue
  • Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

@satween
satween requested a review from a team as a code owner February 17, 2026 02:51
@datadog-datadog-prod-us1

This comment has been minimized.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.19%. Comparing base (1f0c410) to head (50e3015).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #3181      +/-   ##
===========================================
+ Coverage    71.15%   71.19%   +0.04%     
===========================================
  Files          922      922              
  Lines        34172    34172              
  Branches      5776     5776              
===========================================
+ Hits         24314    24327      +13     
  Misses        8211     8211              
+ Partials      1647     1634      -13     

see 40 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@satween
satween merged commit 03c00ad into develop Feb 18, 2026
27 checks passed
@satween
satween deleted the tvaleev/feature/RUM-14609 branch February 18, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants