Browse Source

Add BlockHound exception for ConcurrentReferenceHashMap$ReferenceManager

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

Closes gh-33450
pull/33720/head
Simon Baslé 1 year ago
parent
commit
f6e96a24d4
  1. 11
      spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java

11
spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java

@ -442,10 +442,13 @@ public class ReactiveAdapterRegistry { @@ -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");
}
}

Loading…
Cancel
Save