Fix a buffer leak in StreamBufferingEncoderTest
Related: #3871 Motivation: StreamBufferingEncoderTest does not release when writeGoAway() is called. Modifications: Release the buffer in mock object arguments Result: No buffer leak
This commit is contained in:
parent
46183ed918
commit
8f29925e4b
@ -15,22 +15,6 @@
|
|||||||
|
|
||||||
package io.netty.handler.codec.http2;
|
package io.netty.handler.codec.http2;
|
||||||
|
|
||||||
import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_MAX_FRAME_SIZE;
|
|
||||||
import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_PRIORITY_WEIGHT;
|
|
||||||
import static io.netty.handler.codec.http2.Http2CodecUtil.SMALLEST_MAX_CONCURRENT_STREAMS;
|
|
||||||
import static io.netty.handler.codec.http2.Http2Error.CANCEL;
|
|
||||||
import static io.netty.handler.codec.http2.Http2Stream.State.HALF_CLOSED_LOCAL;
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.mockito.Matchers.any;
|
|
||||||
import static org.mockito.Matchers.anyInt;
|
|
||||||
import static org.mockito.Matchers.anyLong;
|
|
||||||
import static org.mockito.Matchers.eq;
|
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.times;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.Unpooled;
|
import io.netty.buffer.Unpooled;
|
||||||
import io.netty.buffer.UnpooledByteBufAllocator;
|
import io.netty.buffer.UnpooledByteBufAllocator;
|
||||||
@ -49,6 +33,22 @@ import org.mockito.invocation.InvocationOnMock;
|
|||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
import org.mockito.verification.VerificationMode;
|
import org.mockito.verification.VerificationMode;
|
||||||
|
|
||||||
|
import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_MAX_FRAME_SIZE;
|
||||||
|
import static io.netty.handler.codec.http2.Http2CodecUtil.DEFAULT_PRIORITY_WEIGHT;
|
||||||
|
import static io.netty.handler.codec.http2.Http2CodecUtil.SMALLEST_MAX_CONCURRENT_STREAMS;
|
||||||
|
import static io.netty.handler.codec.http2.Http2Error.CANCEL;
|
||||||
|
import static io.netty.handler.codec.http2.Http2Stream.State.HALF_CLOSED_LOCAL;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Matchers.anyInt;
|
||||||
|
import static org.mockito.Matchers.anyLong;
|
||||||
|
import static org.mockito.Matchers.eq;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link StreamBufferingEncoder}.
|
* Tests for {@link StreamBufferingEncoder}.
|
||||||
*/
|
*/
|
||||||
@ -417,6 +417,12 @@ public class StreamBufferingEncoderTest {
|
|||||||
return new Answer<ChannelFuture>() {
|
return new Answer<ChannelFuture>() {
|
||||||
@Override
|
@Override
|
||||||
public ChannelFuture answer(InvocationOnMock invocation) throws Throwable {
|
public ChannelFuture answer(InvocationOnMock invocation) throws Throwable {
|
||||||
|
for (Object a: invocation.getArguments()) {
|
||||||
|
if (a instanceof ByteBuf) {
|
||||||
|
((ByteBuf) a).release();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ChannelPromise future =
|
ChannelPromise future =
|
||||||
new DefaultChannelPromise(channel, ImmediateEventExecutor.INSTANCE);
|
new DefaultChannelPromise(channel, ImmediateEventExecutor.INSTANCE);
|
||||||
future.setSuccess();
|
future.setSuccess();
|
||||||
|
Loading…
Reference in New Issue
Block a user