Subj : E4X; assigning an XMLList to a property of an XML object
To : netscape.public.mozilla.jseng
From : Martin Honnen
Date : Sun Apr 17 2005 07:13 pm
Should it be possible to assign an XMLList to the property of an XML object?
I have the simple test case
var god = Kibo;
print(god);
god.name = <>JamesKibo>;
print(god);
which runs fine in Spidermonkey resulting in the output
James
Kibo
meaning Spidermonkey replaces the element with the elements in
the XMLList but Rhino throws an error complaining
uncaught JavaScript runtime exception: TypeError : Can't
move/copy/insert a whole document.
The error is accompanied by a stack trace going down into XML beans from
Apache:
java.lang.IllegalArgumentException: Can't move/copy/insert a whole document.
at org.apache.xmlbeans.impl.store.Splay.complain(Splay.java:833)
at
org.apache.xmlbeans.impl.store.Splay.checkInsertionValidity(Splay.java:867)
at
org.apache.xmlbeans.impl.store.Cursor.copyXmlImpl(Cursor.java:2446)
at org.apache.xmlbeans.impl.store.Cursor.copyXml(Cursor.java:2410)
at org.mozilla.javascript.xmlimpl.XML.copy(XML.java:711)
at org.mozilla.javascript.xmlimpl.XML.moveSrcToDest(XML.java:661)
at org.mozilla.javascript.xmlimpl.XML.insertChild(XML.java:759)
at org.mozilla.javascript.xmlimpl.XML.doPut(XML.java:1001)
at org.mozilla.javascript.xmlimpl.XML.putXMLProperty(XML.java:1327)
at
org.mozilla.javascript.xmlimpl.XMLObjectImpl.ecmaPut(XMLObjectImpl.java:233)
at
org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java
:1428)
at
org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1420)
at
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2753)
at
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2164)
at
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
at
org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.j
ava:149)
at org.mozilla.javascript.Context.evaluateReader(Context.java:1251)
at
org.mozilla.javascript.tools.shell.Main.evaluateScript(Main.java:443)
at
org.mozilla.javascript.tools.shell.Main.processFileSecure(Main.java:4
27)
at
org.mozilla.javascript.tools.shell.Main.processFile(Main.java:364)
at org.mozilla.javascript.tools.shell.Global.load(Global.java:171)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:174)
at
org.mozilla.javascript.FunctionObject.call(FunctionObject.java:393)
at
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:3026)
at
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2164)
at
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:304)
at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2769)
but I have the latest XML Beans 1.0.4 from Apache.
Should I file a bug on Rhino?
--
Martin Honnen
http://JavaScript.FAQTs.com/
.