Author: rfeng
Date: Thu Sep 13 14:20:14 2007
New Revision: 575458

URL: http://svn.apache.org/viewvc?rev=575458&view=rev
Log:
Use the axiom 1.2.5 releaseParserOnClose() API to make sure the parsers are 
closed

Modified:
    
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java
    
incubator/tuscany/java/sca/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java

Modified: 
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java?rev=575458&r1=575457&r2=575458&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java
 Thu Sep 13 14:20:14 2007
@@ -52,8 +52,7 @@
         OMXMLParserWrapper builder = om.getBuilder();
         if (builder != null) {
             if (builder instanceof StAXBuilder) {
-                // FIXME: Uncomment it for AXIOM 1.2.5
-                // ((StAXBuilder)builder).releaseParserOnClose(true);
+                ((StAXBuilder)builder).releaseParserOnClose(true);
             }
             OMElement document = builder.getDocumentElement();
             if (document != null) {
@@ -74,8 +73,7 @@
         OMXMLParserWrapper builder = om.getBuilder();
         if (builder != null) {
             if (builder instanceof StAXBuilder) {
-                // FIXME: Uncomment it for AXIOM 1.2.5
-                // ((StAXBuilder)builder).releaseParserOnClose(true);
+                ((StAXBuilder)builder).releaseParserOnClose(true);
                 ((StAXBuilder)builder).close();
             }
             // builder.close();

Modified: 
incubator/tuscany/java/sca/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java?rev=575458&r1=575457&r2=575458&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/databinding-sdo-axiom/src/main/java/org/apache/tuscany/sca/databinding/sdo2om/AxiomHelper.java
 Thu Sep 13 14:20:14 2007
@@ -26,6 +26,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.util.XMLType;
@@ -36,10 +38,46 @@
  * @version $Rev$ $Date$
  */
 public class AxiomHelper {
-
     private static final String DEFAULT_PREFIX = "_ns_";
 
     private AxiomHelper() {
+    }
+
+    /**
+     * See http://issues.apache.org/jira/browse/WSCOMMONS-240
+     * @param om
+     */
+    public static void completeAndClose(OMElement om) {
+        // Get the builder associated with the om element
+        OMXMLParserWrapper builder = om.getBuilder();
+        if (builder != null) {
+            if (builder instanceof StAXBuilder) {
+                ((StAXBuilder)builder).releaseParserOnClose(true);
+            }
+            OMElement document = builder.getDocumentElement();
+            if (document != null) {
+                document.build();
+            }
+        }
+        if (builder instanceof StAXBuilder) {
+            ((StAXBuilder)builder).close();
+        }
+    }
+
+    /**
+     * This method will close the builder immediately.  Any subsequent Axiom 
objects won't 
+     * be built or accessible.
+     */
+    public static void closeImmediately(OMElement om) {
+        // Get the builder associated with the om element
+        OMXMLParserWrapper builder = om.getBuilder();
+        if (builder != null) {
+            if (builder instanceof StAXBuilder) {
+                ((StAXBuilder)builder).releaseParserOnClose(true);
+                ((StAXBuilder)builder).close();
+            }
+            // builder.close();
+        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to