Повторяющееся исключение без трассировки стека - как reset?

В моем журнале приложений (с использованием log4j) я вижу исключение NullPointerException, но без трассировки стека. Я знаю, что в качестве оптимизации, когда исключение происходит много раз - jvm перестает создавать трассировку стека. Проблема заключается в том, что это произошло некоторое время назад, и все мои журналы заполняются исключением без трассировки стека. Есть ли способ "reset" этого механизма, поэтому следующее брошенное исключение будет напечатано с полной трассировкой стека? Я не хочу перезапускать приложение, так как трудно воспроизвести эту ошибку, и перезапуск может вызвать "уйти"...

Спасибо!

Ответ 1

Попробуйте запустить со следующим свойством JVM:

-XX:-OmitStackTraceInFastThrow

Из Примечания к выпуску:

Теперь компилятор в VM сервера обеспечивает правильные стеки все "холодные" встроенные исключения. Для когда такие исключение бросается несколько раз, метод может быть перекомпилирован. После перекомпиляции, компилятор может выбрать более быстрая тактика с использованием предопределенных исключения, которые не предоставляют стек след. Чтобы полностью отключить использование предопределенных исключений, используйте это новый флаг: -XX:-OmitStackTraceInFastThrow.