array:for-each issue
Friday, 18 September 2015 · 4 messages
AB
Andy Bunce18 Sep 2015 12:22 #
Hi,
Using 8.2.3 (and the latest beta) this code seems to be invoking the JSON serializer. I don't understand why.
declare function local:wrap2($doc,$x as xs:integer*){
$doc
};
let $b:=doc("file.xml")
return array:for-each([1],local:wrap2($b,?))
And if file.xml is
<doc>
<p style="prior"/>
<p style="target"/>
<p style="later"/>
</doc>Error:
Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk at mailman.uni-konstanz.de
Version: BaseX 8.3 beta 89201d1
Java: Oracle Corporation, 1.8.0_45
OS: Windows 7, amd64
Stack Trace:
java.lang.NullPointerException
at org.basex.util.Token.eq(Token.java:619)
at
org.basex.io.serial.json.JsonNodeSerializer.finishOpen(JsonNodeSerializer.java:145) at org.basex.io.serial.Serializer.prepare(Serializer.java:524) at org.basex.io.serial.Serializer.openElement(Serializer.java:229) at org.basex.io.serial.Serializer.node(Serializer.java:437)
at org.basex.io.serial.Serializer.node(Serializer.java:176)
at org.basex.io.serial.StandardSerializer.node(StandardSerializer.java:99) at
org.basex.io.serial.json.JsonNodeSerializer.node(JsonNodeSerializer.java:89) at org.basex.io.serial.Serializer.serialize(Serializer.java:126) at
org.basex.io.serial.StandardSerializer.serialize(StandardSerializer.java:84) at org.basex.io.serial.json.JsonSerializer.serialize(JsonSerializer.java:57) at org.basex.io.serial.json.JsonSerializer.serialize(JsonSerializer.java:76) at org.basex.io.serial.json.JsonSerializer.function(JsonSerializer.java:120) at
org.basex.io.serial.AdaptiveSerializer.function(AdaptiveSerializer.java:78) at org.basex.io.serial.Serializer.serialize(Serializer.java:128) at
org.basex.io.serial.AdaptiveSerializer.serialize(AdaptiveSerializer.java:63) at org.basex.query.value.Value.serialize(Value.java:223)
at org.basex.core.cmd.AQuery.query(AQuery.java:85)
at org.basex.core.cmd.XQuery.run(XQuery.java:22)
at org.basex.core.Command.run(Command.java:398)
at org.basex.core.Command.execute(Command.java:100)
at org.basex.gui.GUI.exec(GUI.java:472)
at org.basex.gui.GUI.access$4(GUI.java:425)
at org.basex.gui.GUI$7.run(GUI.java:412)
AB
Andy Bunce18 Sep 2015 15:21 #
Simplified:
[doc("file.xml")]
or
array{doc("file.xml")}
Quoted text · Andy Bunce · 59 lines
On 18 September 2015 at 11:22, Andy Bunce <bunce.andy at gmail.com> wrote: > Hi, > Using 8.2.3 (and the latest beta) this code seems to be invoking the JSON > serializer. I don't understand why. > > declare function local:wrap2($doc,$x as xs:integer*){ > $doc > }; > let $b:=doc("file.xml") > return array:for-each([1],local:wrap2($b,?)) > > And if file.xml is > <doc> > <p style="prior"/> > <p style="target"/> > <p style="later"/> > </doc> > > Error: > Improper use? Potential bug? Your feedback is welcome: > Contact: basex-talk at mailman.uni-konstanz.de > Version: BaseX 8.3 beta 89201d1 > Java: Oracle Corporation, 1.8.0_45 > OS: Windows 7, amd64 > Stack Trace: > java.lang.NullPointerException > at org.basex.util.Token.eq(Token.java:619) > at > org.basex.io.serial.json.JsonNodeSerializer.finishOpen(JsonNodeSerializer.java:145) > at org.basex.io.serial.Serializer.prepare(Serializer.java:524) > at org.basex.io.serial.Serializer.openElement(Serializer.java:229) > at org.basex.io.serial.Serializer.node(Serializer.java:437) > at org.basex.io.serial.Serializer.node(Serializer.java:176) > at org.basex.io.serial.StandardSerializer.node(StandardSerializer.java:99) > at > org.basex.io.serial.json.JsonNodeSerializer.node(JsonNodeSerializer.java:89) > at org.basex.io.serial.Serializer.serialize(Serializer.java:126) > at > org.basex.io.serial.StandardSerializer.serialize(StandardSerializer.java:84) > at > org.basex.io.serial.json.JsonSerializer.serialize(JsonSerializer.java:57) > at > org.basex.io.serial.json.JsonSerializer.serialize(JsonSerializer.java:76) > at > org.basex.io.serial.json.JsonSerializer.function(JsonSerializer.java:120) > at > org.basex.io.serial.AdaptiveSerializer.function(AdaptiveSerializer.java:78) > at org.basex.io.serial.Serializer.serialize(Serializer.java:128) > at > org.basex.io.serial.AdaptiveSerializer.serialize(AdaptiveSerializer.java:63) > at org.basex.query.value.Value.serialize(Value.java:223) > at org.basex.core.cmd.AQuery.query(AQuery.java:85) > at org.basex.core.cmd.XQuery.run(XQuery.java:22) > at org.basex.core.Command.run(Command.java:398) > at org.basex.core.Command.execute(Command.java:100) > at org.basex.gui.GUI.exec(GUI.java:472) > at org.basex.gui.GUI.access$4(GUI.java:425) > at org.basex.gui.GUI$7.run(GUI.java:412) >
CG
Christian Grün18 Sep 2015 15:24 #
…registered [1]. The reason for the unexpected JSON exception is that the (current) adaptive serializer output arrays and maps as JSON.
Thanks,
Christian
[1] https://github.com/BaseXdb/basex/issues/1198
CG
Christian Grün18 Sep 2015 18:00 #
The bug has been fixed; the snapshot is currently being uploaded.
Quoted text · Christian Grün · 9 lines
On Fri, Sep 18, 2015 at 3:24 PM, Christian Grün <christian.gruen at gmail.com> wrote: > …registered [1]. The reason for the unexpected JSON exception is that > the (current) adaptive serializer output arrays and maps as JSON. > > Thanks, > Christian > > [1] https://github.com/BaseXdb/basex/issues/1198
Written for BaseX 8.2. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery