Hi,
For information : I experienced the same kind of exception ( ArrayIndexOutOfBoundsException in TableDiskAcces with database corruption) on a regular basis with Basex 7.6.
Since Java update (from jdk7u9 to jdk7u15), I never saw this exception again. Unfortunately, I don't have any explanation. Hope it can help you anyway.
Regards,
Vincent
----- Reply message ----- De : "Marco Lettere" marco.lettere@dedalus.eu Pour : basex-talk@mailman.uni-konstanz.de Objet : [basex-talk] Ugly exception "java.lang.ArrayIndexOutOfBoundsException" Date : mar., févr. 26, 2013 09:58 Independently on how I hard I try, I'm not able to recreate the problem. It happened twice in two following days but now it's no t happening again ...
I've seen that the mail reporting the same exception:
https://mailman.uni-konstanz.de/pipermail/basex-talk/2013-February/004690.ht...
has been faced and solved
https://mailman.uni-konstanz.de/pipermail/basex-talk/2013-February/004734.ht...
Can anyone tell on whether the problem, under the hood, was the same?
Thank you.
M.
On 02/20/2013 01:20 PM, Marco Lettere wrote:
Hi all,
yesterday I stumbled upon a strange bug which today showed up again in the exact same manner.
I wanted to replace, by calling this REST uri (http://localhost:8984/rest/rlus/HCP/rules/CDAReports_rules.xml) from firefox's poster tool, the following resource
<hdataext:extension id="CDA2_REPORT" xmlns:hdataext="urn:dedalus:hdata:extensions" extensionId="CDA2_REPORT" contentType="application/xml">
<hdataext:namespace prefix="hl7v3" href="urn:hl7-org:v3" />
hdataext:documentid$input/cda:id/data(@extension)</hdataext:documentid>
hdataext:documentnameconcat($input/cda:templateId/data(@extension),'_',$input/cda:id/data(@extension),'.cda')</hdataext:documentname>
hdataext:documentrecordconcat($input//cda:patientRole/cda:id[@root='2.16.840.1.113883.2.9.4.3.2']/data(@root),'_',$input//cda:patientRole/cda:id[@root='2.16.840.1.113883.2.9.4.3.2']/data(@extension))</hdataext:documentrecord>
hdataext:documentaddressconcat("http://localhost:8984/rest/%22,$input)</hdataext:documentaddress>
hdataext:documentmetadata()</hdataext:documentmetadata>
</hdataext:extension>
with this one
<hdataext:extension id="CDA2_REPORT" xmlns:hdataext="urn:dedalus:hdata:extensions" extensionId="CDA2_REPORT" contentType="application/xml">
<hdataext:namespace prefix="hl7v3" href="urn:hl7-org:v3" />
<hdataext:namespace prefix="cda" href="urn:hl7-org:v3" />
hdataext:documentid$input/cda:id/data(@extension)</hdataext:documentid>
hdataext:documentnameconcat($input/cda:templateId/data(@extension),'_',$input/cda:id/data(@extension),'.cda')</hdataext:documentname>
hdataext:documentrecordconcat($input//cda:patientRole/cda:id[@root='2.16.840.1.113883.2.9.4.3.2']/data(@root),'_',$input//cda:patientRole/cda:id[@root='2.16.840.1.113883.2.9.4.3.2']/data(@extension))</hdataext:documentrecord>
hdataext:documentaddressconcat("http://localhost:8984/rest/%22,$input)</hdataext:documentaddress>
hdataext:documentmetadata()</hdataext:documentmetadata>
</hdataext:extension>
I got this nasty exception:
Improper use? Potential bug? Your feedback is welcome:
Contact: basex-talk@mailman.uni-konstanz.de
Version: BaseX 7.6
Java: Sun Microsystems Inc., 1.6.0_18
OS: Linux, i386
Stack Trace:
java.lang.ArrayIndexOutOfBoundsException: 2
org.basex.io.random.TableDiskAccess.flush(TableDiskAccess.java:124)
org.basex.data.DiskData.finishUpdate(DiskData.java:212)
org.basex.core.cmd.Replace.run(Replace.java:78)
org.basex.core.Command.run(Command.java:342)
org.basex.core.Command.exec(Command.java:321)
org.basex.core.Command.execute(Command.java:78)
org.basex.core.Command.execute(Command.java:90)
org.basex.server.LocalSession.execute(LocalSession.java:97)
org.basex.server.LocalSession.replace(LocalSession.java:81)
org.basex.http.rest.RESTPut.run(RESTPut.java:59)
org.basex.http.rest.RESTServlet.run(RESTServlet.java:14)
org.basex.http.BaseXServlet.service(BaseXServlet.java:39)
javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648)
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:232)
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:194)
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
org.eclipse.jetty.server.Server.handle(Server.java:365)
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
java.lang.Thread.run(Thread.java:619)
1 resource(s) replaced in 2.47 ms.
and as a MUCH WORSE side effect ... my database is completely messed up. It shows up in the basexgui but when I try to open it nothing happens and the basexgui yields the following exception:
Exception occurred during event dispatching:
java.lang.RuntimeException: Data Access out of bounds:
- pre value: 0
- #used blocks: 0
- #total locks: 0
- access: -1 (0 > -1]
at org.basex.util.Util.notexpected(Util.java:53)
at org.basex.io.random.TableDiskAccess.cursor(TableDiskAccess.java:488)
at org.basex.io.random.TableDiskAccess.read1(TableDiskAccess.java:189)
at org.basex.data.Data.kind(Data.java:283)
at org.basex.query.value.node.DBNode.<init>(DBNode.java:49)
at org.basex.query.value.node.FTPosNode.<init>(FTPosNode.java:22)
at org.basex.data.Nodes.serialize(Nodes.java:227)
at org.basex.data.Nodes.serialize(Nodes.java:222)
at org.basex.gui.view.text.TextView.setText(TextView.java:142)
at org.basex.gui.view.text.TextView.refreshContext(TextView.java:104)
at org.basex.gui.view.text.TextView.refreshInit(TextView.java:90)
at org.basex.gui.view.ViewNotifier.init(ViewNotifier.java:80)
at org.basex.gui.dialog.DialogProgress.execute(DialogProgress.java:204)
at org.basex.gui.dialog.DialogProgress.execute(DialogProgress.java:146)
at org.basex.gui.dialog.DialogProgress.execute(DialogProgress.java:124)
at org.basex.gui.dialog.DialogManage.close(DialogManage.java:249)
at org.basex.gui.dialog.DialogManage.action(DialogManage.java:145)
at org.basex.gui.layout.BaseXButton$1.actionPerformed(BaseXButton.java:39)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at org.basex.gui.layout.BaseXDialog.finish(BaseXDialog.java:111)
at org.basex.gui.dialog.DialogManage.<init>(DialogManage.java:119)
at org.basex.gui.GUICommands$2.execute(GUICommands.java:52)
at org.basex.gui.layout.BaseXButton$3.actionPerformed(BaseXButton.java:95)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
any hints?
Thank you.
M.
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk