When Tomcat 8.5.5 got released recently, I was working on upgrading my existing app from Tomcat 8.5.4 to 8.5.5.
It seems that server startup goes through fine with message (INFO: Server startup in 16323 ms) printed at the end, and I am even able to access the application fine. My only concern is that I see following NullPointerException logged right after successful startup message. Please note that this exception is thrown even before I make an attempt to access the application from browser. Sep 19, 2016 2:30:26 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 16323 ms Sep 19, 2016 2:30:26 PM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor doRun SEVERE: java.lang.NullPointerException at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:182) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1387) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 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) Following is the connector configuration I am using. The same connector configuration when used with version 8.5.4 does not throw this error. <Connector port="${appserver.httpssoap.port}" protocol="org.apache.coyote.http11.Http11NioProtocol" proxyPort="${appserver.httpssoap.port}" proxyName="${ucl.external.hostname}" SSLEnabled="true" scheme="https" secure="true" compression="512" compressableMimeType="text/html,text/xml,text/css,text/plain,text/javascript,application/javascript" server="Manhattan Associates"> <SSLHostConfig certificateVerification="optional" truststoreFile="${catalina.base}/conf/mip-trustcerts.jks" truststorePassword="idpkeys" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA256,SSL_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,SSL_ECDH_RSA_WITH_AES_128_CBC_SHA256,SSL_DHE_RSA_WITH_AES_128_CBC_SHA256,SSL_DHE_DSS_WITH_AES_128_CBC_SHA256,SSL_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,SSL_ECDHE_RSA_WITH_AES_128_CBC_SHA,SSL_ECDH_ECDSA_WITH_AES_128_CBC_SHA,SSL_ECDH_RSA_WITH_AES_128_CBC_SHA,SSL_DHE_RSA_WITH_AES_128_CBC_SHA,SSL_DHE_DSS_WITH_AES_128_CBC_SHA" protocols="TLSv1.2" > <Certificate certificateKeystoreFile="${catalina.base}/conf/mip-keys.jks" certificateKeystorePassword="idpkeys" certificateKeyAlias="mip" type="RSA" /> </SSLHostConfig> </Connector> I see the following mentioned in release notes for 8.5.5, but not sure if what exactly has changed and that requires any changes to my connector configuration. * Correct regressions in TLS handshake and server certificate handling. Extra bit of information that may help: One change that I did try is to change "Http11NioProtocol" to "Http11Nio2Protocol" just to see how it goes and noticed that this Exception is not thrown for NIO2. I am suspecting that I have hit some bug with "Http11NioProtocol" and appreciate any kind of help/tips you can provide. Thanks, Avanish