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 <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 - 10:29:56 EDT