Add BlockHound exception for ConcurrentReferenceHashMap$ReferenceManager

This commit adds a SpringCoreBlockHoundIntegration configuration to
allows `pollForPurge` method to block.

Closes gh-33450
This commit is contained in:
Simon Baslé
2024-09-17 16:33:29 +02:00
parent daea92397f
commit f6e96a24d4

View File

@@ -442,10 +442,13 @@ public class ReactiveAdapterRegistry {
public void applyTo(BlockHound.Builder builder) {
// Avoid hard references potentially anywhere in spring-core (no need for structural dependency)
String className = "org.springframework.util.ConcurrentReferenceHashMap$Segment";
builder.allowBlockingCallsInside(className, "doTask");
builder.allowBlockingCallsInside(className, "clear");
builder.allowBlockingCallsInside(className, "restructure");
String segmentClassName = "org.springframework.util.ConcurrentReferenceHashMap$Segment";
builder.allowBlockingCallsInside(segmentClassName, "doTask");
builder.allowBlockingCallsInside(segmentClassName, "clear");
builder.allowBlockingCallsInside(segmentClassName, "restructure");
String referenceManagerClassName = "org.springframework.util.ConcurrentReferenceHashMap$ReferenceManager";
builder.allowBlockingCallsInside(referenceManagerClassName, "pollForPurge");
}
}