Hello,
I have a strange exception :
Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 8.2.3 Java: Oracle Corporation, 1.8.0_91 OS: Linux, amd64 Stack Trace: java.lang.RuntimeException: Data Access out of bounds: - pre value: 120241192 - #used blocks: 469694 - #total locks: 469770 - access: 469693 (469694 > 469693] at org.basex.util.Util.notExpected(Util.java:60) at org.basex.io.random.TableDiskAccess.cursor(TableDiskAccess.java:458) at org.basex.io.random.TableDiskAccess.read1(TableDiskAccess.java:148) at org.basex.data.Data.kind(Data.java:306) at org.basex.query.value.node.DBNode.<init>(DBNode.java:51) at org.basex.query.value.seq.DBNodeSeq.itemAt(DBNodeSeq.java:68) at org.basex.query.value.seq.DBNodeSeq.itemAt(DBNodeSeq.java:22) at org.basex.query.value.seq.Seq$1.next(Seq.java:77) at org.basex.query.expr.path.IterPath$1.next(IterPath.java:58) at org.basex.query.expr.path.IterPath$1.next(IterPath.java:36) at org.basex.query.expr.gflwor.For$1.next(For.java:79) at org.basex.query.expr.gflwor.GroupBy$1.init(GroupBy.java:131) at org.basex.query.expr.gflwor.GroupBy$1.next(GroupBy.java:98) at org.basex.query.expr.gflwor.Let$LetEval.next(Let.java:174) at org.basex.query.expr.gflwor.For$1.next(For.java:99) at org.basex.query.expr.gflwor.GFLWOR$1.next(GFLWOR.java:95) at org.basex.query.expr.List$1.next(List.java:135) at org.basex.query.MainModule.cache(MainModule.java:91) at org.basex.query.QueryContext.iter(QueryContext.java:352) at org.basex.query.QueryProcessor.iter(QueryProcessor.java:80) at org.basex.core.cmd.AQuery.query(AQuery.java:89) 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.server.ClientListener.run(ClientListener.java:136)
The XQuery is :
for $fs in collection('FichiersBase')/forms group by $s := $fs/@supp return let $mv := max($fs/@omversion) for $f in $fs return if (empty($mv) or $f/@omversion >= $mv) then () else db:delete('FichiersBase', db:path($f)) ), db:optimize('FichiersBase')
After this, trying a OPTIMIZE ALL on DATABASE FichiersBase, I have this exception :
OPEN FichiersBase
Database 'FichiersBase' was opened in 744.68 ms.
OPTIMIZE ALL
Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 8.2.3 Java: Oracle Corporation, 1.8.0_91 OS: Linux, amd64 Stack Trace: java.lang.ArrayIndexOutOfBoundsException: 1 at org.basex.data.Namespaces.values(Namespaces.java:201) at org.basex.data.Data.namespaces(Data.java:450) at org.basex.io.serial.Serializer.node(Serializer.java:449) at org.basex.io.serial.Serializer.node(Serializer.java:176) at org.basex.io.serial.Serializer.serialize(Serializer.java:126) at org.basex.core.cmd.OptimizeAll$DBParser.parse(OptimizeAll.java:202) at org.basex.build.Builder.parse(Builder.java:73) at org.basex.build.DiskBuilder.build(DiskBuilder.java:85) at org.basex.core.cmd.OptimizeAll.optimizeAll(OptimizeAll.java:131) at org.basex.core.cmd.OptimizeAll.run(OptimizeAll.java:47) at org.basex.core.Command.run(Command.java:398) at org.basex.core.Command.execute(Command.java:100) at org.basex.server.ClientListener.run(ClientListener.java:136)
Any idea ? Does this mean my database is corrupted ?
Best,
Christophe