It seems that stacktrace shows that Tomcat has already decided that the launch is running and that the NPE occurred while trying to shut down.
I expect the real problem (i.e. the one that caused Tomcat to give up trying to run) earlier in the log file.
Indeed, the Tomcat source code confirms this:
protected void releaseCaches() { this.keyCache.clear(); this.nioChannels.clear(); this.processorCache.clear(); if ( handler != null ) handler.recycle(); }
A NullPointerException here means that keyCache or nioChannels or processorCache is null . (I think) what can happen only if during the construction of the NioEndPoint object something went wrong, because these three fields are private final . Or at least they are in the version I was looking at.
source share