Recently we have updated Apache Tomcat Server from 8.5.32 to 8.5.45. We have noticed, that Tomcat after startup spams tones of NullPointerException-s into catalina.out, but, Connector keeps working well, it is open and listening:
10-Oct-2019 10:48:31.210 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 13452 ms
10-Oct-2019 10:48:31.247 SEVERE [https-jsse-nio-8443-exec-2] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1415)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
10-Oct-2019 10:48:31.247 SEVERE [https-jsse-nio-8443-exec-3] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1415)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
10-Oct-2019 10:48:31.247 SEVERE [https-jsse-nio-8443-exec-3] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
java.lang.NullPointerException
at org.apache.coyote.http11.Http11InputBuffer.recycle(Http11InputBuffer.java:282)
at org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1714)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:993)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:961)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
10-Oct-2019 10:48:31.247 SEVERE [https-jsse-nio-8443-exec-4] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1415)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
We did check forums, etc... found a suggestion to change protocol to org.apache.coyote.http11.Http11NioProtocol, but it do not help.
The Connector is configured as follows:
<Connector port="8443" minProcessors="5" maxProcessors="75"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" server=" "
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
keystoreFile="<keystore>"
keystorePass="<password>"
truststoreFile="<truststore>"
truststorePass="<password>"
URIEncoding="UTF-8"
clientAuth="true" xpoweredBy="false"
connectionTimeout="60000" maxHttpHeaderSize="8192"
allowTrace="false"
sslEnabledProtocols="TLSv1.2"
SSLHonorCipherOrder="on"
useServerCipherSuitesOrder="true"
ciphers="SSL_DHE_DSS_WITH_AES_128_CBC_SHA..."/>
Tomcat and Java version information:
Server version: Apache Tomcat/8.5.45
Server built: Aug 14 2019 22:21:25 UTC
Server number: 8.5.45.0
OS Name: Linux
OS Version: 3.10.0-1062.1.1.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_221-b11
JVM Vendor: Oracle Corporation