Exception "DefaultHttpChunk cannot be cast to HttpRequest"
Neio
pinghuican at gmail.com
Wed Mar 18 11:51:45 EDT 2009
Sorry, my ignorance. For chunked encoding, there should be multiple
messageRecived()s.
I should read more Doc and papers.
Neio wrote:
>
> Hello Trustin,
>
> For the issue:
>>> While debugging a little bit, I noticed that after I sent-in this
>>> message, I
>>> got multiple times of messageReceived() calls. For one message, am I
>>> supposed to get multiple messageReceived() call?
>
> Do you think it is right for having multiple messageReceived() for one
> input message?
> Thanks
>
>
> On Tue, Mar 17, 2009 at 11:56 PM, Trustin Lee <tlee at redhat.com> wrote:
>> Please check the release announcement. The behavior of HTTP codec has
>> been channged.
>>
>> — Trustin Lee, http://gleamynode.net/
>>
>> On Wed, Mar 18, 2009 at 6:53 AM, Neio <pinghuican at gmail.com> wrote:
>>>
>>> Hello Trustin,
>>>
>>> For this BETA1, I have some problem.
>>>
>>> I sendin a NOT-chunked message with body about 20K to my netty server, I
>>> got
>>> the error "DefaultHttpChunk cannot be cast to
>>> org.jboss.netty.handler.codec.http.HttpRequest".
>>>
>>> While debugging a little bit, I noticed that after I sent-in this
>>> message, I
>>> got multiple times of messageReceived() calls. For one message, am I
>>> supposed to get multiple messageReceived() call?
>>>
>>> The first messageReceived() call, the cast in line 313 is fine, I saw
>>> the
>>> content-length of that message is 0. At the 2nd messageReceived() call,
>>> it
>>> breaks out.
>>>
>>> I didn't have this problem with ALPHA4. The only change is ALPHA4 to
>>> BETA,
>>> and no code change for my server implementation.
>>>
>>> ====================
>>> The line 313 is:
>>> 313: HttpRequest req = (HttpRequest)
>>> event.getMessage();
>>> Exception:
>>> java.lang.ClassCastException:
>>> org.jboss.netty.handler.codec.http.DefaultHttpChunk cannot be cast to
>>> org.jboss.netty.handler.codec.http.HttpRequest
>>> at
>>> acme.test.http.is.HttpHandler$1.doInContext(HttpHandler.java:313)
>>> at
>>> acme.test.runtime.message.impl.MessageContextImpl.doInUserContext(MessageContextImpl.java:92)
>>> at
>>> acme.test.runtime.message.impl.MessageContextImpl.doInContext(MessageContextImpl.java:159)
>>> at
>>> acme.test.http.is.HttpHandler.messageReceived(HttpHandler.java:308)
>>> at
>>> org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:105)
>>> at
>>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
>>> at
>>> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:802)
>>> at
>>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:385)
>>> at
>>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.fireMessageReceived(ReplayingDecoder.java:430)
>>> at
>>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:410)
>>> at
>>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:354)
>>> at
>>> org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:105)
>>> at
>>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.handleUpstream(ReplayingDecoder.java:317)
>>> at
>>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
>>> at
>>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562)
>>> at
>>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:342)
>>> at
>>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:329)
>>> at
>>> org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:296)
>>> at
>>> org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:251)
>>> at
>>> org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:173)
>>> at
>>> org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:72)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>>> Source)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>>> Source)
>>> at java.lang.Thread.run(Unknown Source)
>>>
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/Exception-%22DefaultHttpChunk-cannot-be-cast-to-HttpRequest%22-tp2494094p2494094.html
>>> Sent from the Netty User Group mailing list archive at Nabble.com.
>>>
>>> _______________________________________________
>>> netty-users mailing list
>>> netty-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>
>>
>> _______________________________________________
>> netty-users mailing list
>> netty-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/netty-users
>>
>
> _______________________________________________
> netty-users mailing list
> netty-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-users
>
>
--
View this message in context: http://n2.nabble.com/Exception-%22DefaultHttpChunk-cannot-be-cast-to-HttpRequest%22-tp2494094p2497895.html
Sent from the Netty User Group mailing list archive at Nabble.com.
More information about the netty-users
mailing list