dev@glassfish.java.net

Re: SQLAnywherePlatform Status Update

From: Tom Ware <tom.ware_at_oracle.com>
Date: Mon, 08 Jan 2007 13:46:41 -0500

Hi Markus,

  After having talked to my some colleages on the project, I am
concerned about the JConnect issues. I am not comfortable with checking
in a SQLAnywherePlatform that does not support JConnect unless we can
say one of the the following 2 things:

1. It is not possible to have an acceptable number of tests pass on both
drivers
2. There is another strong architectural or technical reason why it does
not make sense that SQLAnywherePlatform would support both JConnect and
the driver that ships with the project.

  Is either of these things true?

-Tom


Tom Ware wrote:

>Hi Markus,
>
> Could you please send your current implementation. I'll do my best to
>get it running and take a quick look at the errors to see if I can give
>you any hints.
>
> As far as the JConnect issue is concerned, lets release this platform
>with the name we expect it to have in the end (rather than some name we
>may change)? An enhancement can be filed to do the work for JConnect.
>The detection mechanism can be updated if necessary, but in the mean
>time, it is possible to specifiy platforms that are not properly
>automatically detected using the toplink.target-database persitence unit
>property with the fully qualified DatabasePlatform subclass name as the
>value.
>
>-Tom
>
>Markus KARG wrote:
>
>
>
>>Tom and Lance,
>>
>>so I have done my best to do all you told me. The new platform passes
>>the FullRegressionTest suite with the following result: Runs 592/592,
>>Errors 5, Failures 3 (see stack traces below). Please tell me how to
>>proceed. Shall I send you the source code for a final code review?
>>
>>Lance, I have tested both, iAnywhere bridge (incl. latest EBF) and
>>jConnect 6.0.5 (incl. latest EBF). The result for iAnywhere is to be
>>found below. The result for jConnect 6.0.5 is that there are additional
>>errors (all in all 21 errors!). Since I am not targeting jConnect, as it
>>is not part of the SQL Anywhere Studio product but has to be obtained
>>separately, I want to suggest the following: SQLAnywherePlatform in this
>>first draw is using iAnywhere, as that is the driver found "in the box".
>>Then, we ask the TopLink team to implement an improved search mechanism
>>that also checks the name of the driver, not only the name of the
>>product. If that is done, we create a new driver hierarchy: SQLAnywhere
>>(abstract class, holding all SQL Anywhere specifics), extended by
>>iAnywhereSQLAnywherePlatform (holding all iAnywhere specifics) and
>>extended by jConnectSQLAnywherePlatform(holding all jConnect specifics,
>>like the 21 errors). Tom and Lance, what do you think about that?
>>
>>Thanks a lot
>>Markus
>>
>>
>>(FAILURE 1)
>>oracle.toplink.essentials.testing.tests.cmp3.advanced.EntityManagerJUnitTestSuite.testSerializedLazy(oracle.toplink.essentials.testing.tests.cmp3.advanced.EntityManagerJUnitTestSuite)
>>junit.framework.AssertionFailedError: The correct exception was not
>>thrown while traversing an uninstantiated lazy relationship on a
>>serialized object: null
>> at junit.framework.Assert.fail(Assert.java:47)
>> at junit.framework.Assert.assertTrue(Assert.java:20)
>> at junit.framework.Assert.assertNotNull(Assert.java:220)
>> at
>>oracle.toplink.essentials.testing.tests.cmp3.advanced.EntityManagerJUnitTestSuite.testSerializedLazy(EntityManagerJUnitTestSuite.java:2292)
>>
>>I don't know what to do to fix this. Can you give me some tips?
>>
>>
>>(FAILURE 2)
>>oracle.toplink.essentials.testing.tests.cmp3.advanced.JoinedAttributeAdvancedJunitTest.testEmployeeJoinProjects(oracle.toplink.essentials.testing.tests.cmp3.advanced.JoinedAttributeAdvancedJunitTest)
>>junit.framework.AssertionFailedError: PK = 222:
>>Employee.manager.manager.manager.manager.projects: indirection
>>instantiated != indirection NOT instantiated; .projects: indirection
>>instantiated != indirection NOT instantiated; PK = 228:
>>Employee.manager.projects: indirection instantiated != indirection NOT
>>instantiated;
>> at junit.framework.Assert.fail(Assert.java:47)
>> at
>>oracle.toplink.essentials.testing.tests.cmp3.advanced.JoinedAttributeAdvancedJunitTest.testEmployeeJoinProjects(JoinedAttributeAdvancedJunitTest.java:517)
>>
>>I don't know what to do to fix this. Can you give me some tips?
>>
>>
>>(FAILURE 3)
>>oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLComplexTestSuite$1
>>JUnitEJBQLComplexTestSuite
>>complexResultPropertiesTest(oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLComplexTestSuite)
>>junit.framework.AssertionFailedError: Query.setFirstResult Test Case Failed
>> at junit.framework.Assert.fail(Assert.java:47)
>> at junit.framework.Assert.assertTrue(Assert.java:20)
>> at
>>oracle.toplink.essentials.testing.tests.ejb.ejbqltesting.JUnitEJBQLComplexTestSuite.complexResultPropertiesTest(JUnitEJBQLComplexTestSuite.java:1009)
>>
>>We started the discussion on that yesterday, but still I do not see a
>>problem on the SQL Anywhere JDBC driver's side. As DerbyPlatform doesn't
>>show the problem, can you give me a tip what next to check? What can be
>>the reason for the failure?
>>
>>
>>(ERROR 1) Lob Model
>>testUpdate(oracle.toplink.essentials.testing.tests.cmp3.lob.LobJUnitTestCase)
>>javax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle
>>TopLink Essentials - 9.1 (Build local)):
>>oracle.toplink.essentials.exceptions.DatabaseException
>>Internal Exception: java.sql.SQLException: Dieser Treiber unterstützt
>>keinen JDBC-Datentyp mit ID = 2005Error Code: 0
>>Call:UPDATE CMP3_IMAGE SET SCRIPT = ?, PICTURE = ? WHERE (ID = ?)
>> bind => [null, null, 1000]
>>Query:UpdateObjectQuery(oracle.toplink.essentials.testing.models.cmp3.lob.Image_at_14a4fd2)
>> at
>>oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:106)
>> at
>>oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:45)
>> at
>>oracle.toplink.essentials.testing.tests.cmp3.lob.LobJUnitTestCase.testUpdate(LobJUnitTestCase.java:132)
>>oracle.toplink.essentials.testing.tests.cmp3.relationships.ExpressionJUnitTestSuite
>>testLeftTrimWithTrimChar(oracle.toplink.essentials.testing.tests.cmp3.relationships.ExpressionJUnitTestSuite)
>>
>>I do not have any idea what the problem is, because the error message is
>>not known in the SQL Anywhere manual. Do you have an idea what to do?
>>
>>
>>(ERROR 2)
>>oracle.toplink.essentials.testing.tests.cmp3.relationships.ExpressionJUnitTestSuite.testLeftTrimWithTrimChar
>>
>>Filed as a bug report in the GF tracker. Ignored by me since it is not
>>mandatory.
>>
>>
>>(ERROR 3)
>>oracle.toplink.essentials.testing.tests.cmp3.relationships.ExpressionJUnitTestSuite.testTrimWithTrimChar
>>
>>Filed as a bug report in the GF tracker. Ignored by me since it is not
>>mandatory.
>>
>>
>>(ERROR 4)
>>oracle.toplink.essentials.testing.tests.cmp3.fieldaccess.relationships.ExpressionJUnitTestSuite.testLeftTrimWithTrimChar
>>
>>Filed as a bug report in the GF tracker. Ignored by me since it is not
>>mandatory.
>>
>>
>>(ERROR 5)
>>oracle.toplink.essentials.testing.tests.cmp3.fieldaccess.relationships.ExpressionJUnitTestSuite.testTrimWithTrimChar
>>
>>Filed as a bug report in the GF tracker. Ignored by me since it is not
>>mandatory.
>>
>>
>>
>>
>>
>
>
>
>