HiveBrain v1.2.0
Get Started
← Back to all entries
debugjavaCritical

NullPointerException in Java with no StackTrace

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
withstacktracenullpointerexceptionjava

Problem

I've had instances of our Java code catch a NullPointerException, but when I try to log the StackTrace (which basically ends up calling Throwable.printStackTrace() ), all I get is:

java.lang.NullPointerException


Has anyone else come across this? I tried googling for "java null pointer empty stack trace" but didn't come across anything like this.

Solution

You are probably using the HotSpot JVM (originally by Sun Microsystems, later bought by Oracle, part of the OpenJDK), which performs a lot of optimization. To get the stack traces back, you need to pass the following option to the JVM:

-XX:-OmitStackTraceInFastThrow


The optimization is that when an exception (typically a NullPointerException) occurs for the first time, the full stack trace is printed and the JVM remembers the stack trace (or maybe just the location of the code). When that exception occurs often enough, the stack trace is not printed anymore, both to achieve better performance and not to flood the log with identical stack traces.

To see how this is implemented in the HotSpot JVM, grab a copy of it and search for the global variable OmitStackTraceInFastThrow. Last time I looked at the code (in 2019), it was in the file graphKit.cpp.

Code Snippets

-XX:-OmitStackTraceInFastThrow

Context

Stack Overflow Q#2411487, score: 613

Revisions (0)

No revisions yet.