[ 
https://issues.apache.org/jira/browse/DERBY-4393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12762442#action_12762442
 ] 

Dag H. Wanvik edited comment on DERBY-4393 at 10/6/09 6:53 AM:
---------------------------------------------------------------

I like the idiom of the 

new CleanDatabaseTestSetup(suite) {
            /**
             * Creates the tables used in the test cases.
             * @exception SQLException if a database error occurs
             */
            protected void decorateSQL(Statement s) throws SQLException {
                  // DDL
            }
        }

since, then the cleanup is automatic after each fixture and no convention is 
needed.

* Edited 2009-10-06: Correction: The cleanup happens only after the _entire 
test_ has been run, so it does not solve the problem of the test cases inside 
one test messing up for each other. Another option is to set autocommit off and 
then never commit inside a test case. The teardown method will roll back any 
changes made (Knut's suggestion, thx). *

      was (Author: dagw):
    I like the idiom of the 

new CleanDatabaseTestSetup(suite) {
            /**
             * Creates the tables used in the test cases.
             * @exception SQLException if a database error occurs
             */
            protected void decorateSQL(Statement s) throws SQLException {
                  // DDL
            }
        }

since, then the cleanup is automatic after each fixture and no convention is 
needed.
  
> lang.SequenceTest fails w/ "Sequence 'ALPHA_SEQ' already exists." on 
> phoneME/cvm
> --------------------------------------------------------------------------------
>
>                 Key: DERBY-4393
>                 URL: https://issues.apache.org/jira/browse/DERBY-4393
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.6.0.0
>         Environment: OS:
> Linux .... 32bits
> Linux 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 GNU/Linux
> JVM:
> Product: phoneME Advanced (phoneme_advanced_mr2-b116)
> Profile: Foundation Profile Specification 1.1
> JVM:     CVM phoneme_advanced_mr2-b116 (interpreter loop)
>            Reporter: Ole Solberg
>            Assignee: Ole Solberg
>         Attachments: DERBY-4393_1.diff.txt, DERBY-4393_2.diff.txt, 
> DERBY-4393_3.diff.txt
>
>
> Seen since 2009-09-03. Possibly related to DERBY-4284 / svn 811009?
> See e.g. 
> http://dbtg.foundry.sun.com/derby/test/Daily/javaME/testing/testlog/ubuntu/820325-suitesAll_diff.txt
>  
> 20) 
> testCreateWithSchemaDropWithNoSchema(org.apache.derbyTesting.functionTests.tests.lang.SequenceTest)java.sql.SQLException:
>  Sequence 'ALPHA_SEQ' already exists.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.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 
> org.apache.derbyTesting.functionTests.tests.lang.SequenceTest.testCreateWithSchemaDropWithNoSchema(Unknown
>  Source)
>       at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at sun.misc.CVM.runMain(Unknown Source)
> Caused by: ERROR X0Y68: Sequence 'ALPHA_SEQ' already exists.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateSequenceConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 55 more
> 21) 
> testCreateWithSchemaSpecifiedCreateTrue(org.apache.derbyTesting.functionTests.tests.lang.SequenceTest)java.sql.SQLException:
>  Sequence 'ALPHA_SEQ' already exists.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.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 
> org.apache.derbyTesting.functionTests.tests.lang.SequenceTest.testCreateWithSchemaSpecifiedCreateTrue(Unknown
>  Source)
>       at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at sun.misc.CVM.runMain(Unknown Source)
> Caused by: ERROR X0Y68: Sequence 'ALPHA_SEQ' already exists.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateSequenceConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 55 more
> 22) 
> testCreateWithSchemaSpecified(org.apache.derbyTesting.functionTests.tests.lang.SequenceTest)java.sql.SQLException:
>  Sequence 'ALPHA_SEQ' already exists.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.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 
> org.apache.derbyTesting.functionTests.tests.lang.SequenceTest.testCreateWithSchemaSpecified(Unknown
>  Source)
>       at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at sun.misc.CVM.runMain(Unknown Source)
> Caused by: ERROR X0Y68: Sequence 'ALPHA_SEQ' already exists.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateSequenceConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 55 more
> 23) 
> testImplicitSchemaCreation(org.apache.derbyTesting.functionTests.tests.lang.SequenceTest)java.sql.SQLException:
>  Sequence 'ALPHA_SEQ' already exists.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.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 
> org.apache.derbyTesting.functionTests.tests.lang.SequenceTest.testImplicitSchemaCreation(Unknown
>  Source)
>       at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at sun.misc.CVM.runMain(Unknown Source)
> Caused by: ERROR X0Y68: Sequence 'ALPHA_SEQ' already exists.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateSequenceConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 55 more
> 24) 
> testDropSequence(org.apache.derbyTesting.functionTests.tests.lang.SequenceTest)java.sql.SQLException:
>  Sequence 'MYSEQ1' already exists.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.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 
> org.apache.derbyTesting.functionTests.tests.lang.SequenceTest.testDropSequence(Unknown
>  Source)
>       at org.apache.derbyTesting.junit.BaseTestCase.runBare(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at org.apache.derbyTesting.junit.BaseTestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at junit.extensions.TestDecorator.basicRun(Unknown Source)
>       at junit.extensions.TestSetup$1.protect(Unknown Source)
>       at junit.extensions.TestSetup.run(Unknown Source)
>       at sun.misc.CVM.runMain(Unknown Source)
> Caused by: ERROR X0Y68: Sequence 'MYSEQ1' already exists.
>       at org.apache.derby.iapi.error.StandardException.newException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.sql.execute.CreateSequenceConstantAction.executeConstantAction(Unknown
>  Source)
>       at org.apache.derby.impl.sql.execute.MiscResultSet.open(Unknown Source)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>       at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>       ... 55 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to