Subjects
Home
VOTE Move XML Commons to Xerces
Commented: (XERCESJ 589) Bug with pattern restriction on long strings
: Xerces J 2 8 1 Release on Wednesday, September 13th
: Xerces J 2 9 0 Release on Wednesday, November 22nd
Commented: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1178) Error getting prefix for an attribute with no n
Updated: (XERCESJ 1244) XMLSchemaValidator does not contribute element 's
Some consideration about the xerces DOM implementation
Updated: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1227) Poor performance / OutOfMemoryError for sequenc
retain exception stack traces
Updated: (XERCESJ 1193) NPE or hang when parsing using the "continue afte
Future of NekoHTML
Commented: (XERCESJ 1203) NPE in XMLDTDProcessor
DOM Level 3 APIs for Xalan J and a new Xalan release (2 7 1)
: xml commons external 1 3 04 Release on Wednesday, November 22nd
Commented: (XERCESJ 1247) Incorrect location information on SAX when usin
XInclude exceptions how to mirror Xerces J functionality into Xerces C++?
First proposal on SoC project "Add support for the StAX (JSR 173) cursor API
: xml commons resolver 1 2 Release on Wednesday, November 22nd
Typo in RangeToken java Please check
Validator features
java lang ClassCastException when adopting Node
using the org apache xerces impl xs identity package
Updated: (XERCESJ 1257) buffer overflow in UTF8Reader for characters out
Problem with ref attributes and schema validation
Updated: (XERCESJ 122) XMLSchemaValidator does not contribute element 's d
Performance problem under load Xerces with Weblogic 9 x
remove ignored memory allocation
Commented: (XERCESJ 1177) SAXXMLStreamReader doesn 't always report namesp
Commented: (XERCESJ 977) Null pointer exception during DOM parsing
Commented: (XERCESJ 1197) Code cleanup for org apache xml serialize
Commented: (XERCESJ 1201) Initial contribution for StAX Event API
Updated: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special c
Commented: (XERCESJ 1199) SAXXMLStreamReader should attempt to register a
Commented: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special
Updated: (XERCESJ 589) Bug with pattern restriction on long strings
StackOverflow
xerces Range unnecessarily not garbage collectable if not detached
Updated: (XERCESJ 1178) Error getting prefix for an attribute with no nam
Bug in xs:redefine
Commented: (XERCESJ 1204) Can not set XMLEntityResolver for LSParser
Updated: (XERCESJ 1253) Prototype for SoC2007 project "Add support for th
Updated: (XERCESJ 1259) Add SteamFilter Function to SoC2007 project "Add
Assigned: (XERCESJ 444) SAXException thrown by EntityResolver is reported
Google Summer of Code 2007
Xerces J and XInclude relative path issue
Assigned: (XERCESJ 206) Stack overflow when using a schema validation
Commented: (XERCESJ 1215) Restrictions involving two levels of substituti
Closed: (XERCESJ 1203) NPE in XMLDTDProcessor
non overriding equals methoda
Resolved: (XERCESJ 1079) invalid value returned for TOTALDIGITS facet in
Xerces AS3 port
Updated: (XERCESJ 325) Regular Expression; Pattern "| " clause order de
Updated: (XERCESJ 1196) Javadoc generation fails on Java SE 5 0
Closed: (XERCESJ 1202) DTD validation on XIncluded documents when the sch
Created: (XERCESJ 1124) Nonspecific schema error message
a bug in xerces
Updated: (XERCESJ 1201) Initial contribution for StAX Event API
Closed: (XERCESJ 1254) Empty uris in targetNamespace attribute not report
Links
Home
Oracle database error code
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Xerces consuming memory when reusing parser

Xerces consuming memory when reusing parser

2003-03-11       - By Rob Griffin
Reply:     1     2     3     4     5     6     7  

Hi,

I have a problem with Xerces 2.3.0 consuming memory in a long running
application.

Here's my setup code:


       DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
       factory.setValidating(true);
       factory.setIgnoringComments(true);
       factory.setNamespaceAware(true);

