You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2009/08/01 23:20:00 UTC
svn commit: r799928 -
/webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml
Author: veithen
Date: Sat Aug 1 21:19:59 2009
New Revision: 799928
URL: http://svn.apache.org/viewvc?rev=799928&view=rev
Log:
Adding a section to the user guide about closing/releasing the parser.
Modified:
webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml
Modified: webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml?rev=799928&r1=799927&r2=799928&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml (original)
+++ webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml Sat Aug 1 21:19:59 2009
@@ -629,6 +629,33 @@
XMLStreamReader reader = StAXUtils.createXMLStreamReader(in);</programlisting>
</section>
<section>
+ <title>Releasing the parser</title>
+ <para>
+ As we have seen previously, when creating an object model from a stream, all nodes keep a
+ reference to the builder and thus to the underlying parser. Since an XML parser instance is
+ a heavyweight object, it is important to release it as soon as it is no longer required.
+ The <methodname>close</methodname> method defined by the <classname>OMNode</classname>
+ interface it used for that. Note that it doesn't matter an which node this method is
+ called; it will always close and release the parser for the whole tree. The
+ <varname>build</varname> parameter of the <methodname>close</methodname> method specifies
+ if the node should be built before closing the parser.
+ </para>
+ <para>
+ To illustrate this, consider <xref linkend="list1"/>. After finishing the processing of the
+ object model and assuming that it will not access the object model afterwards, the code should
+ be completed by the following instruction:
+ </para>
+<programlisting>documentElement.close(false);</programlisting>
+ <para>
+ Closing the parser is especially important in applications that process large numbers of
+ XML documents. In addition, some StAX implementation are able to <quote>recycle</quote>
+ parsers, i.e. to reset a parser instance and to reuse it on another input stream. However, this
+ can only work if the parser has been closed explicitly or if the instance has been marked for
+ finalization by the Java VM. Closing the parser explicitly as shown above will reduce the
+ memory footprint of the application if this type of parser is used.
+ </para>
+ </section>
+ <section>
<title>Exception handling</title>
<para>
The fact that Axiom uses deferred building means that a call to a method in one