Это не нормальное поведение для готовой Java. Поэтому мы должны сделать вывод, что эти стековые трассы не генерируются вашим кодом, вызывающим Throwable::printStacktrace()
После небольшого копания, одной из возможных причин является то, что вы используете Logback для ведения журнала и, в частности, используете %xThrowable
, а не %throwable
в шаблоне PatternLayout
. Это включает в себя дополнительную информацию об упаковке в трассировке стека с синтаксисом, который вы видите. Вам следует обратиться к документации Logback для получения более подробной информации, поскольку в языке шаблонов возможны различные варианты.
В документации также сказано:
Обратите внимание, что с учетом его потенциальной стоимости вычисление данных упаковки по умолчанию отключено. Когда включено вычисление данных упаковки, PatternLayout
автоматически примет суффикс %xThrowable
вместо суффикса %throwable
в конце строки шаблона .
Таким образом, суффиксы могут быть побочным эффектом этого:
<configuration packagingData="true">
...
</configuration>
в конфигурации Logback.
ОБНОВЛЕНИЕ : Вы сказали, что используете Log4j2 вместо Logback.
Log4j2 имеет эквивалентную схему ведения журнала на основе шаблонов с поддержкой %xThrowable
; см https://logging.apache.org/log4j/2.x/manual/layouts.html
Обратите внимание, что эта строка появляется в некоторых трассировках стека, но не во всем этом.
Это можно объяснить, если ваше приложение или некоторые сторонние библиотеки, которые вы используете, в некоторых случаях вызывают Throwable::printStacktrace
или аналогичные напрямую и генерируют трассировки стека с помощью регистратора в других.