testMultipleRetainedDuplicateReleaseOriginal() — netty Function Reference
Architecture documentation for the testMultipleRetainedDuplicateReleaseOriginal() function in AbstractByteBufTest.java from the netty codebase.
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
Called By
Source
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