Morning Bob-
session should never be null..this is a bug create an account here https://issues.apache.org/bugzilla/createaccount.cgi and file the bug report Many thanks for discovering this bug and helping us to improve the product Martin ______________________________________________ From: bob.dere...@thingworx.com To: users@tomcat.apache.org Subject: possible tomcat 7.0.47 jsr-356 bug: NULL pointer being thrown when DecodeException is caught in PojoMessageHandlerWholeBase<T>.onMessage Date: Sat, 19 Oct 2013 12:46:05 +0000 I am testing what happens when Encode/Decode Exceptions occur during JSR-356 communication and found that in the following code in onMessage, the ((WsSession)session) is NULL. As a result, the actual DecodeException (cause) is lost. // Can this message be decoded? Object payload; try { payload = decode(message); } catch (DecodeException de) { ((WsSession) session).getLocal().onError(session, de); return; } Tracing this further up the stack, I found that Util.getMessageHandlers is initializing it and passing NULL in for the session: if (decoderMatch.getTextDecoders().size() > 0) { MessageHandlerResult result = new MessageHandlerResult( new PojoMessageHandlerWholeText(listener, m, null, endpointConfig, decoderMatch.getTextDecoders(), new Object[1], 0, false, -1, -1), MessageHandlerResultType.TEXT); results.add(result); } Is this a bug, or do I need to do something else to get this internal session initialize - in addition to calling: addMessageHandler(this) in the onOpen of my Endpoint-derived class? Thanks, Bob DeRemer Senior Director, Architecture and Development http://www.thingworx.com Skype: bob.deremer.thingworx O: 610.594.6200 x812 M: 717.881.3986