Hi all,

While I don't have any answer to this question, I can corroborate Johannes' finding.

Also, Johannes, did you find a magic string? I tried some longer keys and they seem to work :)
Best,
Bridger

On Thu, Jan 9, 2020 at 11:51 AM Johannes Echterhoff <echterhoff@interactive-instruments.de> wrote:

Hello,

When executing:

 

map:merge((
map {
"DENW21AL100077Hs": "a",
"DENW21AL100076i5": "a"
},
map {
"DENW21AL100077Hs": "b",
"DENW21AL100076i5": "b",
"DENW21AL100076hT": "b"
}
), map {'duplicates': 'combine'})

 

in the BaseX GUI I get:

 

Error:

Improper use? Potential bug? Your feedback is welcome:

Contact: basex-talk@mailman.uni-konstanz.de

Version: BaseX 9.3.1

Java: AdoptOpenJDK, 1.8.0_212

OS: Windows 10, amd64

Stack Trace:

java.lang.ArrayIndexOutOfBoundsException: 2

                at org.basex.query.value.map.TrieList.add(TrieList.java:199)

                at org.basex.query.value.map.TrieList.addAll(TrieList.java:141)

                at org.basex.query.value.map.XQMap.addAll(XQMap.java:106)

                at org.basex.query.func.map.MapMerge.item(MapMerge.java:33)

                at org.basex.query.func.StandardFunc.optimize(StandardFunc.java:82)

                at org.basex.query.expr.Arr.compile(Arr.java:43)

                at org.basex.query.scope.MainModule.comp(MainModule.java:81)

                at org.basex.query.QueryCompiler.compile(QueryCompiler.java:114)

                at org.basex.query.QueryCompiler.compile(QueryCompiler.java:105)

                at org.basex.query.QueryContext.compile(QueryContext.java:312)

                at org.basex.query.QueryProcessor.compile(QueryProcessor.java:79)

                at org.basex.core.cmd.AQuery.query(AQuery.java:93)

                at org.basex.core.cmd.XQuery.run(XQuery.java:22)

                at org.basex.core.Command.run(Command.java:257)

                at org.basex.core.Command.execute(Command.java:93)

                at org.basex.gui.GUI.exec(GUI.java:422)

                at org.basex.gui.GUI.lambda$4(GUI.java:365)

                at java.lang.Thread.run(Thread.java:748)

 

Best regards,

Johannes