Вероятно, это связано с HotSwap, который вы, вероятно, используете на своем сервере приложений. Hotswap даст вам возможность свободно вносить изменения в работающее приложение без перезагрузки сервера, если вы вносите изменения в существующие методы. Насколько я понимаю, кажется, что вы поддерживаете сервер, работающий в вашем приложении в течение длительных периодов времени. Обычно это делают разработчики, запускающие свои приложения с использованием таких вещей, как Hotswap или JRebel .
Проблема, с которой вы столкнулись, связана с тем, как Hotswap работает в вашей JVM. Hotswap фактически добавляет ресурсы в JVM, когда вы вносите изменения в свое приложение. Проблема, которая случается, состоит в том, что это в конечном счете вызовет сбой JVM из-за этих изменений. Пока вы используете Hotswap, вам придется регулярно перезапускать JVM по прошествии определенного периода времени.
С другой стороны, JRebel фактически даст вам возможность видеть изменения в вашей JVM без каких-либо изменений. необходимость перезапустить JVM. Причина этого заключается в том, что JRebel не перемещает ресурсы, а перераспределяет ваши загрузчики классов в JVM в файлы, измененные локально через выбранную вами IDE.
Я инженер команды JRebel в Perforce Software. Но проблема, с которой вы сталкиваетесь - это то, с чем я регулярно сталкиваюсь с разработчиками, работающими с Hotswap. Я надеюсь, что это полезно.