[
https://issues.apache.org/jira/browse/XALANJ-2195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13169400#comment-13169400
]
Robert Olofsson commented on XALANJ-2195:
-----------------------------------------
Is there anything a mortal person can do to speed up the fix of this issue now
that it has celebrated it's fifth birthday?
> Memory leak in XMLReaderManager
> -------------------------------
>
> Key: XALANJ-2195
> URL: https://issues.apache.org/jira/browse/XALANJ-2195
> Project: XalanJ2
> Issue Type: Bug
> Components: Xalan
> Affects Versions: 2.7
> Reporter: Marko Strukelj
> Priority: Blocker
> Attachments: gc-roots.jpg, retained-object-sizes.jpg,
> xalan-j2-2.6.0-xmlmemoryleak-tm2l.patch
>
>
> In class org.apache.xml.utils.XMLReaderManager
> getXMLReader() method creates a new XMLReader (i.e. SAXParser) and stores it
> into ThreadLocal.
> releaseXMLReader() does not remove (set to null) ThreadLocal thus creating a
> permanent leak.
> Unfortunately the size of the cached Reader is typically dependent upon the
> size of the XML document you process (depends on implementation but this is
> the case with xerces SAXParser). In heavy load server environments with
> thread pools of tens and hundreds of threads the server sustains a
> significant memory leak (hundreds of megabytes - depending on the XML
> document sizes and number of threads in a thread pools).
> A fix is trivial:
> Put the following line at the end of releaseXMLReader method:
> m_readers.set(null);
> I wonder, why is reader stored in ThreadLocal in the first place?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]