NullPointerException in the HTTP Example

Richard Jackson richard.jackson at gmail.com
Sat Mar 14 00:39:41 EDT 2009


Just thought I would let you know that the HTTP Example will throw a
NullPointerException in the  HttpRequestHandler the line shown in the
stack trace below is this one:

Map<String, Cookie> cookies =
cookieDecoder.decode(request.getHeader(HttpHeaders.Names.COOKIE));

This is the stack trace for it. It should be noted that the line
numbers for HttpRequestHandler will not line up with what is in the
example but it is the same code I just changed the package name. I'm
using the example to test some of my other code. (server
startup/shutdown and configuration)

[Thread-4] DEBUG org.jhserv.jacks.httpservice - HttpManagedService
registered and started...
[New I/O server worker #1-1] WARN org.jboss.netty -
[org.jboss.netty.channel.SimpleChannelHandler] EXCEPTION, please
implement org.jhserv.jacks.httpservice.server.HttpRequestHandler.exceptionCaught()
for proper handling.
java.lang.NullPointerException
	at org.jboss.netty.handler.codec.http.CookieDecoder.decode(CookieDecoder.java:58)
	at org.jhserv.jacks.httpservice.server.HttpRequestHandler.writeResponse(HttpRequestHandler.java:138)
	at org.jhserv.jacks.httpservice.server.HttpRequestHandler.messageReceived(HttpRequestHandler.java:104)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:385)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:401)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:345)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.handleUpstream(ReplayingDecoder.java:308)
	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:302)
	at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:254)
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:171)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

Removing/commenting out this section of the code gets rid of the NPE

        CookieDecoder cookieDecoder = new CookieDecoder();
        Map<String, Cookie> cookies =
cookieDecoder.decode(request.getHeader(HttpHeaders.Names.COOKIE));
        if (!cookies.isEmpty()) {
            // Reset the cookies if necessary.
            CookieEncoder cookieEncoder = new CookieEncoder();
            for (Cookie cookie : cookies.values()) {
                cookieEncoder.addCookie(cookie);
            }
            response.addHeader(HttpHeaders.Names.SET_COOKIE,
cookieEncoder.encode());
        }

For what I'm working on I don't need the cookie stuff so no big deal.
But thought I should let you know.

Richard Jackson



More information about the netty-users mailing list