Skip to content

Commit 41f787c

Browse files
committed
Avoid leaking thread-locals in HikariBlockedTracker
1 parent 3f36f2e commit 41f787c

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
package datadog.trace.instrumentation.jdbc;
22

3+
import static java.lang.Boolean.TRUE;
4+
35
/** Shared blocked getConnection() tracking {@link ThreadLocal} for Hikari. */
46
public class HikariBlockedTracker {
5-
private static final ThreadLocal<Boolean> tracker = ThreadLocal.withInitial(() -> false);
7+
private static final ThreadLocal<Boolean> tracker = new ThreadLocal<>();
68

79
public static void clearBlocked() {
8-
tracker.set(false);
10+
tracker.remove();
911
}
1012

1113
public static void setBlocked() {
12-
tracker.set(true);
14+
tracker.set(TRUE);
1315
}
1416

1517
public static boolean wasBlocked() {
16-
return tracker.get();
18+
return TRUE == tracker.get();
1719
}
1820
}

dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/HikariConcurrentBagInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,9 @@ public static void stopSpan(
9999
}
100100

101101
span.finish();
102+
103+
HikariBlockedTracker.clearBlocked();
102104
}
103-
HikariBlockedTracker.clearBlocked();
104105
}
105106
}
106107
}

0 commit comments

Comments
 (0)