fixing ODE-960, thanks Denis for the patch!

Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/8bf25e16
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/8bf25e16
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/8bf25e16

Branch: refs/heads/master
Commit: 8bf25e167c1402ed7e1f58a88bb4e92b0c1f8dcd
Parents: 7e24e59
Author: Tammo van Lessen <[email protected]>
Authored: Sat Sep 14 14:06:19 2013 +0200
Committer: Tammo van Lessen <[email protected]>
Committed: Sat Sep 14 14:11:09 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/ode/bpel/runtime/ASSIGN.java    | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode/blob/8bf25e16/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java 
b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
index 3c22630..df923bd 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
@@ -518,17 +518,23 @@ class ASSIGN extends ACTIVITY {
         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) {
-            Attr attr = (Attr)attrs.item(i);
-            replacement.setAttributeNodeNS((Attr)doc.importNode(attr, true));
-        }
+        copyAttributes(doc, ptr, replacement);
+        copyAttributes(doc, src, replacement);
         parent.replaceChild(replacement, ptr);
         DOMUtils.copyNSContext(ptr, replacement);
 
         return (lval == ptr) ? replacement :  lval;
     }
 
+    private void copyAttributes(Document doc, Element original,
+            Element replacement) {
+        NamedNodeMap attrs = original.getAttributes();
+        for (int i = 0; i < attrs.getLength(); ++i) {
+            Attr attr = (Attr)attrs.item(i);
+            replacement.setAttributeNodeNS((Attr)doc.importNode(attr, true));
+        }
+    }
+
     private Element copyInto(Element lval, Element ptr, Element src) {
         ptr.appendChild(ptr.getOwnerDocument().importNode(src, true));
         return lval;

Reply via email to