poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominik Stadler (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (XMLBEANS-502) Usage of XmlBeans triggers "clearThreadLocalMap" warnings in Tomcat with XSSF
Date Sun, 10 Mar 2019 20:19:00 GMT

     [ https://issues.apache.org/jira/browse/XMLBEANS-502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dominik Stadler resolved XMLBEANS-502.
--------------------------------------
       Resolution: Fixed
         Assignee: Dominik Stadler
    Fix Version/s: Version 3.0.3

We now provide a new util {{ThreadLocalUtil.clearAllThreadLocals()}} which allows to clear
any lingering ThreadLocals in the current thread. 

This can be used before a thread is given back to a thread-pool or before a web container
like Tomcat performs the thread-locals check.

> 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
>            Assignee: Dominik Stadler
>            Priority: Major
>             Fix For: Version 3.0.3
>
>         Attachments: leak1.png, leak2.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


Mime
View raw message