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) ).