factory.setAttribute("http://apache.org/xml/features/dom/defer-node-expansio
n", Boolean.FALSE);

factory.setAttribute("http://xml.org/sax/features/external-parameter-entitie
s", Boolean.FALSE);

factory.setAttribute("http://apache.org/xml/features/validation/schema",
Boolean.TRUE);

I am using an XML Schema for validation.

I then get one instance of DocumentBuilder from this factory and use it to
repeatedly validate documents.

Last night I ran it overnight with another process feeding in a small XML
document ( < 10 elements) every
ten seconds. This morning I see more than 260,000 instances of
org.apache.xerces.impl.xs.XSAttributeUseImpl.
Forcing a garbage collection does not free these objects. There are no other
objects with anywhere near this count.

The resulting document is being used to create a Java object, but in this
case that object is almost
immediately deferenced. I can see the count of that type fall to zero
periodically, which is what I expect.

Is this a bug? If so I can give more details about where these objects are
being allocated.

As a workaround I am now periodically creating a new DocumentBuilderFactory
and DocumentBuilder and this
fixes the problem, but I'd rather not have to do this.

Regards,

Rob Griffin
Software Engineer
Quest Software
2/293 Camberwell Road
Camberwell, Victoria 3124
Australia
Phone: +613 98118021
Fax: +613 9811 8099
http://www.quest.com


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>Xerces consuming memory when reusing parser</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Hi,</FONT>
</P>

<P><FONT SIZE=2>I have a problem with Xerces 2.3.0 consuming memory in a long
running </FONT>
<BR><FONT SIZE=2>application.</FONT>
</P>

<P><FONT SIZE=2>Here's my setup code:</FONT>
</P>
<BR>

<P><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setValidating(true);</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setIgnoringComments(true);</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setNamespaceAware(true);</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setAttribute(&quot;<A HREF="http://apache.org/xml/features/dom/defer-node
-expansion" TARGET="_blank">http://apache.org/xml/features/dom/defer-node
-expansion</A>&quot;, Boolean.FALSE);</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setAttribute(&quot;<A HREF="http://xml.org/sax/features/external-parameter
-entities" TARGET="_blank">http://xml.org/sax/features/external-parameter
-entities</A>&quot;, Boolean.FALSE);</FONT>
<BR><FONT SIZE=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory
.setAttribute(&quot;<A HREF="http://apache.org/xml/features/validation/schema"
TARGET="_blank">http://apache.org/xml/features/validation/schema</A>&quot;,
Boolean.TRUE);</FONT>
</P>

<P><FONT SIZE=2>I am using an XML Schema for validation.</FONT>
</P>

<P><FONT SIZE=2>I then get one instance of DocumentBuilder from this factory
and use it to repeatedly validate documents.</FONT>
</P>

<P><FONT SIZE=2>Last night I ran it overnight with another process feeding in a
small XML document ( &lt; 10 elements) every</FONT>
<BR><FONT SIZE=2>ten seconds. This morning I see more than 260,000 instances of
org.apache.xerces.impl.xs.XSAttributeUseImpl.</FONT>
<BR><FONT SIZE=2>Forcing a garbage collection does not free these objects.
There are no other objects with anywhere near this count.</FONT>
</P>

<P><FONT SIZE=2>The resulting document is being used to create a Java object,
but in this case that object is almost</FONT>
<BR><FONT SIZE=2>immediately deferenced. I can see the count of that type fall
to zero periodically, which is what I expect.</FONT>
</P>

<P><FONT SIZE=2>Is this a bug? If so I can give more details about where these
objects are being allocated. </FONT>
</P>

<P><FONT SIZE=2>As a workaround I am now periodically creating a new
DocumentBuilderFactory and DocumentBuilder and this</FONT>
<BR><FONT SIZE=2>fixes the problem, but I'd rather not have to do this.</FONT>
</P>

<P><FONT SIZE=2>Regards,</FONT>
</P>

<P><FONT SIZE=2>Rob Griffin</FONT>
<BR><FONT SIZE=2>Software Engineer</FONT>
<BR><FONT SIZE=2>Quest Software</FONT>
<BR><FONT SIZE=2>2/293 Camberwell Road</FONT>
<BR><FONT SIZE=2>Camberwell, Victoria 3124</FONT>
<BR><FONT SIZE=2>Australia</FONT>
<BR><FONT SIZE=2>Phone: +613 98118021</FONT>
<BR><FONT SIZE=2>Fax: +613 9811 8099</FONT>
<BR><FONT SIZE=2><A HREF="http://www.quest.com" TARGET="_blank">http://www
.quest.com</A></FONT>
</P>

</BODY>
</HTML>