Hi Andrus,
Most likely this is my fault. I added cast to BatchAction in
DataDomainActionBuilder class and this causes the exception.
I'll try to remember the reason I did it. It'll be hard, it was before my
vacation, after all..
The biggest problem was that BatchQuery is heavy class, not an interface.
And, to extend its functionality, I needed delegate mechanizms.
Likely would not want OracleLOBBatchAction to extend BatchAction, so let me
try to review the design to see if the class cast can be avoided.
I'm not sure about testDbEntityQualifier though. Could you bring me stack
trace.
If I commit, could you retest on Oracle?
Thanks,
Andrey
2009/8/13 Andrus Adamchik <andru..bjectstyle.org>
> Olga just noticed that a bunch of Oracle (and other DB) tests started
> failing since 3.0M6. Here is an Oracle list:
>
> Failed tests:
>
>
> testDbEntityQualifier(org.apache.cayenne.access.trans.SelectTranslatorTest)
> testDelete(org.apache.cayenne.access.DataContextCharPKTest)
> testUpdate(org.apache.cayenne.access.DataContextCharPKTest)
>
> Tests in error:
> testSerializable(org.apache.cayenne.access.MiscTypesTest)
> testEmptyClob(org.apache.cayenne.access.DataContextClobTest)
> test5ByteClob(org.apache.cayenne.access.DataContextClobTest)
> test5KByteClob(org.apache.cayenne.access.DataContextClobTest)
> test1MBClob(org.apache.cayenne.access.DataContextClobTest)
> testNullClob(org.apache.cayenne.access.DataContextClobTest)
>
> testFetchLimit_DistinctResultIterator(org.apache.cayenne.access.jdbc.SelectActionTest)
> testEmptyBlob(org.apache.cayenne.access.DataContextBlobTest)
> test5ByteBlob(org.apache.cayenne.access.DataContextBlobTest)
> test5KByteBlob(org.apache.cayenne.access.DataContextBlobTest)
> test1MBBlob(org.apache.cayenne.access.DataContextBlobTest)
> testNullBlob(org.apache.cayenne.access.DataContextBlobTest)
>
> The first few things that she checked were related to OracleAdapter using
> RTRIM function for CHAR columns too handle padding with spaces of the CHAR
> values (e.g. SelectTranslatorTest, DataContextCharPKTest). The LOB tests all
> fail with this error:
>
>
> INFO: SELECT pk_clob_test.nextval FROM DUAL
> Aug 13, 2009 3:59:18 PM org.apache.cayenne.access.QueryLogger logQueryStart
> INFO: --- will run 1 query.
> Aug 13, 2009 3:59:18 PM org.apache.cayenne.access.QueryLogger logQueryError
> INFO: *** error.
> java.lang.ClassCastException:
> org.apache.cayenne.dba.oracle.OracleLOBBatchAction cannot be cast to
> org.apache.cayenne.access.jdbc.BatchAction
> at
> org.apache.cayenne.access.DataDomainActionBuilder.batchAction(DataDomainActionBuilder.java:49)
> at
> org.apache.cayenne.access.DataDomainInsertQuery.createSQLAction(DataDomainInsertQuery.java:43)
> at
> org.apache.cayenne.dba.oracle.OracleAdapter.getAction(OracleAdapter.java:337)
> at
> org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:86)
> at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:274)
> at
> org.apache.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFlushAction.java:226)
> at
> org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:144)
> at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:824)
> at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:791)
> at
> org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:850)
> at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:788)
> at
> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1104)
> at
> org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1043)
> at
> org.apache.cayenne.access.DataContextClobTest.runWithClobSize(DataContextClobTest.java:125)
> at
> org.apache.cayenne.access.DataContextClobTest.testEmptyClob(DataContextClobTest.java:54)
>
> Andrey, I know you probably don't have Oracle instance to test, but maybe
> you can think of something offhand that may have affected these tests.
>
> Thanks,
> Andrus
>
>
>
This archive was generated by hypermail 2.0.0 : Thu Aug 13 2009 - 09:54:48 EDT