Home / Function/ testMultipleRetainedDuplicateReleaseOriginal() — netty Function Reference

testMultipleRetainedDuplicateReleaseOriginal() — netty Function Reference

Architecture documentation for the testMultipleRetainedDuplicateReleaseOriginal() function in AbstractByteBufTest.java from the netty codebase.

Function java Buffer Search called by 4

Entity Profile

Dependency Diagram

graph TD
  feed28a2_427f_88b9_eed1_f8dd2b0338f1["testMultipleRetainedDuplicateReleaseOriginal()"]
  6540f2d1_cdad_6705_dd1d_9a24e2e53242["AbstractByteBufTest"]
  feed28a2_427f_88b9_eed1_f8dd2b0338f1 -->|defined in| 6540f2d1_cdad_6705_dd1d_9a24e2e53242
  10fa043d_9ee0_6c45_8269_0e567a679a49["testMultipleRetainedDuplicateReleaseOriginal1()"]
  10fa043d_9ee0_6c45_8269_0e567a679a49 -->|calls| feed28a2_427f_88b9_eed1_f8dd2b0338f1
  65cbc8cc_352f_b75d_87ee_adccd11f9ac3["testMultipleRetainedDuplicateReleaseOriginal2()"]
  65cbc8cc_352f_b75d_87ee_adccd11f9ac3 -->|calls| feed28a2_427f_88b9_eed1_f8dd2b0338f1
  87208e81_166a_7bee_a58e_4fd6e8124b17["testMultipleRetainedDuplicateReleaseOriginal3()"]
  87208e81_166a_7bee_a58e_4fd6e8124b17 -->|calls| feed28a2_427f_88b9_eed1_f8dd2b0338f1
  57b34ed0_ab70_44a2_6eb6_f60e51ee4316["testMultipleRetainedDuplicateReleaseOriginal4()"]
  57b34ed0_ab70_44a2_6eb6_f60e51ee4316 -->|calls| feed28a2_427f_88b9_eed1_f8dd2b0338f1
  style feed28a2_427f_88b9_eed1_f8dd2b0338f1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java lines 5677–5722

    private void testMultipleRetainedDuplicateReleaseOriginal(boolean retainedDuplicate1, boolean retainedDuplicate2) {
        ByteBuf buf = newBuffer(8).resetWriterIndex();
        ByteBuf expected = newBuffer(8).resetWriterIndex();
        buf.writeBytes(new byte[] {1, 2, 3, 4, 5, 6, 7, 8});
        expected.writeBytes(buf, buf.readerIndex(), buf.readableBytes());
        ByteBuf dup1 = retainedDuplicate1 ? buf.retainedDuplicate()
                                          : buf.duplicate().retain();
        assertEquals(0, dup1.compareTo(expected));
        // Simulate a handler that releases the original buffer, and propagates a slice.
        buf.release();

        ByteBuf dup2 = retainedDuplicate2 ? dup1.retainedDuplicate()
                                          : dup1.duplicate().retain();
        assertEquals(0, dup2.compareTo(expected));
        assertEquals(0, dup2.compareTo(dup2.duplicate()));
        assertEquals(0, dup2.compareTo(dup2.slice()));

        ByteBuf tmpBuf = dup2.retainedDuplicate();
        assertEquals(0, dup2.compareTo(tmpBuf));
        tmpBuf.release();
        tmpBuf = dup2.retainedSlice();
        assertEquals(0, dup2.compareTo(tmpBuf));
        tmpBuf.release();

        // The handler created a slice of the slice and is now done with it.
        dup2.release();

        ByteBuf dup3 = dup1.retainedDuplicate();
        assertEquals(0, dup3.compareTo(expected));

        // The handler created another slice of the slice and is now done with it.
        dup3.release();

        // The handler is now done with the original slice
        assertTrue(dup1.release());

        // Cleanup the expected buffers used for testing.
        assertTrue(expected.release());

        // Reference counting may be shared, or may be independently tracked, but at this point all buffers should
        // be deallocated and have a reference count of 0.
        assertEquals(0, buf.refCnt());
        assertEquals(0, dup1.refCnt());
        assertEquals(0, dup2.refCnt());
        assertEquals(0, dup3.refCnt());
    }

Domain

Subdomains

Frequently Asked Questions

What does testMultipleRetainedDuplicateReleaseOriginal() do?
testMultipleRetainedDuplicateReleaseOriginal() is a function in the netty codebase, defined in buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java.
Where is testMultipleRetainedDuplicateReleaseOriginal() defined?
testMultipleRetainedDuplicateReleaseOriginal() is defined in buffer/src/test/java/io/netty/buffer/AbstractByteBufTest.java at line 5677.
What calls testMultipleRetainedDuplicateReleaseOriginal()?
testMultipleRetainedDuplicateReleaseOriginal() is called by 4 function(s): testMultipleRetainedDuplicateReleaseOriginal1, testMultipleRetainedDuplicateReleaseOriginal2, testMultipleRetainedDuplicateReleaseOriginal3, testMultipleRetainedDuplicateReleaseOriginal4.

Analyze Your Own Codebase

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

Try Supermodel Free