We are adding number of documents concurrently to the Basex database using basex java api. Our application runs three threads in which each thread is adding documents to it by executing following instructions in java as given below.
Java: Oracle Corporation, 1.7.0_71
OS: Windows 7, amd64
Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: 8
at org.basex.util.hash.TokenSet.index(TokenSet.java:161)
at org.basex.util.hash.TokenSet.put(TokenSet.java:97)
at org.basex.data.Namespaces.open(Namespaces.java:319)
at org.basex.data.NSScope.open(NSScope.java:72)
at org.basex.data.Data.insert(Data.java:775)
at org.basex.query.up.atomic.Insert.apply(Insert.java:44)
at org.basex.query.up.atomic.AtomicUpdateCache.applyUpdates(AtomicUpdateCache.java:297)
at org.basex.query.up.atomic.AtomicUpdateCache.execute(AtomicUpdateCache.java:281)
at org.basex.core.cmd.Add.run(Add.java:66)
at org.basex.core.Command.run(Command.java:398)
at org.basex.core.Command.execute(Command.java:100)
at org.basex.core.Command.execute(Command.java:123)
at com.myapp.MyDataBase.addSource(MyDataBase.java:85)
at com.myapp.ProcessorLoader$1.run(ProcessorLoader.java:132)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)