db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gabriele Kahlout <gabri...@mysimpatico.com>
Subject Re: cleaning database between test cases
Date Sun, 21 Mar 2010 11:27:01 GMT
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) ).

Mime
View raw message