LeakPresenceDetectorTest Class — netty Architecture
Architecture documentation for the LeakPresenceDetectorTest class in LeakPresenceDetectorTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f88b124f_7485_efe9_077b_0111197ae030["LeakPresenceDetectorTest"] 5de89b08_3710_3173_95d5_1406fc2abe4d["LeakPresenceDetectorTest.java"] f88b124f_7485_efe9_077b_0111197ae030 -->|defined in| 5de89b08_3710_3173_95d5_1406fc2abe4d c1e07c1d_d027_accb_fbdb_9e446d07149e["setUp()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| c1e07c1d_d027_accb_fbdb_9e446d07149e 34400e11_0b4b_f4d8_c90e_c616ddd3729f["tearDown()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| 34400e11_0b4b_f4d8_c90e_c616ddd3729f 7ad3bd1b_978e_4c3e_5b30_c5109395e997["factories()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| 7ad3bd1b_978e_4c3e_5b30_c5109395e997 77edef6e_f3ad_8ec1_3fa9_fa1092e9f2a8["noExceptionInNormalOperation()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| 77edef6e_f3ad_8ec1_3fa9_fa1092e9f2a8 1f8d1453_32b3_b3e6_3a0b_b500e0813fa3["exceptionOnUnclosed()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| 1f8d1453_32b3_b3e6_3a0b_b500e0813fa3 6eadd23c_b100_35e9_99fa_cbf925395b74["noExceptionInStaticInitializerGlobal()"] f88b124f_7485_efe9_077b_0111197ae030 -->|method| 6eadd23c_b100_35e9_99fa_cbf925395b74
Relationship Graph
Source Code
common/src/test/java/io/netty/util/LeakPresenceDetectorTest.java lines 33–109
class LeakPresenceDetectorTest {
private ResourceLeakDetectorFactory oldFactory;
private void setUp(Function<Class<?>, LeakPresenceDetector<?>> factory) {
oldFactory = ResourceLeakDetectorFactory.instance();
ResourceLeakDetectorFactory.setResourceLeakDetectorFactory(new ResourceLeakDetectorFactory() {
@SuppressWarnings("unchecked")
@Override
public <T> ResourceLeakDetector<T> newResourceLeakDetector(
Class<T> resource, int samplingInterval, long maxActive) {
return (ResourceLeakDetector<T>) factory.apply(resource);
}
});
}
@AfterEach
public void tearDown() {
ResourceLeakDetectorFactory.setResourceLeakDetectorFactory(oldFactory);
}
static List<Function<Class<?>, LeakPresenceDetector<?>>> factories() {
return Collections.singletonList(LeakPresenceDetector::new);
}
@ParameterizedTest
@MethodSource("factories")
public void noExceptionInNormalOperation(Function<Class<?>, LeakPresenceDetector<?>> factory) {
setUp(factory);
Resource resource = new Resource();
resource.close();
resource.close();
LeakPresenceDetector.check();
}
@SuppressWarnings("resource")
@ParameterizedTest
@MethodSource("factories")
public void exceptionOnUnclosed(Function<Class<?>, LeakPresenceDetector<?>> factory) {
setUp(factory);
new Resource();
assertThrows(IllegalStateException.class, LeakPresenceDetector::check);
}
@Test
public void noExceptionInStaticInitializerGlobal() {
setUp(LeakPresenceDetector::new);
ResourceInStaticVariable1.init();
LeakPresenceDetector.check();
}
private static class Resource implements Closeable {
private final ResourceLeakTracker<Resource> leak;
Resource() {
leak = ResourceLeakDetectorFactory.instance().newResourceLeakDetector(Resource.class).track(this);
}
@Override
public void close() {
leak.close(this);
}
}
@SuppressWarnings("unused")
private static class ResourceInStaticVariable1 {
private static final Resource RESOURCE = LeakPresenceDetector.staticInitializer(Resource::new);
static void init() {
}
}
}
Source
Frequently Asked Questions
What is the LeakPresenceDetectorTest class?
LeakPresenceDetectorTest is a class in the netty codebase, defined in common/src/test/java/io/netty/util/LeakPresenceDetectorTest.java.
Where is LeakPresenceDetectorTest defined?
LeakPresenceDetectorTest is defined in common/src/test/java/io/netty/util/LeakPresenceDetectorTest.java at line 33.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free