Correctly handle the case when no ResourceLeakTracker was created for derived pooled buffers. This was missed in c2f4daa739

This commit is contained in:
Norman Maurer 2016-12-04 23:09:23 +01:00
parent fc1cdc991e
commit 13a8ebade4

View File

@ -137,16 +137,15 @@ class SimpleLeakAwareByteBuf extends WrappedByteBuf {
ByteBuf unwrappedDerived = unwrapSwapped(derived);
if (unwrappedDerived instanceof AbstractPooledDerivedByteBuf) {
// Update the parent to point to this buffer so we correctly close the ResourceLeakTracker.
((AbstractPooledDerivedByteBuf) unwrappedDerived).parent(this);
ResourceLeakTracker<ByteBuf> newLeak = AbstractByteBuf.leakDetector.track(derived);
if (newLeak == null) {
// No leak detection, just return the derived buffer.
return derived;
}
ByteBuf leakAwareBuf = newLeakAwareByteBuf(derived, newLeak);
// Update the parent to point to this buffer.
((AbstractPooledDerivedByteBuf) unwrappedDerived).parent(this);
return leakAwareBuf;
return newLeakAwareByteBuf(derived, newLeak);
}
return newSharedLeakAwareByteBuf(derived);
}