我已经在Tomcat7 + OpenJPA2.4.1 + ValidationAPI1.x + hibernate-validator-5.2.1 +
jboss-logging.jar上看到了相同的webapp内存泄漏
问题确实是jboss-
logging.jar创建了java.util.logging.Level实例的子类。如果J2EE容器提供了jar,则可能不是问题,但mywebapp /
WEB-INF / lib发行版中会发生这种情况。我创建了一个包的分支以禁用子类化。问题消失了,Webapp热部署工作正常。
GC根路径的堆转储指示问题的根源,JDKLevel子类将Web应用程序保留在内存中,并且JVM很快耗尽了PermGen内存。
this - value: org.apache.catalina.loader.WebappClassLoader #2 <- <classLoader> - class: org.jboss.logging.JDKLevel, value: org.apache.catalina.loader.WebappClassLoader #2 <- <class> - class: org.jboss.logging.JDKLevel, value: org.jboss.logging.JDKLevel class JDKLevel <- levelObject - class: java.util.logging.Level$KnownLevel, value: org.jboss.logging.JDKLevel #6 <- [1] - class: java.lang.Object[], value: java.util.logging.Level$KnownLevel #12 <- elementData - class: java.util.ArrayList, value: java.lang.Object[] #5160 (10 items) <- value - class: java.util.HashMap$Entry, value: java.util.ArrayList #3532 <- [0] - class: java.util.HashMap$Entry[], value: java.util.HashMap$Entry #21639 <- table - class: java.util.HashMap, value: java.util.HashMap$Entry[] #280 (16 items) <- intToLevels (sticky class) - class: java.util.logging.Level$KnownLevel, value: java.util.HashMap #375
编辑 为此错误创建的JBoss
Jira票证(https://issues.jboss.org/browse/JBLOGGING-118)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)