Author: mszefler
Date: Mon Oct 16 15:15:04 2006
New Revision: 464695

URL: http://svn.apache.org/viewvc?view=rev&rev=464695
Log:
Fixed some oddities in replaceElement assignment.

Modified:
    incubator/ode/trunk/bpel-dd/.project
    
incubator/ode/trunk/bpel-el-xpath10/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java

Modified: incubator/ode/trunk/bpel-dd/.project
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-dd/.project?view=diff&rev=464695&r1=464694&r2=464695
==============================================================================
--- incubator/ode/trunk/bpel-dd/.project (original)
+++ incubator/ode/trunk/bpel-dd/.project Mon Oct 16 15:15:04 2006
@@ -7,16 +7,6 @@
                <project>ode-utils</project>
        </projects>
        <buildSpec>
-               <buildCommand>
-                       
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <triggers>full,incremental,</triggers>
-                       <arguments>
-                               <dictionary>
-                                       <key>LaunchConfigHandle</key>
-                                       
<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch</value>
-                               </dictionary>
-                       </arguments>
-               </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.jdt.core.javanature</nature>

Modified: 
incubator/ode/trunk/bpel-el-xpath10/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-el-xpath10/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java?view=diff&rev=464695&r1=464694&r2=464695
==============================================================================
--- 
incubator/ode/trunk/bpel-el-xpath10/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
 (original)
+++ 
incubator/ode/trunk/bpel-el-xpath10/src/main/java/org/apache/ode/bpel/elang/xpath10/o/OXPath10Expression.java
 Mon Oct 16 15:15:04 2006
@@ -37,18 +37,18 @@
        private static final long serialVersionUID = -1L;
 
   /** Map from query name to variable declaration. */
-  public final Map<String, OScope.Variable> vars =
+  public HashMap<String, OScope.Variable> vars =
     new HashMap<String, OScope.Variable>();
 
-  public final Map<String, OProcess.OProperty> properties =
+  public final HashMap<String, OProcess.OProperty> properties =
     new HashMap<String, OProcess.OProperty>();
 
-  public final Map<String, OLink> links = new HashMap<String,OLink>();
+  public final HashMap<String, OLink> links = new HashMap<String,OLink>();
 
-  public final Map<URI,OXslSheet> xslSheets = new HashMap<URI, OXslSheet>();
+  public final HashMap<URI,OXslSheet> xslSheets = new HashMap<URI, 
OXslSheet>();
 
   /** Map getVariableData invocation signature to compiled objects. */
-  private final Map<SigGetVariableData,OSigGetVariableData> 
_getVariableDataSigs =
+  private final HashMap<SigGetVariableData,OSigGetVariableData> 
_getVariableDataSigs =
     new HashMap<SigGetVariableData,OSigGetVariableData>();
 
   public String xpath;

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java?view=diff&rev=464695&r1=464694&r2=464695
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
 Mon Oct 16 15:15:04 2006
@@ -392,7 +392,7 @@
 
                 if (rvalue.getNodeType() == Node.ELEMENT_NODE
                         && lvaluePtr.getNodeType() == Node.ELEMENT_NODE) {
-                    replaceElement((Element) lvaluePtr, (Element) rvalue,
+                    lvalue = replaceElement((Element)lvalue, (Element) 
lvaluePtr, (Element) rvalue,
                             ocopy.keepSrcElementName);
                 } else {
                     lvalue = replaceContent(lvalue, lvaluePtr, rvalue
@@ -441,24 +441,26 @@
         getBpelRuntimeContext().writeEndpointReference(plval, (Element)rvalue);
     }
 
-    private void replaceElement(Element dest, Element src,
+    private Element replaceElement(Element lval, Element ptr, Element src,
                                 boolean keepSrcElement) {
-        Document doc = dest.getOwnerDocument();
-        Node parent = dest.getParentNode();
+        Document doc = ptr.getOwnerDocument();
+        Node parent = ptr.getParentNode();
         if (keepSrcElement) {
-            Node replacement = doc.importNode(src, true);
-            parent.replaceChild(replacement, dest);
-        } else {
-            Element replacement = doc.createElementNS(dest.getNamespaceURI(), 
dest
-                    .getLocalName());
-            NodeList nl = src.getChildNodes();
-            for (int i = 0; i < nl.getLength(); ++i)
-                replacement.appendChild(doc.importNode(nl.item(i), true));
-            NamedNodeMap attrs = src.getAttributes();
-            for (int i = 0; i < attrs.getLength(); ++i)
-                
replacement.setAttributeNodeNS((Attr)doc.importNode(attrs.item(i), true));
-            parent.replaceChild(replacement, dest);
-        }
+            Element replacement = (Element)doc.importNode(src, true);
+            parent.replaceChild(replacement, ptr);
+            return (lval == ptr) ? replacement :  lval; 
+        } 
+    
+        Element replacement = doc.createElementNS(ptr.getNamespaceURI(), ptr
+                .getLocalName());
+        NodeList nl = src.getChildNodes();
+        for (int i = 0; i < nl.getLength(); ++i)
+            replacement.appendChild(doc.importNode(nl.item(i), true));
+        NamedNodeMap attrs = src.getAttributes();
+        for (int i = 0; i < attrs.getLength(); ++i)
+            replacement.setAttributeNodeNS((Attr)doc.importNode(attrs.item(i), 
true));
+        parent.replaceChild(replacement, ptr);
+        return (lval == ptr) ? replacement :  lval; 
     }
 
     /**


Reply via email to