Compiler.loadFile中的随机NullPointerException没有原因

时间:2018-02-28 10:50:54

标签: clojure nullpointerexception

我有一些代码运行了几个小时,然后自发地抛出一个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,它正在读取哪个文件,以及它失败的原因。

没有更多背景信息。我没有关于如何重现这一点的任何信息,除了再试一次并运行几个小时。

关于我如何诊断这个的任何想法?

1 个答案:

答案 0 :(得分:2)

这是我自己的代码中的NPE,但JVM决定省略堆栈跟踪。这是使用-XX:-OmitStackTraceInFastThrow JVM标志修复的。 This article provided the explanation