Skip to content

Commit

Permalink
Simplify HttpUrlConnection instrumentation (open-telemetry#5673)
Browse files Browse the repository at this point in the history
  • Loading branch information
laurit authored and RashmiRam committed May 23, 2022
1 parent dac3649 commit 4396953
Showing 1 changed file with 5 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,6 @@ public static void methodEnter(
// top-level HttpURLConnection calls
return;
}
// double increment on first entry is used to prevent infinite recursion in case end()
// captures response headers due to HttpUrlConnection.getHeaderField() calling
// HttpUrlConnection.getInputStream() which then enters this advice again
callDepth.getAndIncrement();

Context parentContext = currentContext();
if (!instrumenter().shouldStart(parentContext, connection)) {
Expand Down Expand Up @@ -108,16 +104,16 @@ public static void methodExit(
@Advice.Local("otelHttpUrlState") HttpUrlState httpUrlState,
@Advice.Local("otelScope") Scope scope,
@Advice.Local("otelCallDepth") CallDepth callDepth) {
// checking against 1 instead of against 0, because of the double increment which is used to
// prevent infinite recursion in case end() captures response headers
if (callDepth.decrementAndGet() > 1) {
if (callDepth.decrementAndGet() > 0) {
return;
}
if (scope == null) {
// need to perform the second decrement here since bailing out early
callDepth.decrementAndGet();
return;
}
// prevent infinite recursion in case end() captures response headers due to
// HttpUrlConnection.getHeaderField() calling HttpUrlConnection.getInputStream() which then
// enters this advice again
callDepth.getAndIncrement();
try {
scope.close();

Expand All @@ -144,8 +140,6 @@ public static void methodExit(
httpUrlState.finished = true;
}
} finally {
// double increment is used to prevent infinite recursion in case end() captures response
// headers
callDepth.decrementAndGet();
}
}
Expand Down

0 comments on commit 4396953

Please sign in to comment.