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

Rick Hillegas commented on DERBY-4393:
--------------------------------------

This is a familiar problem on the phoneME platform, where the tests run in the 
opposite order that they run on other VMs. When I write test cases, I tackle 
this problem by putting some unique identifier in the name of the test case and 
then incorporating that identifier into the names of all the schema objects 
referenced by the test case. This is a simple way to guarantee that the object 
names won't collide if the tests run in a different order.

So for instance, the first test case would look like this:

    public void test_01_CreateSequence() throws SQLException {
        Statement s = createStatement();
        s.executeUpdate("CREATE SEQUENCE mySeq_01");
    }

An alternative solution would be to put some logic in the tearDown() method to 
destroy the schemas created by the test cases.

I don't recommend putting cleanup logic in the test cases themselves. That 
approach is brittle because a test case can fail before it gets to its cleanup 
logic. The previous two approaches don't have this problem.


> 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