Recurring Exception without a stack trace - how to reset?
JavaExceptionJava Problem Overview
In my application log (using log4j), I see a NullPointerException, but without the stack trace. I know that as an optimization, when an exception occurs many times - the jvm stops producing the stack trace. The problem is the exception occurred some time ago, and all my logs are filled with the exception without the stack trace. Is there a way to "reset" this mechanism, so the next thrown exception will be printed with the full stack trace? I don't want to restart the application, as it is hard to reproduce this bug, and restarting may cause to "go away"...
Thanks!
Java Solutions
Solution 1 - Java
Try running with the following JVM property:
-XX:-OmitStackTraceInFastThrow
From the Release Notes:
> The compiler in the server VM now
> provides correct stack backtraces for
> all "cold" built-in exceptions. For
> performance purposes, when such an
> exception is thrown a few times, the
> method may be recompiled. After
> recompilation, the compiler may choose
> a faster tactic using preallocated
> exceptions that do not provide a stack
> trace. To disable completely the use
> of preallocated exceptions, use this
> new flag:
> -XX:-OmitStackTraceInFastThrow
.