Значение этого исключения объясняется здесь:
https://bz.apache.org/bugzilla/show_bug.cgi?id=27829
Сводка: Java умирает, вызывается завершающий хук Tomcat, генерируется исключение.
Таким образом, если брандмауэр предотвращает поступление сообщения о завершении работы Tomcat, Java в конечном итоге умрет первым (например, во время перезагрузки / выключения системы), и появится исключение.
Есть и другие возможности.
В моем случае моя проблема была связана с неправильной установкой initscript (Linux). Это подразумевало, что Java была убита ОС во время выключения / перезагрузки, а не в результате выполнения сценария. Решение так просто, как это:
chkconfig --del initscript
chkconfig --add initscript
До исправления у меня было следующее в rc.d:
find /etc/rc.d | grep initscript | sort
/etc/rc.d/init.d/initscript
/etc/rc.d/rc2.d/S85initscript
/etc/rc.d/rc3.d/S85initscript
/etc/rc.d/rc4.d/S85initscript
/etc/rc.d/rc5.d/S85initscript
После исправления:
find /etc/rc.d | grep initscript | sort
/etc/rc.d/init.d/initscript
/etc/rc.d/rc0.d/K15initscript
/etc/rc.d/rc1.d/K15initscript
/etc/rc.d/rc2.d/K15initscript
/etc/rc.d/rc3.d/K15initscript
/etc/rc.d/rc4.d/K15initscript
/etc/rc.d/rc5.d/S85initscript
/etc/rc.d/rc6.d/K15initscript
Вывод: если вы получаете это исключение, убедитесь, что Tomcat корректно завершает работу, а не в результате прекращения работы Java. Проверьте ваш брандмауэр, сценарии выключения и т. Д.