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]