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