Skip to content

Commit 1f24bbb

Browse files
committed
Ensure all weak static lookups are thread-safe
1 parent 41127fe commit 1f24bbb

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

src/main/java/tech/httptoolkit/javaagent/advice/akka/ResetOldGatewaysAdvice.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
// one per config, rather than one PoolMaster instance. Otherwise the logic should be identical.
1919
public class ResetOldGatewaysAdvice {
2020

21-
public static Set<HostConnectionPoolSetup> resetPoolSetups = Collections.newSetFromMap(new WeakHashMap<>());
21+
public static Set<HostConnectionPoolSetup> resetPoolSetups = Collections.newSetFromMap(
22+
Collections.synchronizedMap(new WeakHashMap<>())
23+
);
2224

2325
@Advice.OnMethodEnter
2426
public static void beforeDispatchRequest(

src/main/java/tech/httptoolkit/javaagent/advice/akka/ResetOldPoolsAdvice.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616

1717
public class ResetOldPoolsAdvice {
1818

19-
public static Set<PoolId> resetPoolIds = Collections.newSetFromMap(new WeakHashMap<>());
19+
public static Set<PoolId> resetPoolIds = Collections.newSetFromMap(
20+
Collections.synchronizedMap(new WeakHashMap<>())
21+
);
2022

2123
@Advice.OnMethodEnter
2224
public static void beforeDispatchRequest(

src/main/java/tech/httptoolkit/javaagent/advice/asynchttpclient/AsyncHttpResetSslEngineFactoryAdvice.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ public class AsyncHttpResetSslEngineFactoryAdvice {
1212

1313
// Track each ChannelManager with a weak ref, to avoid unnecessary reflection overhead by only
1414
// initializing them once, instead of every request
15-
public static Set<Object> patchedChannelManagers = Collections.newSetFromMap(new WeakHashMap());
15+
public static Set<Object> patchedChannelManagers = Collections.newSetFromMap(
16+
Collections.synchronizedMap(new WeakHashMap<>())
17+
);
1618

1719
@Advice.OnMethodEnter
1820
public static void createSslHandler(

src/main/java/tech/httptoolkit/javaagent/advice/jettyclient/JettyResetDestinationsAdvice.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ public class JettyResetDestinationsAdvice {
1212

1313
// Track each client with a weak ref, to avoid unnecessary reflection overhead by only
1414
// initializing them once, instead of every request
15-
public static Set<Object> patchedHttpClients = Collections.newSetFromMap(new WeakHashMap());
15+
public static Set<Object> patchedHttpClients = Collections.newSetFromMap(
16+
Collections.synchronizedMap(new WeakHashMap<>())
17+
);
1618

1719
@Advice.OnMethodEnter
1820
public static void beforeResolveDestination(

0 commit comments

Comments
 (0)