2015-10-27 28 views
1

让我试着解释一下......我们有一台运行着Jboss 5.1的服务器,其中有很多并发连接,有时我们需要重新启动并进行一些维护/发布。没有StackTrace的NullPointerException

问题是,有时我们启动服务器,它看起来像一些库在启动时没有加载,或者由于其他原因,我们继续得到NullPointerException没有任何stacktrace ..我们知道它的类被抛出,但通过检查代码,由于某种原因可以抛出nullpointers,甚至强制一些例外,所有这些都至少有堆栈跟踪。

我发现这里的许多计算器答案讲述了JVM做一些优化,但我们才刚刚开始了server.I不相信它任何优化,即使在第一exception是thrown.I还检查任何相关setStackTrace或代码如ex.toString() ..我们也没有。

所以我的问题实际上是,除了这个优化的东西之外,有什么原因可以在没有堆栈的情况下抛出exception

编辑: 我的问题与-XX:-OmitStackTraceInFastThrow无关,因为它甚至发生在第一个例外!

+3

如果你没有得到一个stackstrace,你怎么知道你正在运行一个'NPE'?也许它被抓到任何地方,或者手动投掷? – SomeJavaGuy

+0

我不认为JVM优化将导致NPE –

+0

@Kevin Esche,服务器日志打印异常名称,但不是堆栈跟踪:[CRITICAL] java.lang.NullPointerException,这是我在日志中得到的。 –

回答

-2

使用-XX:-OmitStackTraceInFastThrow JVM参数。