Recurring Exception without a stack trace - how to reset?

JavaException

Java 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionduduamarView Question on Stackoverflow
Solution 1 - JavadogbaneView Answer on Stackoverflow