Fwd: NullPointerException in websocket endpoint onerror
We're seeing the following issue with a websocket endpoint on tomcat 8.0.15 when OnError tries to close the websocket session. What could be the problem? java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onError(PojoEndpointBase.java:134) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.onError(WsHttpUpgradeHandler.java:167) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.access$300(WsHttpUpgradeHandler.java:48) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onError(WsHttpUpgradeHandler.java:228) at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onError(AbstractServletInputStream.java:209) at org.apache.coyote.http11.upgrade.Nio2ServletInputStream$1.failed(Nio2ServletInputStream.java:76) at org.apache.coyote.http11.upgrade.Nio2ServletInputStream$1.failed(Nio2ServletInputStream.java:49) at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:128) at sun.nio.ch.Invoker$2.run(Invoker.java:218) at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:96) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:81) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:444) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:335) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:264) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:536) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:464) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:441) at com.testEndpoint.onWebSocketError(WebsocketEndpoint.java:52)
Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18
I've recently upgraded from 8.0.15 to 8.0.18 and I have a new problem which I didn't have on 8.0.15. The configuration of tomcat and my application remained exactly the same when upgrading. When running tomcat with -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector (defined in setenv.sh) to enable log4j2's async logging, I now get a ClassNotFoundException (see below). What could be the problem? Here's catalina.out with FINE level logging for org.apache.jasper.servlet: 04-Feb-2015 16:28:39.721 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.18 04-Feb-2015 16:28:39.721 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jan 23 2015 11:56:07 UTC 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.18.0 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 04-Feb-2015 16:28:39.722 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.13.0-45-generic 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/jdk1.7.0_71/jre 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.7.0_71-b14 04-Feb-2015 16:28:39.723 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 04-Feb-2015 16:28:39.724 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/tomcat/apache-tomcat-8.0.18 04-Feb-2015 16:28:39.724 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /home/tomcat/apache-tomcat-8.0.18 04-Feb-2015 16:28:39.725 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/tomcat/current_tomcat/conf/logging.properties 04-Feb-2015 16:28:39.725 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 04-Feb-2015 16:28:39.729 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/home/tomcat/current_tomcat/endorsed 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/tomcat/current_tomcat 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/home/tomcat/current_tomcat 04-Feb-2015 16:28:39.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/tomcat/current_tomcat/temp 04-Feb-2015 16:28:39.731 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments wa s not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 04-Feb-2015 16:28:40.216 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio2-8080"] 04-Feb-2015 16:28:40.367 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2840 ms 04-Feb-2015 16:28:40.512 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 04-Feb-2015 16:28:40.519 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.18 04-Feb-2015 16:28:42.315 FINE [localhost-startStop-1] org.apache.jasper.servlet.JasperInitializer.onStartup Initializing Jasper for context [null] 04-Feb-2015 16:28:42.514 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init Scratch dir for the JSP engine is: /home/tomcat/apache-tomcat-8.0.18/work/Catalina/localhost/plstatic 04-Feb-2015 16:28:42.522 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init IMPORTANT: Do not modify the generated servlets 04-Feb-2015 16:28:42.635 FINE [localhost-startStop-1] org.apache.jasper.servlet.JasperInitializer.onStartup Initializing Jasper for context [null] 04-Feb-2015 16:28:42.663 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init Scratch dir for the JSP engine is: /home/tomcat/apache-tomcat-8.0.18/work/Catalina/localhost/release 04-Feb-2015 16:28:42.667 FINE [localhost-startStop-1] org.apache.jasper.servlet.JspServlet.init IM
RE: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18
setenv.sh does have an extra "\r" but the same file worked for me on 8.0.15 - I only copied it from the older tomcat. I removed it and now it works on 8.0.18 too. thank you. On Wed, 04 Feb 2015 08:52:24 -0800 Caldarale<chuck.caldar...@unisys.com> wrote ---- > From: Evil Bit [mailto:evil...@zoho.com] > Subject: Issues with log4j.core.async.AsyncLoggerContextSelector when upgrading from 8.0.15 to 8.0.18 > When running tomcat with > -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector > (defined in setenv.sh) to enable log4j2's async logging, I now get a ClassNotFoundException > (see below). What could be the problem? > ERROR StatusLogger Unable to create context org.apache.logging.log4j.core.async.AsyncLoggerContextSelector^M Note the ^M at the end of the class name; this makes me suspicious that your setenv.sh file has been edited on Windows and then used on Linux/UNIX/OSX/? (been there, done that). - Chuck THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org