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