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;
