diff --git a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpResponseStreamIdHandler.java b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpResponseStreamIdHandler.java index 0be6289861..20c53f54d8 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpResponseStreamIdHandler.java +++ b/codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyHttpResponseStreamIdHandler.java @@ -30,16 +30,25 @@ import io.netty.handler.codec.http.HttpResponse; * for HTTP. */ public class SpdyHttpResponseStreamIdHandler extends - MessageToMessageCodec { + MessageToMessageCodec { private static final Integer NO_ID = -1; private final Queue ids = new LinkedList(); public SpdyHttpResponseStreamIdHandler() { - super(new Class[] { HttpRequest.class, SpdyRstStreamFrame.class }, new Class[] { HttpResponse.class }); + super(new Class[] { HttpMessage.class, SpdyRstStreamFrame.class }, new Class[] { HttpMessage.class }); } @Override - public Object encode(ChannelHandlerContext ctx, Object msg) throws Exception { + public HttpMessage encode(ChannelHandlerContext ctx, HttpMessage msg) throws Exception { + Integer id = ids.poll(); + if (id != null && id != NO_ID && !msg.containsHeader(SpdyHttpHeaders.Names.STREAM_ID)) { + SpdyHttpHeaders.setStreamId(msg, id); + } + return msg; + } + + @Override + public Object decode(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof HttpMessage) { boolean contains = ((HttpMessage) msg).containsHeader(SpdyHttpHeaders.Names.STREAM_ID); if (!contains) { @@ -54,13 +63,4 @@ public class SpdyHttpResponseStreamIdHandler extends return msg; } - @Override - public HttpRequest decode(ChannelHandlerContext ctx, HttpRequest msg) throws Exception { - Integer id = ids.poll(); - if (id != null && id != NO_ID && !msg.containsHeader(SpdyHttpHeaders.Names.STREAM_ID)) { - SpdyHttpHeaders.setStreamId(msg, id); - } - return msg; - } - }