Утечки памяти в MyFaces - PullRequest
       19

Утечки памяти в MyFaces

3 голосов
/ 02 декабря 2010

РЕДАКТИРОВАТЬ: решение, которое вы можете найти в комментариях ниже, предполагает изменение реализации JSF с MyFaces на Mojarra Sun.

Привет,

У меня действительно раздражающая проблема с MyFaces 2.0.0 (точнее, я проверил это также на 2.0.1 и 2.0.2, и проблема остается).

Я пишу приложение под MyFaces.Вкратце говоря, в моем приложении я использую фреймворки: Spring, Hibernate, JSF (реализация MyFaces). Моим контейнером приложений является Tomcat (версия 6.0.29). Я использую maven для сборки и развертывания (версия 3.0).

Проблема заключается в том, чтокогда я пытаюсь повторно развернуть приложение через maven (mvn tomcat: redeploy), он сначала пытается удалить приложение и развернуть его снова.Но развертывание никогда не получится.У меня есть информация:

SEVERE: The web application [/adam] created a ThreadLocal with key of type 
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@4b0a4d7c]) and a value of type
[org.apache.myfaces.config.RuntimeConfig] (value  org.apache.myfaces.config.RuntimeConfig@11652e61])
but failed to remove it when the web application was stopped.
This is very likely to create a memory leak.

Из-за этой ошибки tomcat не может отменить развертывание приложения:

INFO: Undeploying context [/adam]
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam\WEB-INF\lib] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam\WEB-INF] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar delete
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:49 org.apache.catalina.startup.HostConfig deployDirectory

Все мои библиотеки в WEB-INF \ lib и мой файл, в котором я храню логииз Log4J не может быть удалено.

Есть также подключенная утечка памяти из библиотеки, которая обеспечивает ELFactoryImpl:

SEVERE: The web application [/adam] created a ThreadLocal with key of type [null]
(value [org.apache.myfaces.el.convert.VariableResolverToELResolver$1@693985fc])
and a value of type [java.util.HashSet] (value [[]]) but failed to remove it
when the web application was stopped.
This is very likely to create a memory leak.

Как избавиться от этой утечки памяти?

У меня естьискал ответ очень долго не могу найти решение.Я нашел эту проблему на jira моего лица: https://issues.apache.org/jira/browse/MYFACES-2942 Но я не знаю, что об этом думать.Стоит ли ждать версию 2.0.3?

Я думаю, что утечка памяти из EL связана с первой.

Пожалуйста, помогите мне!;) Я могу предоставить более подробную информацию, если это необходимо.

1 Ответ

2 голосов
/ 02 декабря 2010

Проблема уже сообщена и будет исправлена.На данный момент у вас есть 3 варианта:

  1. Оставьте сообщение с предупреждением и подождите, пока ребята из MyFaces не выпустят исправление.

  2. Примените предложенный патчв вашей текущей реализации MyFaces.

  3. Замените MyFaces на Mojarra (эталонная реализация), которая не раскрывает эту проблему.

...