You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by rr...@apache.org on 2010/02/15 15:22:55 UTC

svn commit: r910222 - in /ode/branches/APACHE_ODE_1.X: bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java

Author: rr
Date: Mon Feb 15 14:22:54 2010
New Revision: 910222

URL: http://svn.apache.org/viewvc?rev=910222&view=rev
Log:
ODE-764: Weird XML constant parsing problem fix

Modified:
    ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java

Modified: ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java?rev=910222&r1=910221&r2=910222&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-obj/src/main/java/org/apache/ode/bpel/o/OAssign.java Mon Feb 15 14:22:54 2010
@@ -18,18 +18,16 @@
  */
 package org.apache.ode.bpel.o;
 
-import org.apache.ode.bpel.o.OScope.Variable;
-import org.apache.ode.utils.DOMUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
-
-import javax.xml.namespace.QName;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.o.OScope.Variable;
+import org.apache.ode.utils.DOMUtils;
+import org.w3c.dom.Document;
+
 public class OAssign extends OActivity {
     static final long serialVersionUID = -1L  ;
     
@@ -80,37 +78,39 @@
 
     public static class Literal extends OBase implements RValue {
         private static final long serialVersionUID = 1L;
-        public transient String stringLiteral;
+        public transient String xmlLiteral;
 
         public Literal(OProcess owner, Document xmlLiteral) {
             super(owner);
             if (xmlLiteral == null)
                 throw new IllegalArgumentException("null xmlLiteral!");
-            this.stringLiteral = DOMUtils.domToString(xmlLiteral);
+            this.xmlLiteral = DOMUtils.domToString(xmlLiteral);
         }
 
         public String toString() {
-            return "{Literal " + stringLiteral + "}";
+            return "{Literal " + xmlLiteral + "}";
         }
 
         private void writeObject(java.io.ObjectOutputStream out)
                 throws IOException
         {
-            out.writeObject(stringLiteral);
+            out.writeObject(xmlLiteral);
         }
 
         private void readObject(java.io.ObjectInputStream in)
                 throws IOException
         {
+            String domStr = null;
             try {
-                stringLiteral = (String) in.readObject();
+                domStr = (String) in.readObject();
             } catch (ClassNotFoundException e) {
                 throw (IOException)(new IOException("XML de-serialization error.")).initCause(e);
             }
+            xmlLiteral = domStr;
         }
 
-        public Document getXmlLiteral() throws SAXException, IOException {
-            return DOMUtils.stringToDOM(stringLiteral).getOwnerDocument();
+        public String getXmlLiteral() {
+            return xmlLiteral;
         }
     }
 

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java?rev=910222&r1=910221&r2=910222&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java Mon Feb 15 14:22:54 2010
@@ -239,14 +239,12 @@
             }
             retVal = (Node) l.get(0);
         } else if (from instanceof OAssign.Literal) {
+            String literal = ((OAssign.Literal) from).getXmlLiteral();
             Element literalRoot;
             try {
-                literalRoot = ((OAssign.Literal) from).getXmlLiteral().getDocumentElement();
+                literalRoot = DOMUtils.stringToDOM(literal);
             } catch (Exception e) {
-                String msg = __msgs.msgEvalException(from.toString(), e.getMessage());
-                if (__log.isDebugEnabled()) __log.debug(from + ": " + msg);
-                if (e.getCause() instanceof FaultException) throw (FaultException)e.getCause();
-                throw new FaultException(getOAsssign().getOwner().constants.qnSelectionFailure, msg);
+                throw new RuntimeException("XML literal parsing failed " + literal, e);
             }
             assert literalRoot.getLocalName().equals("literal");
             // We'd like a single text node...