Author: antelder
Date: Wed Nov 22 10:03:36 2006
New Revision: 478261
URL: http://svn.apache.org/viewvc?view=rev&rev=478261
Log:
Fix bug in JavaScript XML convertor where the outer XML element may get lost
Modified:
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertor.java
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertorTest.java
Modified:
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertor.java
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertor.java?view=diff&rev=478261&r1=478260&r2=478261
==============================================================================
---
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertor.java
(original)
+++
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertor.java
Wed Nov 22 10:03:36 2006
@@ -73,7 +73,9 @@
return super.fromScript(o);
}
- Wrapper wrapper = (Wrapper) ScriptableObject.callMethod((XMLObject)o,
"getXmlObject", new Object[0]);
+ // TODO: E4X Bug? Shouldn't need this copy, but without it the outer
element gets lost???
+ Scriptable jsXML = (Scriptable)
ScriptableObject.callMethod((Scriptable) o, "copy", new Object[0]);
+ Wrapper wrapper = (Wrapper)
ScriptableObject.callMethod((XMLObject)jsXML, "getXmlObject", new Object[0]);
XmlObject xmlObject = (XmlObject)wrapper.unwrap();
try {
Modified:
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertorTest.java
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertorTest.java?view=diff&rev=478261&r1=478260&r2=478261
==============================================================================
---
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertorTest.java
(original)
+++
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/convertors/JSOMElementConvertorTest.java
Wed Nov 22 10:03:36 2006
@@ -19,10 +19,14 @@
package org.apache.synapse.mediators.bsf.convertors;
+import java.util.Iterator;
+
import junit.framework.TestCase;
import org.apache.axiom.om.OMElement;
+import org.apache.synapse.TestMessageContext;
import org.apache.synapse.mediators.TestUtils;
+import org.apache.synapse.mediators.bsf.InlineScriptMediator;
public class JSOMElementConvertorTest extends TestCase {
@@ -35,4 +39,13 @@
assertEquals(XML, om.toString());
}
+ public void testFromScript() throws Exception {
+ InlineScriptMediator mediator = new InlineScriptMediator("xml.js",
"mc.setPayloadXML(<a><b>petra</b></a>);");
+ mediator.init();
+ TestMessageContext mc = TestUtils.getTestContext("<foo/>");
+ mediator.mediate(mc);
+ Iterator iterator = mc.getEnvelope().getChildElements();
+ iterator.next();
+ assertEquals(XML, ((OMElement)
iterator.next()).getFirstElement().toString());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]