我有一些代码运行了几个小时,然后自发地抛出一个NPE:
Exception in thread "main" java.lang.NullPointerException, compiling:(/tmp/form-init1523641998694521475.clj:1:73)
at clojure.lang.Compiler.load(Compiler.java:7391)
at clojure.lang.Compiler.loadFile(Compiler.java:7317)
at clojure.main$load_script.invokeStatic(main.clj:275)
at clojure.main$init_opt.invokeStatic(main.clj:277)
at clojure.main$init_opt.invoke(main.clj:277)
at clojure.main$initialize.invokeStatic(main.clj:308)
at clojure.main$null_opt.invokeStatic(main.clj:342)
at clojure.main$null_opt.invoke(main.clj:339)
at clojure.main$main.invokeStatic(main.clj:421)
at clojure.main$main.doInvoke(main.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:383)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.Var.applyTo(Var.java:700)
at clojure.main.main(main.java:37)
Caused by: java.lang.NullPointerException
当这件事发生时,程序已经完成了它通常做的所有事情,所以我不知道为什么它会自发地调用load-script
,它正在读取哪个文件,以及它失败的原因。
没有更多背景信息。我没有关于如何重现这一点的任何信息,除了再试一次并运行几个小时。
关于我如何诊断这个的任何想法?
答案 0 :(得分:2)
这是我自己的代码中的NPE,但JVM决定省略堆栈跟踪。这是使用-XX:-OmitStackTraceInFastThrow
JVM标志修复的。 This article provided the explanation