Skip to content

To remove cross module internal utility usage from trace propagators - #8955

Open
NithinU2802 wants to merge 2 commits into
open-telemetry:mainfrom
NithinU2802:fix/trace-propagator-internal-utilities
Open

NithinU2802 wants to merge 2 commits into
open-telemetry:mainfrom
NithinU2802:fix/trace-propagator-internal-utilities

Conversation

@NithinU2802

@NithinU2802 NithinU2802 commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

This PR is to resolves a part #6970 by updating the trace-propagators module’s dependency on API internal utility classes.

Changes

  • Add trace-propagators local StringUtils and TemporaryBuffers utilities.
  • Update B3, Jaeger, and OT trace propagators to use the local utilities which are created.
  • Add explicit null accordingly to the files.
  • Did pick methods which are used from the API internal utility classes.

@NithinU2802
NithinU2802 requested a review from a team as a code owner October 18, 2026 08:13
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Pull request dashboard status

Waiting on the author · refreshed 2026-10-19 18:52 UTC

Respond to 3 review items (e.g. link a commit, explain why not, ask a follow-up):

  • Inline threads: 1, 2, 3
Status above doesn't look right?
  • Just replied or pushed? Anything around or after the refresh time above may not be picked up yet — give it a few minutes.
  • Should this be with reviewers? Comment /dashboard route:reviewers to route it to them.
  • Anything wrong — including the routing? Report it with what you expected; it helps us improve the dashboard.

@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.95652% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.41%. Comparing base (600cce0) to head (fd873d4).
⚠️ Report is 116 commits behind head on main.

Files with missing lines Patch % Lines
...ntelemetry/extension/trace/propagation/Common.java 60.00% 0 Missing and 2 partials ⚠️
...metry/extension/trace/propagation/StringUtils.java 90.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #8955      +/-   ##
============================================
- Coverage     91.26%   90.41%   -0.86%     
- Complexity    10503    10911     +408     
============================================
  Files          1007     1017      +10     
  Lines         28373    29860    +1487     
  Branches       3586     3900     +314     
============================================
+ Hits          25896    26998    +1102     
- Misses         1685     1909     +224     
- Partials        792      953     +161     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

* @param minLength the minimum length of the returned string
* @return the padded string, or {@code value} if it already meets the minimum length
*/
static String padLeft(String value, int minLength) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is only used in the opentelemetry-extension-trace-propagators module and tests, so let's go ahead and remove it from io.opentelemetry.api.internal.StringUtils.

* @param string the string to check
* @return {@code true} if {@code string} is {@code null} or empty
*/
static boolean isNullOrEmpty(@Nullable String string) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this method is kind of silly. Better to just enumerate the string == null || string.isEmpty() condition in the places that use it.

* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
final class TemporaryBuffers {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should consider promoting this to a .impl. API since a second ThreadLocal increases the the allocation per thread when reuse is safe

This branch has not been deployed

No deployments
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.

2 participants