> For ad hoc testing, you could perhaps try to create a system/wombat
> database manually with 10.2, and then run the JUnit tests against that
> database with the allowPreReleaseUpgrade flag. Not sure if it works, but
> it's worth a try.
This was a very excellent idea, Knut Anders. It seems to work well to
uncover soft-upgrade problems. (Ref. DERBY-2931 and DERBY-2932).
If I run the BlobClob4BlobTest this way, I seem to get issues related to
serialization. First failure is in testTriggersWithClobColumn. See
below for the first part of the output in derby.log.
This might be related to DERBY-2931, and I do not think it is of much
use to continue these soft upgrade experiments until there is a fix for
DERBY-2931.
--
Øystein
DEBUG DebugByteTeeOutputStream OUTPUT: FormatableError:read error :
java.io.EOFException
FormatableError:class written : class
org.apache.derby.impl.store.access.heap.Heap_v10_2FormatableError:read
back as nullFormatableError:write id : 467
Exception trace:
java.io.EOFException
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:273)
at
org.apache.derby.iapi.services.io.CompressedNumber.readInt(CompressedNumber.java:127)
at
org.apache.derby.impl.store.access.conglomerate.ConglomerateUtil.readCollationIdArray(ConglomerateUtil.java:328)
at
org.apache.derby.impl.store.access.heap.Heap.localReadExternal(Heap.java:1219)
at
org.apache.derby.impl.store.access.heap.Heap.readExternal(Heap.java:1238)
at
org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(FormatIdInputStream.java:126)
at
org.apache.derby.iapi.services.io.DebugByteTeeOutputStream.checkObject(DebugByteTeeOutputStream.java:61)
at
org.apache.derby.iapi.services.io.FormatIdOutputStream.writeObject(FormatIdOutputStream.java:151)
at
org.apache.derby.impl.sql.execute.WriteCursorConstantAction.writeExternal(WriteCursorConstantAction.java:264)
at
org.apache.derby.impl.sql.execute.InsertConstantAction.writeExternal(InsertConstantAction.java:215)
at
org.apache.derby.iapi.services.io.FormatIdOutputStream.writeObject(FormatIdOutputStream.java:165)
at
org.apache.derby.impl.sql.GenericStorablePreparedStatement.writeExternal(GenericStorablePreparedStatement.java:185)
at
org.apache.derby.iapi.services.io.FormatIdOutputStream.writeObject(FormatIdOutputStream.java:165)
at org.apache.derby.iapi.types.UserType.writeExternal(UserType.java:286)
at
org.apache.derby.impl.store.raw.data.StoredPage.logColumn(StoredPage.java:6233)
at
org.apache.derby.impl.store.raw.data.StoredPage.logRow(StoredPage.java:3953)
at
org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer(InsertOperation.java:370)
at
org.apache.derby.impl.store.raw.data.InsertOperation.<init>(InsertOperation.java:115)
at
org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert(LoggableActions.java:139)
at
org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow(BasePage.java:623)
at
org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot(BasePage.java:544)
at
org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot(StoredPage.java:6713)
at org.apache.derby.impl.store.raw.data.BasePage.insert(BasePage.java:650)
at
org.apache.derby.impl.store.access.heap.HeapController.doInsert(HeapController.java:288)
at
org.apache.derby.impl.store.access.heap.HeapController.insertAndFetchLocation(HeapController.java:599)
at
org.apache.derby.impl.sql.catalog.TabInfoImpl.insertRowListImpl(TabInfoImpl.java:522)
at
org.apache.derby.impl.sql.catalog.TabInfoImpl.insertRow(TabInfoImpl.java:428)
at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.addSPSDescriptor(DataDictionaryImpl.java:3362)
at
org.apache.derby.impl.sql.execute.CreateTriggerConstantAction.createSPS(CreateTriggerConstantAction.java:402)
at
org.apache.derby.impl.sql.execute.CreateTriggerConstantAction.executeConstantAction(CreateTriggerConstantAction.java:331)
at
org.apache.derby.impl.sql.execute.MiscResultSet.open(MiscResultSet.java:64)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1203)
at
org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:596)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:176)
at
org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest.testTriggersWithClobColumn(BlobClob4BlobTest.java:273)
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 junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:95)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.extensions.TestSetup.run(TestSetup.java:25)
at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
at junit.swingui.TestRunner$16.run(TestRunner.java:698)
|