Hi Andrey,

That was it. Your fix works. Olga just ran the tests against the new trunk + her local changes (one that fixes checks in 'testDbEntityQualifier' and some others unrelated to your recent work), and she reported 100% success on Oracle. She will upload a patch with her stuff via Jira.

Andrus

On Aug 13, 2009, at 4:54 PM, Andrey Razumovsky wrote:

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 <[email protected]>

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




Reply via email to