Hi all,

after some time of hibernation (ahem, sorry... ;) I will hopefully have some more time to devote to OJB development.

Brian asked me to run the tests for OJB_1_0_RELEASE branch against Oracle, and I have just updated the source and done so. My results are similar to Vadim's at a quick glance.

Here are the results of the Oracle jury... :)
(CVS update @ 2005-02-23 c:a 16:00 CET)

 [junit] Tests run: 609, Failures: 1, Errors: 3
 [junit] Test org.apache.ojb.broker.AllTests FAILED
Testcase: testReportPathExpressionForExtents1
java.lang.ClassCastException
oaob.QueryTest.testReportPathExpressionForExtents1(QueryTest.java:1597)

Testcase: testTimestampLock
Should throw an Optimistic Lock exception

Testcase: testBlobInsertion
SQLException: ORA-01401 (value too big)

Testcase: testReadNullBlob
java.sql.SQLException: (invalid column type)


[junit] Tests run: 129, Failures: 1, Errors: 7 [junit] Test org.apache.ojb.odmg.AllTests FAILED

Mostly caused by JdbcTypesHelper$T_LongVarBinary.readValueFromResultSet(JdbcTypesHelper.java:960) call to OracleResultSet.getBinaryStream and SQLException "stream is already closed".

Looks like reading LONG of some kind out of sequence, there are Oracle-constraints similar to those for MSSQL (that don't like reading "special" columns twice, triggering previous OJB refactoring and changes) for LONGVARBINARY columns. Should be fixable by reading stuff from ResultSet in a different order and would then not affect other platforms that don't care about the ordering.

 [junit] Tests run: 79, Failures: 1, Errors: 0
 [junit] Test org.apache.ojb.otm.AllTests FAILED

Testcase: testSwizzle1toN
should be equal expected:<0> but was:<1>
org.apache.ojb.otm.SwizzleTests.testSwizzle1toN(SwizzleTests.java:351)


I will start looking into these, I think most of them are pretty easy to fix (invalid datatype conversions that the platforms can handle).



Jakob Braeuchi wrote:
did you use the oci- or the thin-driver.
according to some posings the thin-driver seems to have a limited blob size.
http://www.theserverside.com/discussions/thread.tss?thread_id=30048

That's the whole issue with having a separate Oracle9i platform implementation. BLOB has a 2000 byte limit and CLOB has a 4000 dito when using standard JDBC operations on the result set using the oracle thin driver. In the Oracle9i impl, Oracle-specific streaming through the LOB ("locator object" in the oracle universe) works around this but requires some nasty reflection calls.


I also know that Armin previously forwarded a discussion from the user-list re. timestamp milliseconds and optimisitic locking, I will check if those user-supplied changes can resolv optimistic locking failures (similar to those seen on MySQL).


Regards, Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to