Re: Oracle tests failing - due to DbEntity qualifier changes ?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Aug 13 2009 - 10:29:23 EDT

  • Next message: Aristedes Maniatis: "Re: [jira] Closed: (CAY-1261) Auto-inject values in NEW objects with declared qualifiers"

    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