[ https://issues.apache.org/jira/browse/DERBY-4122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Suran Jayathilaka closed DERBY-4122. ------------------------------------ Verified the fix with Snapshot build 10.5.1.1_2009-04-07T20-30-19_SVN762838 by running suites.All on a soft upgrade. The ClassCastException failures did not occur. > ClassCastException in SQLClob when running in soft upgrade mode (10.4.2.0 -> > 10.5.1.0) > -------------------------------------------------------------------------------------- > > Key: DERBY-4122 > URL: https://issues.apache.org/jira/browse/DERBY-4122 > Project: Derby > Issue Type: Bug > Components: Regression Test Failure > Affects Versions: 10.5.1.0 > Environment: Windows Vista 64, Sun JDK 1.6.0_10, Junit 3.8.2 > Reporter: Suran Jayathilaka > Assignee: Kristian Waagan > Priority: Blocker > Fix For: 10.5.1.1, 10.6.0.0 > > Attachments: derby-4122-1a-incorrect_stream_positioning.diff, > derby-4122-2a-bc4btest.diff, derby-4122-3a-classcast_fix.diff, > derby-4122-3b-classcast_fix.diff, > derby-4122-4a-classcast_fix_mark_reset.diff, > derby-4122-4b-classcast_fix_mark_reset.diff, > derby-4122-4c-classcast_fix_mark_reset.diff > > > This bug was found when doing soft upgrade testing from Derby version > 10.4.2.0 to 10.5.1.0 (RC1) > Steps followed are as follows. > 1. Run setEmbeddedCP.bat from version 10.4.2.0's bin folder > 2. In a test folder run ij > 3. create system/wombat database. > ij> connect 'jdbc:derby:system/wombat;create=true'; > 4. exit ij > 5. Copy the 10.5.1.0 derby jars (from lib folder) and the derbyTesting.jar > from 10.4.2.0 to the test folder and set classpath with them (including junit > and ORO) > 6. Run suites.All > java -Xmx512M -Xms512M -Dderby.tests.trace=true junit.textui.TestRunner > org.apache.derbyTesting.functionTests.suites.All > Result: > Tests run: 10479, Failures: 56, Errors: 34 > The exception stack trace from a failed test follows. > ------------------------------------------------------------------------------------------------------------- > 3) > testClobInTriggerTable(org.apache.derbyTesting.functionTests.tests.lang.TriggerTest)java.sql.SQLException: > Java exception: 'org.apache.derby.iapi.types.ReaderToUTF8Stream cannot be > cast to org.apache.derby.iapi.types.Resetable: java.lang.ClassCastException'. > 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.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.EmbedPreparedStatement.executeStatement(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown > Source) > at > org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.testClobInTriggerTable(TriggerTest.java:529) > at > org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.testClobInTriggerTable(TriggerTest.java:451) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at > org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:102) > at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24) > at junit.extensions.TestSetup$1.protect(TestSetup.java:21) > at junit.extensions.TestSetup.run(TestSetup.java:25) > at > org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57) > Caused by: java.sql.SQLException: Java exception: > 'org.apache.derby.iapi.types.ReaderToUTF8Stream cannot be cast to > org.apache.derby.iapi.types.Resetable: java.lang.ClassCastException'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown > Source) > ... 39 more > Caused by: java.lang.ClassCastException: > org.apache.derby.iapi.types.ReaderToUTF8Stream cannot be cast to > org.apache.derby.iapi.types.Resetable > at org.apache.derby.iapi.types.SQLClob.rewindStream(Unknown Source) > at org.apache.derby.iapi.types.SQLClob.readExternal(Unknown Source) > at org.apache.derby.iapi.types.SQLChar.getString(Unknown Source) > at org.apache.derby.iapi.types.SQLChar.loadStream(Unknown Source) > at > org.apache.derby.impl.sql.execute.UpdateResultSet.objectifyStream(Unknown > Source) > at > org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(Unknown > Source) > at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown > Source) > at > org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown > Source) > ... 32 more > ------------------------------------------------------------------------------------------------------------------ > When looking at the SVN revisions for SQLClob with Kathey Marsden, we found > the following statement in revision # 738408, related to DERBY-3907, which > might be related to this issue. > "NOTE: Databases created with this revision (or later) containing Clobs, > cannot be accessed by earlier trunk revisions." > Patch file: derby-3907-7a3-use_new_header_format.diff > -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.