It looks like the problem is with the derby.properties file, as it sticks in the file system. Should I delete them, in a special way/order?
2010/3/20, Gabriele Kahlout <[email protected]>: > I quick solution (and actually not dirty) solution I came up with to > break the symmetry is add the timestamp to the name of the testfolder, > where the File variable is shared btw the setUp and tearDown methods. > So the folders still disappear from my file system. > > However, it'd still be interesting to investigate why the above SSCCE > insists on the presence of the db, as the exception indicates. > > However, running it into my code I get a new exception: > > ava.sql.SQLException: Failed to create database '/Volumes/STORE N GO > 1/ws/MemorizEasy/test1269105407561/db.sqlwrapper', 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.createDatabase(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(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(DriverManager.java:582) > at java.sql.DriverManager.getConnection(DriverManager.java:207) > at > com.mysimpatico.sqlwrapper.SqlWrapper.connectToDerby(SqlWrapper.java:174) > at > com.mysimpatico.memorizeasy.engine.Database.init(Database.java:477) > at > com.mysimpatico.memorizeasy.executables.Setup.main(Setup.java:70) > at > com.mysimpatico.memorizeasy.DatabaseTest.setUp(DatabaseTest.java:111) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888) > Caused by: java.sql.SQLException: Failed to create database > '/Volumes/STORE N GO > 1/ws/MemorizEasy/test1269105407561/db.sqlwrapper', 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) > ... 37 more > Caused by: java.sql.SQLException: Startup failed due to an exception. > See next exception for details. > 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.seeNextException(Unknown Source) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown > Source) > ... 34 more > Caused by: java.sql.SQLException: Java exception: ': > java.nio.channels.OverlappingFileLockException'. > 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) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > ... 37 more > Caused by: java.nio.channels.OverlappingFileLockException > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1170) > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1072) > at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:878) > at java.nio.channels.FileChannel.tryLock(FileChannel.java:962) > at org.apache.derby.impl.io.DirFile4.getExclusiveFileLock(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown > Source) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.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.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.createPersistentService(Unknown > Source) > at > org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown > Source) > ... 34 more > java.sql.SQLException: Startup failed due to an exception. See 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.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(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(DriverManager.java:582) > at java.sql.DriverManager.getConnection(DriverManager.java:207) > at > com.mysimpatico.sqlwrapper.SqlWrapper.connectToDerby(SqlWrapper.java:174) > at > com.mysimpatico.memorizeasy.engine.Database.init(Database.java:477) > at > com.mysimpatico.memorizeasy.executables.Setup.main(Setup.java:70) > at > com.mysimpatico.memorizeasy.DatabaseTest.setUp(DatabaseTest.java:111) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888) > Caused by: java.sql.SQLException: Startup failed due to an exception. > See next exception for details. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown > Source) > ... 40 more > Caused by: java.sql.SQLException: Java exception: ': > java.nio.channels.OverlappingFileLockException'. > 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) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > ... 37 more > Caused by: java.nio.channels.OverlappingFileLockException > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1170) > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1072) > at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:878) > at java.nio.channels.FileChannel.tryLock(FileChannel.java:962) > at org.apache.derby.impl.io.DirFile4.getExclusiveFileLock(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown > Source) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.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.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.createPersistentService(Unknown > Source) > at > org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown > Source) > ... 34 more > java.sql.SQLException: Java exception: ': > java.nio.channels.OverlappingFileLockException'. > 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) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown > Source) > at > org.apache.derby.impl.jdbc.EmbedConnection.createDatabase(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(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(DriverManager.java:582) > at java.sql.DriverManager.getConnection(DriverManager.java:207) > at > com.mysimpatico.sqlwrapper.SqlWrapper.connectToDerby(SqlWrapper.java:174) > at > com.mysimpatico.memorizeasy.engine.Database.init(Database.java:477) > at > com.mysimpatico.memorizeasy.executables.Setup.main(Setup.java:70) > at > com.mysimpatico.memorizeasy.DatabaseTest.setUp(DatabaseTest.java:111) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888) > Caused by: java.sql.SQLException: Java exception: ': > java.nio.channels.OverlappingFileLockException'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown > Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown > Source) > ... 41 more > Caused by: java.nio.channels.OverlappingFileLockException > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1170) > at > sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1072) > at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:878) > at java.nio.channels.FileChannel.tryLock(FileChannel.java:962) > at org.apache.derby.impl.io.DirFile4.getExclusiveFileLock(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown > Source) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown > Source) > at > org.apache.derby.impl.store.raw.data.BaseDataFileFactory.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.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.createPersistentService(Unknown > Source) > at > org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown > Source) > ... 34 more > Sat Mar 20 18:16:53 Gabriele-Kahlouts-MacBook.local java[6566] > <Error>: kCGErrorIllegalArgument: CGSOrderWindowList > Sat Mar 20 18:16:53 Gabriele-Kahlouts-MacBook.local java[6566] > <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to > catch errors as they are logged. > Test com.mysimpatico.memorizeasy.DatabaseTest FAILED (crashed) > /Volumes/STORE N GO 1/ws/MemorizEasy/nbproject/build-impl.xml:706: > Some tests failed; see details above. > > Any clues? > > > > 2010/3/20, Gabriele Kahlout <[email protected]>: >> Well, did u try it? The result is the same, run on the same code >> example I gave above but replacing it with you method. >> >> >> >> 2010/3/20, Peter Ondruška <[email protected]>: >>> IMHO your deleteDir method is not deleting anything. See >>> http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#delete() >>> >>> It should be something like: >>> >>> void delete(File f){ >>> if (f.isDirectory()) >>> for (File sf: f.listFiles()) delete(sf); >>> f.delete(); >>> } >>> >>> On Sat, Mar 20, 2010 at 1:05 PM, Gabriele Kahlout >>> <[email protected]> wrote: >>>> any updates? This is bogging me down. >>>> >>>> 2010/3/19, Gabriele Kahlout <[email protected]>: >>>>> Here is the code for wrapper methods that might be incorrect: >>>>> >>>>> public final static Connection connectToDerby(final File parentPath, >>>>> final boolean create) throws InstantiationException, >>>>> IllegalAccessException, ClassNotFoundException, SQLException { >>>>> // Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); >>>>> final Connection con = >>>>> DriverManager.getConnection("jdbc:derby:" + parentPath.getPath() + >>>>> File.separator + "db.sqlwrapper;create=" + create); >>>>> return con; >>>>> } >>>>> >>>>> public static boolean shutDownDerby() { >>>>> try { >>>>> Connection con = connectToDerby(); >>>>> con.close(); >>>>> con = >>>>> DriverManager.getConnection("jdbc:derby:db.sqlwrapper;shutdown=true"); >>>>> >>>>> } catch (SQLException e) { // with throw exception on >>>>> successful deletion. >>>>> return true; >>>>> } >>>>> return false; >>>>> } >>>>> >>>>> 2010/3/19, Gabriele Kahlout <[email protected]>: >>>>>> Here is the shortest test that shows the problem: >>>>>> >>>>>> import com.mysimpatico.sqlwrapper.*; >>>>>> import java.io.File; >>>>>> import java.sql.*; >>>>>> >>>>>> /* >>>>>> * To change this template, choose Tools | Templates >>>>>> * and open the template in the editor. >>>>>> */ >>>>>> /** >>>>>> * >>>>>> * @author simpatico >>>>>> */ >>>>>> public class DbDeletionTest { >>>>>> >>>>>> public static boolean deleteDir(File dir) { >>>>>> if (dir.isDirectory()) { >>>>>> String[] children = dir.list(); >>>>>> for (int i = 0; i < children.length; i++) { >>>>>> boolean success = deleteDir(new File(dir, >>>>>> children[i])); >>>>>> if (!success) { >>>>>> return false; >>>>>> } >>>>>> } // The directory is now empty so delete it return >>>>>> dir.delete(); } >>>>>> } >>>>>> return dir.delete(); >>>>>> } >>>>>> >>>>>> public static void test() throws Exception { >>>>>> final File dir = new File("test"); >>>>>> dir.mkdir(); >>>>>> final Connection con = SqlWrapper.connectToDerby(dir, true); >>>>>> final Statement st = con.createStatement(); >>>>>> SqlWrapper.setVendor(SqlWrapper.vendor.JAVADB); >>>>>> >>>>>> final String expTableName = "Expressions"; >>>>>> final String exp = "expression"; >>>>>> final ReferencedColumn expColumn = new ReferencedColumn(exp, >>>>>> SqlWrapper.VARCHAR, 100); >>>>>> final Table expTable = new Table(expTableName, expColumn, >>>>>> expColumn); >>>>>> st.executeUpdate(SqlWrapper.create(expTable)); >>>>>> con.close(); >>>>>> SqlWrapper.shutDownDerby(); >>>>>> deleteDir(dir); >>>>>> System.out.println("test executed."); >>>>>> >>>>>> } >>>>>> >>>>>> public static void main(String[] args) { >>>>>> try { >>>>>> test(); >>>>>> test(); >>>>>> } >>>>>> catch (Exception e) { >>>>>> e.printStackTrace(); >>>>>> } >>>>>> } >>>>>> } >>>>>> The libraries needed are: derby.jar, SqlWrapper.jar (just wraps >>>>>> around >>>>>> sql statements, u can replace it with sql strings). >>>>>> http://memorizeasy.googlecode.com/svn/tags/live/lib/derby.jar >>>>>> http://memorizeasy.googlecode.com/svn/tags/live/lib/sqlwrapper.jar >>>>>> >>>>>> The output is: >>>>>> test executed. >>>>>> Shutting down due to severe error. >>>>>> java.sql.SQLException: Table/View 'EXPRESSIONS' already exists in >>>>>> Schema >>>>>> 'APP'. >>>>>> at >>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown >>>>>> Source) >>>>>> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown >>>>>> Source) >>>>>> at DbDeletionTest.test(DbDeletionTest.java:42) >>>>>> at DbDeletionTest.main(DbDeletionTest.java:53) >>>>>> Caused by: java.sql.SQLException: Table/View 'EXPRESSIONS' already >>>>>> exists in Schema 'APP'. >>>>>> at >>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown >>>>>> Source) >>>>>> at >>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown >>>>>> Source) >>>>>> >>>>>> 2010/3/19, Gabriele Kahlout <[email protected]>: >>>>>>> 'rm -R myDbDirectory' in *nix' >>>>>>> How do you programmatically, from java do that (OS independent)? >>>>>>> What I do is I iterate over the db folder and delete all contents, >>>>>>> as >>>>>>> returned by the java.io API. >>>>>>> >>>>>>> However, even doing that seems not sufficient. >>>>>>> I see that the test folder (the one that contains db.sqlwrapper) is >>>>>>> deleted after the first test, and created in the setup of the next. >>>>>>> However, I get: >>>>>>> >>>>>>> Caused by: ERROR X0Y32: Table/View 'EXPRESSIONS' already exists in >>>>>>> Schema >>>>>>> 'APP'. >>>>>>> >>>>>>> I think it has to do with the copy in memory not being updated with >>>>>>> the disk. That is because through the debugger, I've even manually >>>>>>> deleted the db, but to no avail. >>>>>>> Maybe this is more of a Java question now: >>>>>>> How do I make sure the memory is flushed/sync with the disk? Or that >>>>>>> derby, when creating a connection is not fooled by the cache in >>>>>>> memory? >>>>>>> >>>>>>> >>>>>>> 2010/3/19, Kristian Waagan <[email protected]>: >>>>>>>> On 19.03.10 10:11, Gabriele Kahlout wrote: >>>>>>>>> Also, I've copied from the code what I seem to need, and then end >>>>>>>>> up >>>>>>>>> with when I use the db again in a 2nd method. >>>>>>>>> >>>>>>>>> Caused by: java.sql.SQLException: Database '/Volumes/STORE N >>>>>>>>> GO/ws/MemorizEasy/test/db.sqlwrapper' not found. >>>>>>>>> >>>>>>>>> Note that after destroying the schemas, I shut down the db, and >>>>>>>>> delete >>>>>>>>> the test folder of the previous method. >>>>>>>>> >>>>>>>> >>>>>>>> Hi Gabriele, >>>>>>>> >>>>>>>> I don't know the requirements of your application, but note that in >>>>>>>> general you have three options: >>>>>>>> >>>>>>>> - clean the database and reuse it >>>>>>>> This is what we're doing in the Derby test framework (see the >>>>>>>> class >>>>>>>> that Bryan pointed to), because it would take much longer to >>>>>>>> actually >>>>>>>> delete and recreate the database files all the time. Here we use >>>>>>>> meta-data to detect all objects added to the database during the >>>>>>>> test, >>>>>>>> and then we drop them. >>>>>>>> >>>>>>>> - simply just delete the database on disk (i.e. 'rm -R >>>>>>>> myDbDirectory' >>>>>>>> in *nix) and create a new one for the next test (through JDBC, >>>>>>>> using >>>>>>>> 'jdbc:derby:...;create=true'). >>>>>>>> You should shut down the database before deleting the files on >>>>>>>> disk. >>>>>>>> >>>>>>>> - if you just need a database for a short period of time or >>>>>>>> similar, >>>>>>>> use an in-memory db. >>>>>>>> Remember to drop it [1] to free up the memory. >>>>>>>> >>>>>>>> It's hard to tell exactly what went wrong above, but are you sure >>>>>>>> the >>>>>>>> database is still on disk? >>>>>>>> Can you locate the directory? (you should see the directories >>>>>>>> db.sqlwrapper, db.sqlwrapper/seg0 and db.sqlwrapper/log) >>>>>>>> If not, why did it get deleted? >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Kristian >>>>>>>> >>>>>>>> [1] Note that proper support for this is added in 10.6, by using >>>>>>>> the >>>>>>>> "drop=true" attribute. In 10.5, the mechanism is different. >>>>>>>> >>>>>>>>> 2010/3/18, Gabriele Kahlout<[email protected]>: >>>>>>>>> >>>>>>>>>> I reached here: >>>>>>>>>> http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/CleanDatabaseTestSetup.java?view=markup >>>>>>>>>> >>>>>>>>>> But then what do I do? The code relies on some other class, and >>>>>>>>>> it >>>>>>>>>> seems like I'd have to import the whole package to use it. Is >>>>>>>>>> that >>>>>>>>>> it? >>>>>>>>>> Besides that one cannot delete the APP schema (which is the one i >>>>>>>>>> use), while the code seems to want to do that. >>>>>>>>>> If not, is there how I can use this without concerning myself >>>>>>>>>> with >>>>>>>>>> the >>>>>>>>>> impl. details? >>>>>>>>>> >>>>>>>>>> 2010/3/18, Gabriele Kahlout<[email protected]>: >>>>>>>>>> >>>>>>>>>>> Can you provide a link to it? Also, is it in some library I >>>>>>>>>>> could >>>>>>>>>>> use? >>>>>>>>>>> >>>>>>>>>>> 2010/3/18, Bryan Pendleton<[email protected]>: >>>>>>>>>>> >>>>>>>>>>>>> For testing, how can I make sure the tearDown completely >>>>>>>>>>>>> deletes >>>>>>>>>>>>> the >>>>>>>>>>>>> db, and setUp creates a completely new copy, without using >>>>>>>>>>>>> in-memory >>>>>>>>>>>>> db? >>>>>>>>>>>>> >>>>>>>>>>>> We do this in the Derby regression test suite. >>>>>>>>>>>> >>>>>>>>>>>> Have a look at >>>>>>>>>>>> org.apache.derbyTesting.functionTests.junit.CleanDatabaseTestSetup.java >>>>>>>>>>>> >>>>>>>>>>>> thanks, >>>>>>>>>>>> >>>>>>>>>>>> bryan >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Regards, >>>>>>>>>>> K. Gabriele >>>>>>>>>>> >>>>>>>>>>> --- unchanged since 25/1/10 --- >>>>>>>>>>> P.S. Unless a notification (LON), please reply either with an >>>>>>>>>>> answer >>>>>>>>>>> OR with " ACK" appended to this subject within 48 hours. >>>>>>>>>>> Otherwise, >>>>>>>>>>> I >>>>>>>>>>> might resend. >>>>>>>>>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ >>>>>>>>>>> IsAnswerTo(x, >>>>>>>>>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>>>>>>>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>>>>>>>>> >>>>>>>>>>> Also note that correspondence may be received only from >>>>>>>>>>> specified >>>>>>>>>>> a >>>>>>>>>>> priori senders, or if the subject of this email ends with a >>>>>>>>>>> code, >>>>>>>>>>> eg. >>>>>>>>>>> -LICHT01X, then also from senders whose reply contains it. >>>>>>>>>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ >>>>>>>>>>> (∃y. >>>>>>>>>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Regards, >>>>>>>>>> K. Gabriele >>>>>>>>>> >>>>>>>>>> --- unchanged since 25/1/10 --- >>>>>>>>>> P.S. Unless a notification (LON), please reply either with an >>>>>>>>>> answer >>>>>>>>>> OR with " ACK" appended to this subject within 48 hours. >>>>>>>>>> Otherwise, >>>>>>>>>> I >>>>>>>>>> might resend. >>>>>>>>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ >>>>>>>>>> IsAnswerTo(x, >>>>>>>>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>>>>>>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>>>>>>>> >>>>>>>>>> Also note that correspondence may be received only from specified >>>>>>>>>> a >>>>>>>>>> priori senders, or if the subject of this email ends with a code, >>>>>>>>>> eg. >>>>>>>>>> -LICHT01X, then also from senders whose reply contains it. >>>>>>>>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ >>>>>>>>>> (∃y. >>>>>>>>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Regards, >>>>>>> K. Gabriele >>>>>>> >>>>>>> --- unchanged since 25/1/10 --- >>>>>>> P.S. Unless a notification (LON), please reply either with an answer >>>>>>> OR with " ACK" appended to this subject within 48 hours. Otherwise, >>>>>>> I >>>>>>> might resend. >>>>>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ >>>>>>> IsAnswerTo(x, >>>>>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>>>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>>>>> >>>>>>> Also note that correspondence may be received only from specified a >>>>>>> priori senders, or if the subject of this email ends with a code, >>>>>>> eg. >>>>>>> -LICHT01X, then also from senders whose reply contains it. >>>>>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. >>>>>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Regards, >>>>>> K. Gabriele >>>>>> >>>>>> --- unchanged since 25/1/10 --- >>>>>> P.S. Unless a notification (LON), please reply either with an answer >>>>>> OR with " ACK" appended to this subject within 48 hours. Otherwise, I >>>>>> might resend. >>>>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, >>>>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>>>> >>>>>> Also note that correspondence may be received only from specified a >>>>>> priori senders, or if the subject of this email ends with a code, eg. >>>>>> -LICHT01X, then also from senders whose reply contains it. >>>>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. >>>>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>>>> >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> K. Gabriele >>>>> >>>>> --- unchanged since 25/1/10 --- >>>>> P.S. Unless a notification (LON), please reply either with an answer >>>>> OR with " ACK" appended to this subject within 48 hours. Otherwise, I >>>>> might resend. >>>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, >>>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>>> >>>>> Also note that correspondence may be received only from specified a >>>>> priori senders, or if the subject of this email ends with a code, eg. >>>>> -LICHT01X, then also from senders whose reply contains it. >>>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. >>>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>>> >>>> >>>> >>>> -- >>>> Regards, >>>> K. Gabriele >>>> >>>> --- unchanged since 25/1/10 --- >>>> P.S. Unless a notification (LON), please reply either with an answer >>>> OR with " ACK" appended to this subject within 48 hours. Otherwise, I >>>> might resend. >>>> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, >>>> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >>>> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >>>> >>>> Also note that correspondence may be received only from specified a >>>> priori senders, or if the subject of this email ends with a code, eg. >>>> -LICHT01X, then also from senders whose reply contains it. >>>> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. >>>> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >>>> >>> >> >> >> -- >> Regards, >> K. Gabriele >> >> --- unchanged since 25/1/10 --- >> P.S. Unless a notification (LON), please reply either with an answer >> OR with " ACK" appended to this subject within 48 hours. Otherwise, I >> might resend. >> In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, >> this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ >> ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). >> >> Also note that correspondence may be received only from specified a >> priori senders, or if the subject of this email ends with a code, eg. >> -LICHT01X, then also from senders whose reply contains it. >> ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. >> In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). >> > > > -- > Regards, > K. Gabriele > > --- unchanged since 25/1/10 --- > P.S. Unless a notification (LON), please reply either with an answer > OR with " ACK" appended to this subject within 48 hours. Otherwise, I > might resend. > In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, > this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ > ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). > > Also note that correspondence may be received only from specified a > priori senders, or if the subject of this email ends with a code, eg. > -LICHT01X, then also from senders whose reply contains it. > ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. > In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ). > -- Regards, K. Gabriele --- unchanged since 25/1/10 --- P.S. Unless a notification (LON), please reply either with an answer OR with " ACK" appended to this subject within 48 hours. Otherwise, I might resend. In(LON, this) ∨ In(48h, TimeNow) ∨ ∃x. In(x, MyInbox) ∧ IsAnswerTo(x, this) ∨ (In(subject(this), subject(x)) ∧ In(ACK, subject(x)) ∧ ¬IsAnswerTo(x,this)) ⇒ ¬IResend(this). Also note that correspondence may be received only from specified a priori senders, or if the subject of this email ends with a code, eg. -LICHT01X, then also from senders whose reply contains it. ∀x. In(x, MyInbox) ⇒ In(senderAddress(x), MySafeSenderList) ∨ (∃y. In(y, subject(this) ) ∧ In(y,x) ∧ isCodeLike(y, -LICHT01X) ).
