persistence@glassfish.java.net

Re: SQLAnywherePlatform Status Update

From: Markus KARG <markus.karg_at_gmx.net>
Date: Mon, 22 Jan 2007 20:02:48 +0100

Tom,

thank you for your instructions. I have run the FullRegressionTestSuite
against Derby. The results are inlined:
>> testSerializedLazy: This test loads an employee, tries to serialize
>> that employee, and retreive it. It expects an exception when an
>> uninstantiated LAZY relationship is traversed on the deserialized
>> objects. I guess the question is: Is an exception thrown? If so,
>> why is it different from what we expect? If not, why isn't it
>> thrown? Does this test pass for you on another Database(Derby for
>> instance)
On Derby, the result is the same as on SQLAnywhere:

junit.framework.AssertionFailedError: The correct exception was not
thrown while traversing an uninstantiated lazy relationship on a
serialized object: null

>>> testEmployeeJoinProjects: This test runs a query that uses the
>>> TopLink Essentials joining feature and ensures its results are the
>>> same as a similar query that retrieves results by traversing
>>> indirection instead of using joining. I am surprised that this test
>>> is failing in isolation. There are a number of tests that do
>>> something similar. I guess the things to look at are how the tables
>>> that these queries use are defined and what the specific SQL output
>>> of this test is. Does this test pass for you on another Database?
>>> If so, how does the SQL Differ on the test that passes from the one
>>> that fails.
On Derby, the result is the same as on SQLAnywhere:

junit.framework.AssertionFailedError: PK = 227:
Employee.manager.manager.manager.manager.projects: indirection
instantiated != indirection NOT instantiated; .projects: indirection
instantiated != indirection NOT instantiated; PK = 222:
Employee.manager.projects: indirection instantiated != indirection NOT
instantiated;

Since both tests do not pass on Derby, it in turn cannot be a bug in
neither SQLAnywhere, nor jConnect, nor iAnywhere, nor
SQLAnywherePlatform. :-)

BTW, Derby throws one more failing test:
"junit.framework.AssertionFailedError: Exception was caught when using
cache" is the result of simpleJoinFetchTest.

All other tests (of 600) are passing without failed assertions or errors.


Have Fun
Markus