Java Mailing List Archive

Home » JDOM Projects »

[jdom-interest] JDOM parser reuse memory problem

Randall Theobald


Replies: Find Java Web Hosting

Author LoginPost Reply

Hi, I'm a performance analyst and found a spot where a product I'm
analyzing is using JDOM. We are creating new SAXBuilders on each thread and
are ending up with a hot lock on the classloader when trying to load up the
XMLReader. I saw that the underlying parser in SAXBuilder can be reused,
thus leading to a proper pooling strategy, but I have a memory concern. In
the case where the parser is reused, nothing is cleared from it at the end
of the build method (so the content handler is still held, which can
reference lots of objects). Since SAXBuilder doesn't expose a way to clear
anything on the reused parser, the only option is using ugly reflection to
clear it, or to use (slightly less ugly) WeakReferences to the SAXBuilders
in my pool so that they evenutally get cleaned up.

Is there a reason that the content handler on 'this.parser' isn't set to
null along with the local content handler being set to null in the finally
block of the build method? If not, I'd suggest this change.

 Randall Theobald                      
 Performance: WebSphere                  
 Business Process                      
 Management &                          
 IBM Software Group         randallt@(protected)
 Austin, TX              512-286-8870  t/l:

To control your jdom-interest membership:
©2008 - Jax Systems, LLC, U.S.A.