diff --git a/common/src/main/java/io/netty/util/ResourceLeakDetector.java b/common/src/main/java/io/netty/util/ResourceLeakDetector.java index 582a6507c9..16ffef6d05 100644 --- a/common/src/main/java/io/netty/util/ResourceLeakDetector.java +++ b/common/src/main/java/io/netty/util/ResourceLeakDetector.java @@ -266,7 +266,7 @@ public class ResourceLeakDetector { if (ref == null) { break; } - ref.close(); + ref.dispose(); } } @@ -284,9 +284,7 @@ public class ResourceLeakDetector { break; } - ref.clear(); - - if (!ref.close()) { + if (!ref.dispose()) { continue; } @@ -394,6 +392,11 @@ public class ResourceLeakDetector { } } + boolean dispose() { + clear(); + return allLeaks.remove(this, LeakEntry.INSTANCE); + } + @Override public boolean close() { // Use the ConcurrentMap remove method, which avoids allocating an iterator.