Skip to content

Commit e69d1ba

Browse files
Fix #731 : IllegalReferenceCountException: refCnt: 0
1 parent 6f1a4dc commit e69d1ba

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

jooby-netty/src/main/java/org/jooby/internal/netty/NettyRequest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.google.common.collect.Multimap;
4444

4545
import io.netty.buffer.ByteBuf;
46+
import io.netty.buffer.ByteBufHolder;
4647
import io.netty.buffer.ByteBufInputStream;
4748
import io.netty.channel.Channel;
4849
import io.netty.channel.ChannelHandlerContext;
@@ -63,6 +64,7 @@
6364
import io.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory;
6465
import io.netty.handler.codec.http2.HttpConversionUtil;
6566
import io.netty.util.AttributeKey;
67+
import io.netty.util.ReferenceCounted;
6668

6769
public class NettyRequest implements NativeRequest {
6870

@@ -242,7 +244,15 @@ public void startAsync(final Executor executor, final Runnable runnable) {
242244
channel.attr(NEED_FLUSH).set(false);
243245
channel.attr(ASYNC).set(true);
244246

245-
executor.execute(runnable);
247+
ReferenceCounted referenceCounted = ((ByteBufHolder) req).content();
248+
referenceCounted.retain();
249+
executor.execute(() -> {
250+
try {
251+
runnable.run();
252+
} finally {
253+
referenceCounted.release();
254+
}
255+
});
246256
}
247257

248258
private org.jooby.Cookie cookie(final Cookie c) {

0 commit comments

Comments
 (0)