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
Priority: Blocker
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.