db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Van Couvering <david.vancouver...@gmail.com>
Subject Re: cleaning database between test cases
Date Wed, 24 Mar 2010 18:31:56 GMT
Yes, I've also noticed that deleting the directory doesn't work, as locks
are held even after the test ends.

What I have to do is drop all the tables I am using.  You can use
DatabaseMetaData to query for all tables that exist in your schema, and then
drop them all.

See http://stackoverflow.com/questions/171727/delete-all-tables-in-derby-db for
more help on this topic.

David

On Wed, Mar 24, 2010 at 11:21 AM, Gabriele Kahlout <gabriele@mysimpatico.com
> wrote:

> anyone?
>
> 2010/3/21, Gabriele Kahlout <gabriele@mysimpatico.com>:
> > or @Ignore.
> >
> > Folks, pls explain where does this come from, and best of all how to
> > solve it. It seems that some locks stick into the VM, and are not
> > deleted by shutdown and deletion of the db.
> >
> > 2010/3/21, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >> If I execute each test, one a time (so the VM quits) everything works.
> >> However, what a pain to comment each test, but the one I want to
> >> execute.
> >>
> >> 2010/3/21, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >>> There is definetely some problem with Junit tests and apache derby.
> >>>
> >>> I've pasted the same code but as an exe file (where I do the setup and
> >>> teardown) and there it works flawlessly.
> >>>
> >>> Consider:
> >>>
> >>> /*
> >>>  * To change this template, choose Tools | Templates
> >>>  * and open the template in the editor.
> >>>  */
> >>>
> >>> package com.mysimpatico.memorizeasy;
> >>> import static org.junit.Assert.*;
> >>>
> >>> import java.io.File;
> >>> import java.sql.*;
> >>> import junit.extensions.PrivilegedAccessor;
> >>> import org.junit.*;
> >>> import com.mysimpatico.memorizeasy.engine.Database;
> >>> import com.mysimpatico.memorizeasy.executables.Setup;
> >>> import com.mysimpatico.sqlwrapper.*;
> >>>
> >>>
> >>> /**
> >>>  *
> >>>  * @author simpatico
> >>>  */
> >>> public class DatabaseTest1 {
> >>>
> >>>         private static final int n = 3; //should be less than 4000,
> 1000
> >>>     public final static String getConnection = "getConnection(final
> >>> boolean autoCommit) throws Exception";
> >>>     public final static String publish = "publish(final int cycleNo)";
> >>>     public final static String getMaxLastPubBatch =
> >>> "getMaxLastPubBatch()";
> >>>     public final static String getMaxBatch = "getMaxBatch()";
> >>>     public final static String init = "init";
> >>>
> >>>     public final static String refTable = "refTable";
> >>>     public final static String expTable = "expTable";
> >>>     public final static String objTable = "objTable";
> >>>     public final static String batColumn = "batColumn";
> >>>     public final static String lastPubColumn = "lastPubColumn";
> >>>     public final static String batTable = "batTable";
> >>>     public final static String expColumn = "expColumn";
> >>>     public final static String wColumn = "wColumn";
> >>>     public final static String genderColumn = "genderColumn";
> >>>     public final static String testMaterial = "testMaterial";
> >>>     private final static File csv = new File(testMaterial +
> >>> File.separatorChar + "dict.csv");
> >>>     private static File dir;
> >>>     public static String test = "test";
> >>>
> >>>     static void deleteDir(File f) {
> >>>         if (f.isDirectory()) {
> >>>             for (File sf : f.listFiles()) {
> >>>                 deleteDir(sf);
> >>>             }
> >>>         }
> >>>         f.delete();
> >>>     }
> >>>
> >>>     public DatabaseTest1() {
> >>>     }
> >>>
> >>>     @BeforeClass
> >>>     public static void setUpClass() throws Exception {
> >>>     }
> >>>
> >>>     @AfterClass
> >>>     public static void tearDownClass() throws Exception {
> >>>     }
> >>>
> >>>     @Before
> >>>     public void setUp() {
> >>>          dir = new File(test + System.currentTimeMillis());
> >>>         dir.mkdir();
> >>>         Setup.main(new String[]{Setup.test, dir.getAbsolutePath()});
> >>>        // Database.init(dir);
> >>>     }
> >>>
> >>>     @After
> >>>     public void tearDown() {
> >>>        SqlWrapper.shutDownDerby();
> >>>        // new File(dir, "derby.properties").delete();
> >>>        deleteDir(dir);
> >>>     }
> >>>
> >>>     // TODO add test methods here.
> >>>     // The methods must be annotated with annotation @Test. For
> example:
> >>>     //
> >>>      @Test
> >>>     public void testGetMaxLastPubBatch() {
> >>>
> >>>          try {
> >>>             final Table batTable = (Table)
> >>> PrivilegedAccessor.getValue(Database.class, DatabaseTest.batTable);
> >>>             final int unwanted = (Integer)
> >>> PrivilegedAccessor.getValue(Database.class, "unwanted");
> >>>             int ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(unwanted, ret); // empty batTable returns
> >>> unwanted
> >>>
> >>>             final Connection con = (Connection)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getConnection, true);
> >>>             final Statement st = con.createStatement();
> >>>             int res = st.executeUpdate(SqlWrapper.insert(batTable));
> >>>             assertEquals(1, res);
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(SqlWrapper.index - 1, ret); // batTable with
> >>> single unpublished batch returns SqlWrapper.index-1;
> >>>             assertEquals(0, SqlWrapper.index - 1);
> >>>             PrivilegedAccessor.invokeMethod(Database.class, publish,
> >>> 1); //publish batch
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(1, ret); // batTable with single published
> >>> batch returns 1
> >>>
> >>>             int res2 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>             assertEquals(1, res2);
> >>>
> >>>             for (int i = SqlWrapper.index; i <= n; i++) {
> >>>                 int res1 =
> >>> st.executeUpdate(SqlWrapper.insert(batTable));
> >>>                 assertEquals(1, res1);
> >>>                 final int ret1 = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>                 assertEquals(0, ret1); //batTable with n batch not
> >>> published should return 0
> >>>             }
> >>>
> >>>             int res3 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>             assertEquals(n, res3);
> >>>             con.close();
> >>>         } catch (Exception e) {
> >>>             e.printStackTrace();
> >>>             SqlWrapper.printHistory();
> >>>             fail();
> >>>         }
> >>>     }
> >>>
> >>>       @Test
> >>>     public void testGetMaxLastPubBatch1() {
> >>>          try {
> >>>             final Table batTable = (Table)
> >>> PrivilegedAccessor.getValue(Database.class, DatabaseTest.batTable);
> >>>             final int unwanted = (Integer)
> >>> PrivilegedAccessor.getValue(Database.class, "unwanted");
> >>>             int ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(unwanted, ret); // empty batTable returns
> >>> unwanted
> >>>
> >>>             final Connection con = (Connection)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getConnection, true);
> >>>             final Statement st = con.createStatement();
> >>>             int res = st.executeUpdate(SqlWrapper.insert(batTable));
> >>>             assertEquals(1, res);
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(SqlWrapper.index - 1, ret); // batTable with
> >>> single unpublished batch returns SqlWrapper.index-1;
> >>>             assertEquals(0, SqlWrapper.index - 1);
> >>>             PrivilegedAccessor.invokeMethod(Database.class, publish,
> >>> 1); //publish batch
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>             assertEquals(1, ret); // batTable with single published
> >>> batch returns 1
> >>>
> >>>             int res2 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>             assertEquals(1, res2);
> >>>
> >>>             for (int i = SqlWrapper.index; i <= n; i++) {
> >>>                 int res1 =
> >>> st.executeUpdate(SqlWrapper.insert(batTable));
> >>>                 assertEquals(1, res1);
> >>>                 final int ret1 = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>                 assertEquals(0, ret1); //batTable with n batch not
> >>> published should return 0
> >>>             }
> >>>
> >>>             int res3 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>             assertEquals(n, res3);
> >>>             con.close();
> >>>         } catch (Exception e) {
> >>>             e.printStackTrace();
> >>>             SqlWrapper.printHistory();
> >>>             fail();
> >>>         }
> >>>     }
> >>>
> >>> }
> >>>
> >>> ------ and now the exec file: --------
> >>>
> >>>
> >>> import com.mysimpatico.memorizeasy.engine.Database;
> >>> import com.mysimpatico.memorizeasy.executables.Setup;
> >>>
> >>> import com.mysimpatico.sqlwrapper.*;
> >>> import java.io.File;
> >>> import java.sql.*;
> >>> import junit.extensions.PrivilegedAccessor;
> >>>
> >>> /*
> >>>  * To change this template, choose Tools | Templates
> >>>  * and open the template in the editor.
> >>>  */
> >>> /**
> >>>  *
> >>>  * @author simpatico
> >>>  */
> >>> public class DbDeletionTest {
> >>>
> >>>      public final static String getConnection = "getConnection(final
> >>> boolean autoCommit) throws Exception";
> >>>     public final static String publish = "publish(final int cycleNo)";
> >>>     public final static String getMaxLastPubBatch =
> >>> "getMaxLastPubBatch()";
> >>>     public final static String getMaxBatch = "getMaxBatch()";
> >>>     public final static String init = "init";
> >>>
> >>>     public final static String refTable = "refTable";
> >>>     public final static String expTable = "expTable";
> >>>     public final static String objTable = "objTable";
> >>>     public final static String batColumn = "batColumn";
> >>>     public final static String lastPubColumn = "lastPubColumn";
> >>>     public final static String batTable = "batTable";
> >>>     public final static String expColumn = "expColumn";
> >>>     public final static String wColumn = "wColumn";
> >>>     public final static String genderColumn = "genderColumn";
> >>>     public final static String testMaterial = "testMaterial";
> >>>     private final static File csv = new File(testMaterial +
> >>> File.separatorChar + "dict.csv");
> >>>
> >>>     /*  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();
> >>>     }*/
> >>>    static void deleteDir(File f) {
> >>>         if (f.isDirectory()) {
> >>>             for (File sf : f.listFiles()) {
> >>>                 deleteDir(sf);
> >>>             }
> >>>         }
> >>>         f.delete();
> >>>     }
> >>>
> >>>
> >>>     static void test() throws Exception {
> >>>         final File dir = new File("test" + System.currentTimeMillis());
> >>>         dir.mkdir();
> >>>        Setup.main(new String[]{"test", dir.getAbsolutePath()});
> >>>
> >>>        int n = 3;
> >>>        try {
> >>>             final Table batTable = (Table)
> >>> PrivilegedAccessor.getValue(Database.class, DbDeletionTest.batTable);
> >>>             final int unwanted = (Integer)
> >>> PrivilegedAccessor.getValue(Database.class, "unwanted");
> >>>             int ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>            // assertEquals(unwanted, ret); // empty batTable returns
> >>> unwanted
> >>>
> >>>             final Connection con = (Connection)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getConnection, true);
> >>>             final Statement st = con.createStatement();
> >>>             int res = st.executeUpdate(SqlWrapper.insert(batTable));
> >>>            // assertEquals(1, res);
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>           //  assertEquals(SqlWrapper.index - 1, ret); // batTable
> >>> with single unpublished batch returns SqlWrapper.index-1;
> >>>           //  assertEquals(0, SqlWrapper.index - 1);
> >>>             PrivilegedAccessor.invokeMethod(Database.class, publish,
> >>> 1); //publish batch
> >>>             ret = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>         //    assertEquals(1, ret); // batTable with single published
> >>> batch returns 1
> >>>
> >>>             int res2 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>        //     assertEquals(1, res2);
> >>>
> >>>             for (int i = SqlWrapper.index; i <= n; i++) {
> >>>                 int res1 =
> >>> st.executeUpdate(SqlWrapper.insert(batTable));
> >>>        //         assertEquals(1, res1);
> >>>                 final int ret1 = (Integer)
> >>> PrivilegedAccessor.invokeMethod(Database.class, getMaxLastPubBatch);
> >>>
> >>>                 //assertEquals(0, ret1); //batTable with n batch not
> >>> published should return 0
> >>>             }
> >>>
> >>>             int res3 =
> st.executeUpdate(SqlWrapper.deleteAll(batTable));
> >>>          //   assertEquals(n, res3);
> >>>             con.close();
> >>>         } catch (Exception e) {
> >>>             e.printStackTrace();
> >>>             SqlWrapper.printHistory();
> >>>           //  fail();
> >>>         }
> >>>
> >>>         SqlWrapper.shutDownDerby();
> >>>         deleteDir(dir);
> >>>         System.out.println("test executed.");
> >>>
> >>>     }
> >>>
> >>>     public static void main(String[] args) {
> >>>         try {
> >>>             test();
> >>>             test();
> >>>         } catch (Exception e) {
> >>>             e.printStackTrace();
> >>>         }
> >>>     }
> >>> }
> >>>
> >>>
> >>> 2010/3/20, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >>>> Why does the exception say what is this File on which this
> >>>> OverlappingFileLockException is occuring, so that I can sort it out?
> >>>>
> >>>> 2010/3/20, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >>>>> not really, commenting the derby.properties code still results in the
> >>>>> same exception.
> >>>>>
> >>>>> 2010/3/20, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >>>>>> 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 <gabriele@mysimpatico.com>:
> >>>>>>> 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 <gabriele@mysimpatico.com>:
> >>>>>>>> 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 <peter.ondruska@gmail.com>:
> >>>>>>>>> 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
> >>>>>>>>> <gabriele@mysimpatico.com> wrote:
> >>>>>>>>>> any updates? This is bogging me down.
> >>>>>>>>>>
> >>>>>>>>>> 2010/3/19, Gabriele Kahlout <gabriele@mysimpatico.com>:
> >>>>>>>>>>> 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 <gabriele@mysimpatico.com>:
> >>>>>>>>>>>> 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 <gabriele@mysimpatico.com>:
> >>>>>>>>>>>>> '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 <Kristian.Waagan@sun.com>:
> >>>>>>>>>>>>>> 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<gabriele@mysimpatico.com>:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> 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<gabriele@mysimpatico.com>:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Can you provide a link to it? Also, is it in some library
> >>>>>>>>>>>>>>>>> I
> >>>>>>>>>>>>>>>>> could
> >>>>>>>>>>>>>>>>> use?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> 2010/3/18, Bryan Pendleton<bpendleton.derby@gmail.com>:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> 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) ).
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> 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) ).
>



-- 
David W. Van Couvering

http://www.linkedin.com/in/davidvc
http://davidvancouvering.blogspot.com
http://twitter.com/dcouvering

Mime
View raw message