Вы можете прочитать о сложных утечках памяти в Tomcat (и это предупреждение в частности) по адресу http://wiki.apache.org/tomcat/MemoryLeakProtection - в частности, для предупреждения, которое вы видите:
Если веб-приложениесоздает поток, по умолчанию его контекстный загрузчик классов установлен на один из родительского потока (поток, который создал новый поток).В веб-приложении этот родительский поток является одним из рабочих потоков tomcat, для которого контекстный загрузчик классов устанавливается на загрузчик классов веб-приложений, когда он выполняет код веб-приложения.
Кроме того, порожденный поток может выполнять (или блокировать) некоторый кодэто включает в себя классы, загруженные веб-приложением, что предотвращает сбор загрузчика классов веб-приложения.
Таким образом, если порожденный поток не завершается должным образом при остановке приложения, загрузчик классов веб-приложения утечет из-за удержания сильной ссылкипорожденным потоком.
Воздействие этого (по моему опыту) ограничено, когда вы запускаете свое веб-приложение один раз, а затем просто разрываете его.Однако в некоторых случаях, например в сценарии непрерывной интеграции (когда ваш сервер CI многократно развертывает сборки вашего приложения в контейнере Tomcat, который не перезапускается), вы можете быстро исчерпать память в JVM.В конечном итоге это проявится как OutOfMemoryException
в вашем регионе PermGen (при условии, что вы используете JVM Sun / Oracle).Подробнее о PermGen см. http://blogs.oracle.com/fkieviet/entry/classloader_leaks_the_dreaded_java