[ https://issues.apache.org/jira/browse/XMLBEANS-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13836291#comment-13836291 ]
zjerich commented on XMLBEANS-502: ---------------------------------- Tomcat 7 + JDK 6 + POI 3.9 (xmlbeans2.3 ~ 2.6) created a ThreadLocal with key of type [org.apache.xmlbeans... > Usage of XmlBeans triggers "clearThreadLocalMap" warnings in Tomcat with XSSF > ----------------------------------------------------------------------------- > > Key: XMLBEANS-502 > URL: https://issues.apache.org/jira/browse/XMLBEANS-502 > Project: XMLBeans > Issue Type: Bug > Affects Versions: Version 2.3 > Environment: Apache Tomcat 6.0.35, Apache POI 3.9-20121203, Java SE > 6/7, any operating system > Reporter: Christopher Brown > Attachments: leak1.png, leak2.png > > > Hello, > After creating this issue > https://issues.apache.org/bugzilla/show_bug.cgi?id=55149 I was advised to > create the issue here. This appears to be similar to > https://issues.apache.org/jira/browse/XMLBEANS-103 but as it's marked as > FIXED and as I'm using a more recent version (and as it's not completely > identical), I'm creating a new issue. > It would appear that XMLBeans is creating (and not clearing) ThreadLocal > variables. This causes Tomcat to complain about classloader leaks (see > messages below). Based on information in XMLBEANS-103, I have tried to coax > the JVM to clear the ThreadLocal (by performing garbage collection on the > JVM), but that doesn't clear the ThreadLocals, even if allowing time to > elapse AFTER using POI to process an XSSF document and BEFORE stopping Tomcat. > To workaround this, we're having to impose long downtime when a restart is > required. Perhaps a utility class within XMLBeans could be made available > with the POI distribution such as: > XMLBeansCache.clearThreadLocals() > ...that I could call from a "finally" block after processing the XSSF > document? > Here's the information from Tomcat's logs: > SEVERE: The web application [/foobar] created a ThreadLocal with key of type > [org.apache.xmlbeans.XmlBeans$1] (value > [org.apache.xmlbeans.XmlBeans$1@7d3aace]) and a value of type > [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@5972be65]) > but failed to remove it when the web application was stopped. This is very > likely to create a memory leak. > Jun 26, 2013 7:01:56 PM org.apache.catalina.loader.WebappClassLoader > clearThreadLocalMap > SEVERE: The web application [/foobar] created a ThreadLocal with key of type > [org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl$1] (value > [org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl$1@7c3206c3]) and a > value of type [java.util.ArrayList] (value > [[java.lang.ref.SoftReference@385a2be8]]) but failed to remove it when the > web application was stopped. This is very likely to create a memory leak. > Jun 26, 2013 7:01:56 PM org.apache.catalina.loader.WebappClassLoader > clearThreadLocalMap > SEVERE: The web application [/foobar] created a ThreadLocal with key of type > [org.apache.xmlbeans.impl.store.Locale$1] (value > [org.apache.xmlbeans.impl.store.Locale$1@27f8a93f]) and a value of type > [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@362f7b99]) > but failed to remove it when the web application was stopped. This is very > likely to create a memory leak. > Jun 26, 2013 7:01:56 PM org.apache.catalina.loader.WebappClassLoader > clearThreadLocalMap > SEVERE: The web application [/foobar] created a ThreadLocal with key of type > [org.apache.xmlbeans.impl.store.CharUtil$1] (value > [org.apache.xmlbeans.impl.store.CharUtil$1@675b9599]) and a value of type > [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@2dbaa4d2]) > but failed to remove it when the web application was stopped. This is very > likely to create a memory leak. -- This message was sent by Atlassian JIRA (v6.1#6144) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org For additional commands, e-mail: dev-h...@xmlbeans.apache.org