Skip to content

Commit 2c7ba46

Browse files
committed
make sure ByteBuf is released
1 parent 5d4cd6d commit 2c7ba46

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

src/test/java/com/github/dockerjava/netty/handler/HttpResponseStreamHandlerTest.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.concurrent.Executors;
1717
import java.util.concurrent.Future;
1818

19+
import io.netty.util.ReferenceCountUtil;
1920
import org.apache.commons.io.IOUtils;
2021
import org.mockito.Mockito;
2122
import org.testng.annotations.Test;
@@ -32,12 +33,15 @@ public void testNoBytesSkipped() throws Exception {
3233
HttpResponseStreamHandler streamHandler = new HttpResponseStreamHandler(callback);
3334
ChannelHandlerContext ctx = Mockito.mock(ChannelHandlerContext.class);
3435
ByteBuf buffer = generateByteBuf();
35-
streamHandler.channelRead0(ctx, buffer);
36+
ByteBuf readBuffer = buffer.copy();
37+
assertEquals(buffer.refCnt(), 1);
38+
streamHandler.channelRead(ctx, buffer);
3639
streamHandler.channelInactive(ctx);
37-
40+
assertEquals(buffer.refCnt(), 0);
3841
try (InputStream inputStream = callback.getInputStream()) {
39-
assertTrue(IOUtils.contentEquals(inputStream, new ByteBufInputStream(buffer)));
42+
assertTrue(IOUtils.contentEquals(inputStream, new ByteBufInputStream(readBuffer)));
4043
}
44+
ReferenceCountUtil.release(readBuffer);
4145
}
4246

4347
@Test
@@ -46,16 +50,19 @@ public void testReadByteByByte() throws Exception {
4650
HttpResponseStreamHandler streamHandler = new HttpResponseStreamHandler(callback);
4751
ChannelHandlerContext ctx = Mockito.mock(ChannelHandlerContext.class);
4852
ByteBuf buffer = generateByteBuf();
49-
streamHandler.channelRead0(ctx, buffer);
53+
ByteBuf readBuffer = buffer.copy();
54+
assertEquals(buffer.refCnt(), 1);
55+
streamHandler.channelRead(ctx, buffer);
5056
streamHandler.channelInactive(ctx);
51-
57+
assertEquals(buffer.refCnt(), 0);
5258
try (InputStream inputStream = callback.getInputStream()) {
53-
for (int i = 0; i < buffer.readableBytes(); i++) {
59+
for (int i = 0; i < readBuffer.readableBytes(); i++) {
5460
int b = inputStream.read();
55-
assertEquals(b, buffer.getByte(i));
61+
assertEquals(b, readBuffer.getByte(i));
5662
}
5763
assertTrue(inputStream.read() == -1);
5864
}
65+
ReferenceCountUtil.release(readBuffer);
5966
}
6067

6168
@Test

0 commit comments

Comments
 (0)