Home / Class/ SimpleLeakAwareByteBufTest Class — netty Architecture

SimpleLeakAwareByteBufTest Class — netty Architecture

Architecture documentation for the SimpleLeakAwareByteBufTest class in SimpleLeakAwareByteBufTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  ee8c6871_9430_e954_40e6_60ccad1666c5["SimpleLeakAwareByteBufTest"]
  7f31b493_5025_c5dc_f92b_7aecc2b1d308["SimpleLeakAwareByteBufTest.java"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|defined in| 7f31b493_5025_c5dc_f92b_7aecc2b1d308
  e682a7eb_5913_31cf_2712_efe410719bc9["ByteBuf()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| e682a7eb_5913_31cf_2712_efe410719bc9
  05dbbc53_d3bf_7431_b4fe_968b5c75edf0["SimpleLeakAwareByteBuf()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 05dbbc53_d3bf_7431_b4fe_968b5c75edf0
  a45f32ab_42a2_e3f9_d92b_6476fcc0828c["init()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| a45f32ab_42a2_e3f9_d92b_6476fcc0828c
  e3aaee59_c956_8250_723a_994a9bc9e279["dispose()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| e3aaee59_c956_8250_723a_994a9bc9e279
  63ee04f2_41b6_65b4_3bd9_c0bee56d59ae["leakClass()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 63ee04f2_41b6_65b4_3bd9_c0bee56d59ae
  c8839db4_b0c3_6d01_1fc4_451b13a6c481["testWrapSlice()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| c8839db4_b0c3_6d01_1fc4_451b13a6c481
  e8e72f3a_7025_5ca8_b9af_aee4f49d66a8["testWrapSlice2()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| e8e72f3a_7025_5ca8_b9af_aee4f49d66a8
  756c3140_60c0_edd9_e358_4f29217972b8["testWrapReadSlice()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 756c3140_60c0_edd9_e358_4f29217972b8
  13a38a28_8223_044d_9695_0190606dbefd["testWrapRetainedSlice()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 13a38a28_8223_044d_9695_0190606dbefd
  f9548f79_2abc_4c24_2ca1_dbfa3c9625a0["testWrapRetainedSlice2()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| f9548f79_2abc_4c24_2ca1_dbfa3c9625a0
  8f313d6e_2cef_d09f_9a5c_af1df52be5dc["testWrapReadRetainedSlice()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 8f313d6e_2cef_d09f_9a5c_af1df52be5dc
  5642693f_ec79_6768_2982_23d799674980["testWrapDuplicate()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 5642693f_ec79_6768_2982_23d799674980
  76caa602_d73a_13c5_8f13_3d4e25e9fe25["testWrapRetainedDuplicate()"]
  ee8c6871_9430_e954_40e6_60ccad1666c5 -->|method| 76caa602_d73a_13c5_8f13_3d4e25e9fe25

Relationship Graph

Source Code

buffer/src/test/java/io/netty/buffer/SimpleLeakAwareByteBufTest.java lines 38–183

public class SimpleLeakAwareByteBufTest extends BigEndianHeapByteBufTest {
    private final Class<? extends ByteBuf> clazz = leakClass();
    private final Queue<NoopResourceLeakTracker<ByteBuf>> trackers = new ArrayDeque<NoopResourceLeakTracker<ByteBuf>>();

    @Override
    protected final ByteBuf newBuffer(int capacity, int maxCapacity) {
        return wrap(super.newBuffer(capacity, maxCapacity));
    }

    private ByteBuf wrap(ByteBuf buffer) {
        NoopResourceLeakTracker<ByteBuf> tracker = new NoopResourceLeakTracker<ByteBuf>();
        ByteBuf leakAwareBuf = wrap(buffer, tracker);
        trackers.add(tracker);
        return leakAwareBuf;
    }

    protected SimpleLeakAwareByteBuf wrap(ByteBuf buffer, ResourceLeakTracker<ByteBuf> tracker) {
        return new SimpleLeakAwareByteBuf(buffer, tracker);
    }

    @BeforeEach
    @Override
    public void init() {
        super.init();
        trackers.clear();
    }

    @AfterEach
    @Override
    public void dispose() {
        super.dispose();

        for (;;) {
            NoopResourceLeakTracker<ByteBuf> tracker = trackers.poll();

            if (tracker == null) {
                break;
            }
            assertTrue(tracker.get());
        }
    }

    protected Class<? extends ByteBuf> leakClass() {
        return SimpleLeakAwareByteBuf.class;
    }

    @Test
    public void testWrapSlice() {
        assertWrapped(newBuffer(8).slice());
    }

    @Test
    public void testWrapSlice2() {
        assertWrapped(newBuffer(8).slice(0, 1));
    }

    @Test
    public void testWrapReadSlice() {
        ByteBuf buffer = newBuffer(8);
        if (buffer.isReadable()) {
            assertWrapped(buffer.readSlice(1));
        } else {
            assertTrue(buffer.release());
        }
    }

    @Test
    public void testWrapRetainedSlice() {
        ByteBuf buffer = newBuffer(8);
        assertWrapped(buffer.retainedSlice());
        assertTrue(buffer.release());
    }

    @Test
    public void testWrapRetainedSlice2() {
        ByteBuf buffer = newBuffer(8);
        if (buffer.isReadable()) {
            assertWrapped(buffer.retainedSlice(0, 1));
        }
        assertTrue(buffer.release());
    }

Frequently Asked Questions

What is the SimpleLeakAwareByteBufTest class?
SimpleLeakAwareByteBufTest is a class in the netty codebase, defined in buffer/src/test/java/io/netty/buffer/SimpleLeakAwareByteBufTest.java.
Where is SimpleLeakAwareByteBufTest defined?
SimpleLeakAwareByteBufTest is defined in buffer/src/test/java/io/netty/buffer/SimpleLeakAwareByteBufTest.java at line 38.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free