启动时 JavaMelody 抛出 NullPointerException Tomcat
JavaMelody throwing NullPointerException when firing up Tomcat
当我们在 Tomcat 8 中启动我们的 WAR 时,我们总是从如下所示的 JavaMelody 1.78.0 获得 NPE。
我在网络上找不到任何可能导致它的提示。
[INFO] [talledLocalContainer] java.lang.NullPointerException: null
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.Quartz2Adapter.getAllJobsOfScheduler(Quartz2Adapter.java:149) ~[javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.JobInformations.buildJobInformationsList(JobInformations.java:163) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.JavaInformations.<init>(JavaInformations.java:203) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.getAnonymousData(UpdateChecker.java:136) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.checkForUpdate(UpdateChecker.java:109) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.run(UpdateChecker.java:83) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at java.util.TimerThread.mainLoop(Timer.java:555) [?:1.8.0_191-1-redhat]
[INFO] [talledLocalContainer] at java.util.TimerThread.run(Timer.java:505) [?:1.8.0_191-1-redhat]
有谁知道如何摆脱 NPE?如果我需要提供更多详细信息,请告诉我。
在您的网络应用程序中,对于来自 org.quartz.impl.SchedulerRepository.getInstance().lookupAll() 的一个调度程序,方法 scheduler.getJobGroupNames() returns null.
石英调度程序不应发生这种情况。
尝试升级 Quartz 调度程序。
编辑:最后,Onehippo/Bloomreach 中的 JCRJobStore 打破了 Quartz 调度程序的 JobStore 接口契约:https://code.onehippo.org/cms-community/hippo-repository/blob/hippo-repository-13.3.0/engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java#L468
getJobGroupNames() 应该 return 一个空列表而不是 null。
当我们在 Tomcat 8 中启动我们的 WAR 时,我们总是从如下所示的 JavaMelody 1.78.0 获得 NPE。
我在网络上找不到任何可能导致它的提示。
[INFO] [talledLocalContainer] java.lang.NullPointerException: null
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.Quartz2Adapter.getAllJobsOfScheduler(Quartz2Adapter.java:149) ~[javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.JobInformations.buildJobInformationsList(JobInformations.java:163) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.JavaInformations.<init>(JavaInformations.java:203) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.getAnonymousData(UpdateChecker.java:136) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.checkForUpdate(UpdateChecker.java:109) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at net.bull.javamelody.internal.model.UpdateChecker.run(UpdateChecker.java:83) [javamelody-core-1.78.0.jar:1.78.0]
[INFO] [talledLocalContainer] at java.util.TimerThread.mainLoop(Timer.java:555) [?:1.8.0_191-1-redhat]
[INFO] [talledLocalContainer] at java.util.TimerThread.run(Timer.java:505) [?:1.8.0_191-1-redhat]
有谁知道如何摆脱 NPE?如果我需要提供更多详细信息,请告诉我。
在您的网络应用程序中,对于来自 org.quartz.impl.SchedulerRepository.getInstance().lookupAll() 的一个调度程序,方法 scheduler.getJobGroupNames() returns null.
石英调度程序不应发生这种情况。
尝试升级 Quartz 调度程序。
编辑:最后,Onehippo/Bloomreach 中的 JCRJobStore 打破了 Quartz 调度程序的 JobStore 接口契约:https://code.onehippo.org/cms-community/hippo-repository/blob/hippo-repository-13.3.0/engine/src/main/java/org/hippoecm/repository/quartz/JCRJobStore.java#L468
getJobGroupNames() 应该 return 一个空列表而不是 null。