The Tomcat 8 AccessLogValve is throwing NullPointerExceptions
Issue
- The Tomcat 8 AccessLogValve hits a NullPointerException when an
OPTIONS *
request is received if the access log pattern is configured to log a cookie:
java.lang.NullPointerException
at org.apache.catalina.connector.Request.parseCookies(Request.java:2943)
at org.apache.catalina.connector.Request.convertCookies(Request.java:2958)
at org.apache.catalina.connector.Request.getCookies(Request.java:1987)
at org.apache.catalina.valves.AbstractAccessLogValve$CookieElement.addElement(AbstractAccessLogValve.java:1335)
at org.apache.catalina.valves.AbstractAccessLogValve.log(AbstractAccessLogValve.java:639)
at org.apache.catalina.core.AccessLogAdapter.log(AccessLogAdapter.java:51)
at org.apache.catalina.core.StandardEngine.logAccess(StandardEngine.java:342)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:795)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:511)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:285)
at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2368)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Environment
- JBoss Enterprise Web Server (JWS) 3.x
- Tomcat 8.0.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.