19:46:49.556 [Catalina-utility-12] [ - ] ERROR o.a.catalina.core.StandardWrapper - InstanceManager.destroy() pour le Servlet [AtmosphereServlet] a renvoyé une exception
java.lang.NullPointerException: null
at org.apache.catalina.core.DefaultInstanceManager.destroyInstance(DefaultInstanceManager.java:196)
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1343)
at org.apache.catalina.core.StandardWrapper.stopInternal(StandardWrapper.java:1627)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5465)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3811)
at org.apache.catalina.startup.HostConfig.reload(HostConfig.java:1443)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1415)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1654)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:315)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1162)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1365)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1369)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1347)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
猜测TOMCAT所属类DefaultInstanceManager 中以下方法
@Override
public void destroyInstance(Object instance) throws IllegalAccessException,
InvocationTargetException {
if (!ignoreAnnotations) {
preDestroy(instance, instance.getClass()); // NPE on this line
}
}
此处的instance为空导致异常,属于TOMCAT9.0.55版本潜在BUG。替换TOMCAT版本即可,该BUG已在如下系列中被修复
Fixed in: - 10.1.x for 10.1.0-M12 onwards - 10.0.x for 10.0.18 onwards - 9.0.x for 9.0.60 onwards - 8.5.x for 8.5.77 onwards