AdvancedLeakAwareByteBuf Class — netty Architecture
Architecture documentation for the AdvancedLeakAwareByteBuf class in AdvancedLeakAwareByteBuf.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 202ee4c1_c235_e70f_24a3_9900f0bd91da["AdvancedLeakAwareByteBuf"] 4b580726_dbb8_48ec_6cda_cd515fa1713e["AdvancedLeakAwareByteBuf.java"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|defined in| 4b580726_dbb8_48ec_6cda_cd515fa1713e b3b81687_e783_98a2_c9d4_78e8a9121b78["AdvancedLeakAwareByteBuf()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| b3b81687_e783_98a2_c9d4_78e8a9121b78 99037518_9631_68f6_6e1c_f2ef030091e9["recordLeakNonRefCountingOperation()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 99037518_9631_68f6_6e1c_f2ef030091e9 0f92c079_d3aa_ff5c_bef8_c0c50c4218f8["ByteBuf()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 0f92c079_d3aa_ff5c_bef8_c0c50c4218f8 5a560c9e_1ebd_d950_64a9_98c31fee0941["ensureWritable()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 5a560c9e_1ebd_d950_64a9_98c31fee0941 da70f10d_0d17_6a87_4568_96f009b159f8["getBoolean()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| da70f10d_0d17_6a87_4568_96f009b159f8 bedcf900_0e2e_2e37_ba60_9f5cbf0da6f1["getByte()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| bedcf900_0e2e_2e37_ba60_9f5cbf0da6f1 e8bf5d40_5918_2a5e_82ea_66d833e661dc["getUnsignedByte()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| e8bf5d40_5918_2a5e_82ea_66d833e661dc 97097d3a_6869_d35a_39ea_a1695a411f23["getShort()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 97097d3a_6869_d35a_39ea_a1695a411f23 1e39ea91_84ab_3d6c_9423_1f7d2dae96a7["getUnsignedShort()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 1e39ea91_84ab_3d6c_9423_1f7d2dae96a7 bb7f93d0_afea_bcc9_87f1_3af0990a6eac["getMedium()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| bb7f93d0_afea_bcc9_87f1_3af0990a6eac 3e3f235c_1ae8_c772_4203_b401ae20b0b6["getUnsignedMedium()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 3e3f235c_1ae8_c772_4203_b401ae20b0b6 e69a14de_69a5_dd21_8446_28c24f29602a["getInt()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| e69a14de_69a5_dd21_8446_28c24f29602a 9d8ba73d_f695_4d48_aef4_2110a30facda["getUnsignedInt()"] 202ee4c1_c235_e70f_24a3_9900f0bd91da -->|method| 9d8ba73d_f695_4d48_aef4_2110a30facda
Relationship Graph
Source Code
buffer/src/main/java/io/netty/buffer/AdvancedLeakAwareByteBuf.java lines 36–974
final class AdvancedLeakAwareByteBuf extends SimpleLeakAwareByteBuf {
// If set to true we will only record stacktraces for touch(...), release(...) and retain(...) calls.
private static final String PROP_ACQUIRE_AND_RELEASE_ONLY = "io.netty.leakDetection.acquireAndReleaseOnly";
private static final boolean ACQUIRE_AND_RELEASE_ONLY;
private static final InternalLogger logger = InternalLoggerFactory.getInstance(AdvancedLeakAwareByteBuf.class);
static {
ACQUIRE_AND_RELEASE_ONLY = SystemPropertyUtil.getBoolean(PROP_ACQUIRE_AND_RELEASE_ONLY, false);
if (logger.isDebugEnabled()) {
logger.debug("-D{}: {}", PROP_ACQUIRE_AND_RELEASE_ONLY, ACQUIRE_AND_RELEASE_ONLY);
}
ResourceLeakDetector.addExclusions(
AdvancedLeakAwareByteBuf.class, "touch", "recordLeakNonRefCountingOperation");
}
AdvancedLeakAwareByteBuf(ByteBuf buf, ResourceLeakTracker<ByteBuf> leak) {
super(buf, leak);
}
AdvancedLeakAwareByteBuf(ByteBuf wrapped, ByteBuf trackedByteBuf, ResourceLeakTracker<ByteBuf> leak) {
super(wrapped, trackedByteBuf, leak);
}
static void recordLeakNonRefCountingOperation(ResourceLeakTracker<ByteBuf> leak) {
if (!ACQUIRE_AND_RELEASE_ONLY) {
leak.record();
}
}
@Override
public ByteBuf order(ByteOrder endianness) {
recordLeakNonRefCountingOperation(leak);
return super.order(endianness);
}
@Override
public ByteBuf slice() {
recordLeakNonRefCountingOperation(leak);
return super.slice();
}
@Override
public ByteBuf slice(int index, int length) {
recordLeakNonRefCountingOperation(leak);
return super.slice(index, length);
}
@Override
public ByteBuf retainedSlice() {
recordLeakNonRefCountingOperation(leak);
return super.retainedSlice();
}
@Override
public ByteBuf retainedSlice(int index, int length) {
recordLeakNonRefCountingOperation(leak);
return super.retainedSlice(index, length);
}
@Override
public ByteBuf retainedDuplicate() {
recordLeakNonRefCountingOperation(leak);
return super.retainedDuplicate();
}
@Override
public ByteBuf readRetainedSlice(int length) {
recordLeakNonRefCountingOperation(leak);
return super.readRetainedSlice(length);
}
@Override
public ByteBuf duplicate() {
recordLeakNonRefCountingOperation(leak);
return super.duplicate();
}
Source
Frequently Asked Questions
What is the AdvancedLeakAwareByteBuf class?
AdvancedLeakAwareByteBuf is a class in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/AdvancedLeakAwareByteBuf.java.
Where is AdvancedLeakAwareByteBuf defined?
AdvancedLeakAwareByteBuf is defined in buffer/src/main/java/io/netty/buffer/AdvancedLeakAwareByteBuf.java at line 36.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free