Я знаю, что эта проблема существует уже как минимум 3 года ( Issue 92 ), но я все еще не доволен текущим состоянием. Я также знаю, что это не повлияет на Tomcat, если вы перезапустите его после повторного развертывания (как предлагается в Guice + Tomcat потенциальная утечка памяти ).
Моя проблема в том, что у меня возникают ошибки OutOfMemoryError: PermGen
после некоторых повторных развертываний. Обратите внимание, что я не использую google-коллекции явно, я использую только Guice 3.0 (через maven). После анализа дампа кучи я все еще вижу, что поток com.google.inject.internal.Finalizer
все еще активен, сохраняет ссылку на Tomcat WebappClassLoader, тем самым препятствуя сборке мусора.
Что, если мне действительно требуется повторное развертывание без перезапуска, и я использую Guice? Какие у меня есть варианты?