Let OkResponseHandler extend SimpleChannelInboundHandler

Motivation:

OkResponseHandler is the last handler in the pipeline of the HTTP CORS
example.  It is responsible for releasing all messages it handled.

Modification:

Extend SimpleChannelInboundHandler instead of
ChannelInboundHandlerAdapter

Result:

Fixed a leak
This commit is contained in:
Trustin Lee 2014-07-03 18:13:03 +09:00
parent fbf1bdbef1
commit 10623ae133

View File

@ -17,7 +17,7 @@ package io.netty.example.http.cors;
import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.http.DefaultFullHttpResponse; import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.FullHttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.handler.codec.http.HttpResponseStatus;
@ -27,10 +27,9 @@ import io.netty.handler.codec.http.HttpVersion;
* A simple handler which will simple return a successful Http * A simple handler which will simple return a successful Http
* response for any request. * response for any request.
*/ */
public class OkResponseHandler extends ChannelInboundHandlerAdapter { public class OkResponseHandler extends SimpleChannelInboundHandler<Object> {
@Override @Override
public void channelRead(ChannelHandlerContext ctx, Object msg) { public void channelRead0(ChannelHandlerContext ctx, Object msg) {
final FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK); final FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
response.headers().set("custom-response-header", "Some value"); response.headers().set("custom-response-header", "Some value");
ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE); ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);