Return-Path: X-Original-To: apmail-db-derby-user-archive@www.apache.org Delivered-To: apmail-db-derby-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 18DE1C19B for ; Mon, 10 Mar 2014 11:50:29 +0000 (UTC) Received: (qmail 30259 invoked by uid 500); 10 Mar 2014 11:50:28 -0000 Delivered-To: apmail-db-derby-user-archive@db.apache.org Received: (qmail 29851 invoked by uid 500); 10 Mar 2014 11:50:22 -0000 Mailing-List: contact derby-user-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Reply-To: "Derby Discussion" Delivered-To: mailing list derby-user@db.apache.org Received: (qmail 29843 invoked by uid 99); 10 Mar 2014 11:50:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Mar 2014 11:50:18 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy includes SPF record at spf.trusted-forwarder.org) Received: from [66.111.4.27] (HELO out3-smtp.messagingengine.com) (66.111.4.27) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Mar 2014 11:50:12 +0000 Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id ABDD320F3C for ; Mon, 10 Mar 2014 07:49:51 -0400 (EDT) Received: from web5 ([10.202.2.215]) by compute4.internal (MEProxy); Mon, 10 Mar 2014 07:49:51 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:from:to:mime-version :content-transfer-encoding:content-type:reply-to:subject:date; s=smtpout; bh=N4az6x9dhZ2RSXKIu405qoRAPqE=; b=qXphwes+I2OSVScfT LN4iQmx1QqkNFnxCuYV2jALryD5pPWfBVlh0IYbvf678Y/lvry/Q/VsWSJ1AL8Qv B5SuwzXGS0o6R7Zx7XlqqyoO0eEJUr0kAlEvi3RyXvsFsSqy3waDNLlb467bRO3u JATbDm5QSySOddiZxWf6++EBng= Received: by web5.nyi.mail.srv.osa (Postfix, from userid 99) id 866FBA6C5F1; Mon, 10 Mar 2014 07:49:51 -0400 (EDT) Message-Id: <1394452191.14450.92614705.7C811579@webmail.messagingengine.com> X-Sasl-Enc: GRFrQk2FsSdxEAxmwVBIt+gKccf91oSR0/NBDToXUykD 1394452191 From: Phil Bradley To: derby-user@db.apache.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Mailer: MessagingEngine.com Webmail Interface - ajax-4527a23f Reply-To: philb@tower.ie Subject: Corrupt database: ArrayIndexOutOfBoundsException on connect Date: Mon, 10 Mar 2014 11:49:51 +0000 X-Virus-Checked: Checked by ClamAV on apache.org Hi, I have a derby database that I am unable to connect to; when I try I get "java.lang.ArrayIndexOutOfBoundsException". The full stack trace is shown below. Firstly, some background: - I'm using derby 10.8.2.2 with a Java Webstart application that connects in embedded mode. The clients are using Java 7u45 on Windows 7, 32 bit - The application is configured to run SYSCS_UTIL.SYSCS_COMPRESS_TABLE() every 5 days on each table on startup - The client was running SYSCS_UTIL.SYSCS_COMPRESS_TABLE() on a particular table and based on the application logs, it looks like either the JVM crashed or the application was ended via task manager. - On subsequent attempts to start the application, the client was unable to connect to the database as per the stack trace below. I have made a copy of the database and I get this error reliably on accessing the copy. I have two questions: 1. Is there anything that I can do to recover from this kind of scenario automatically? 2. Is there any debugging or other investigation that I can do that will help reduce the severity of this kind of problem? Thanks, Phil java.sql.SQLException: Failed to start database 'C:\Users\Administrator\.myapp\myapp_db' with class loader com.sun.jnlp.JNLPClassLoader@1bef5e8, see the next exception for details. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection30.(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection40.(Unknown Source) at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.mycompany.database.DbInitializer.runScript(DbInitializer.java:143) at com.mycompany.myapp.ApplicationRunner.initialiseDb(ApplicationRunner.java:817) at com.mycompany.myapp.ApplicationRunner.startApplication(ApplicationRunner.java:945) at com.mycompany.myapp.ApplicationRunner.run(ApplicationRunner.java:581) at com.mycompany.myapp.ApplicationRunner.main(ApplicationRunner.java:552) at com.mycompany.myapp.ApplicationLoader.main(ApplicationLoader.java:90) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLException: Failed to start database 'C:\Users\Administrator\.myapp\myapp_db' with class loader com.sun.jnlp.JNLPClassLoader@1bef5e8, see the next exception for details. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 27 more Caused by: java.sql.SQLException: Java exception: ': java.lang.ArrayIndexOutOfBoundsException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) ... 24 more Caused by: java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at org.apache.derby.impl.store.raw.data.AllocPage.ReadContainerInfo(Unknown Source) at org.apache.derby.impl.store.raw.data.FileContainer.readHeader(Unknown Source) at org.apache.derby.impl.store.raw.data.RAFContainer.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at org.apache.derby.impl.store.raw.data.RAFContainer.openContainer(Unknown Source) at org.apache.derby.impl.store.raw.data.RAFContainer4.openContainer(Unknown Source) at org.apache.derby.impl.store.raw.data.FileContainer.setIdent(Unknown Source) at org.apache.derby.impl.store.raw.data.FileContainer.setIdentity(Unknown Source) at org.apache.derby.impl.services.cache.ConcurrentCache.find(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openDroppedContainer(Unknown Source) at org.apache.derby.impl.store.raw.xact.Xact.openDroppedContainer(Unknown Source) at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.findContainer(Unknown Source) at org.apache.derby.impl.store.raw.data.ContainerBasicOperation.needsRedo(Unknown Source) at org.apache.derby.impl.store.raw.log.FileLogger.redo(Unknown Source) at org.apache.derby.impl.store.raw.log.LogToFile.recover(Unknown Source) at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source) at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source) at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source) at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source) at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source) at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source) at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.findProviderAndStartService(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.startPersistentService(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.startPersistentService(Unknown Source) ... 24 more 2014-03-08 06:10:59,357 javawsApplicationMain ERROR Initialisation error [40000] [XJ040] Failed to start database 'C:\Users\Administrator\.myapp\myapp_db' with class loader com.sun.jnlp.JNLPClassLoader@1bef5e8, see the next exception for details. 2014-03-08 06:10:59,357 javawsApplicationMain ERROR Initialisation error [0] [XJ001] Java exception: ': java.lang.ArrayIndexOutOfBoundsException'.