Issue Details (XML | Word | Printable)

Key: JDO-354
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Michelle Caisse
Reporter: Michelle Caisse
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JDO

org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistent may fail on teardown

Created: 29/Mar/06 02:30 AM   Updated: 30/Mar/06 01:20 AM
Return to search
Component/s: tck2
Affects Version/s: JDO 2 beta
Fix Version/s: JDO 2 final

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works JDO-354.patch 2006-03-29 08:07 AM Michelle Caisse 0.7 kB

Resolution Date: 29/Mar/06 12:33 PM


 Description  « Hide
When invoked from a configuration that does not use the default schema, MakePersistent fails because it queries for classes to tear down that do not exist in the current schema.

testMakePersistent
> > (org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistent)
> > javax.jdo.JDOFatalException:
> > Exception during tearDown
> > at org.apache.jdo.tck.JDO_Test.tearDown(JDO_Test.java:329)
> > at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:251)
> > at org.apache.jdo.tck.util.BatchTestRunner.doRun
> > (BatchTestRunner.java:107)
> > at org.apache.jdo.tck.util.BatchTestRunner.start
> > (BatchTestRunner.java:147)
> > at org.apache.jdo.tck.util.BatchTestRunner.main
> > (BatchTestRunner.java:122)
> > NestedThrowablesStackTrace:
> > javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT
> > THIS.DEPARTMENT_ID,THIS.DEPTID,THIS."NAME" FROM
> > datastoreidentity7.DEPARTMENT
> > THIS" : Schema 'DATASTOREIDENTITY7' does not exist
> > ERROR 42Y07: Schema 'DATASTOREIDENTITY7' does not exist

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #389639 Wed Mar 29 00:34:52 UTC 2006 mcaisse JDO-354
Files Changed
MODIFY /db/jdo/trunk/tck20/src/conf/schemaAttributeClass.conf
MODIFY /db/jdo/trunk/tck20/src/conf/schemaAttributePackage.conf
MODIFY /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/api/persistencemanager/lifecycle/MakePersistent.java
MODIFY /db/jdo/trunk/tck20/src/conf/schemaAttributeOrm.conf

Michelle Caisse added a comment - 29/Mar/06 02:32 AM
Comment by Michael Watzek:

configurations "schemaAttributeOrm.conf" (Mapping 5), "schemaAttributePackage.conf" (Mapping 6), and "schemaAttributeClass.conf" (Mapping 7) run test MakePersistent which inherits from PersistenceManagerTest.

Class PersistentManagerTest implements localSetUp adding tear down classes PCRect, PCPoint, Department, and Company. But Department and Company are not contained in Mappings 5, 6, and 7. I propose to redefine localSetUp in MakePersistent accordingly.

Perhaps it makes sense to add a comment to ORM metadata of mappings 5, 6, and 7. All of these mappings overwrite the default schema name passed as PMF property. Those mappings assign a schema name which does not comply to our schema name convention <identitytype><mapping>. A comment would just be helpful to understand that this is done on purpose.

Michelle Caisse made changes - 29/Mar/06 02:32 AM
Field Original Value New Value
Assignee Michelle Caisse [ mcaisse ]
Michelle Caisse made changes - 29/Mar/06 08:07 AM
Attachment JDO-354.patch [ 12324691 ]
Michelle Caisse made changes - 29/Mar/06 08:11 AM
Comment [ This simple patch gives the following results with an otherwise clean build & latest JPOX download:
    [java] Total tests run: 1239. Failures: 1, Errors: 2.
    [java] 3 of 57 configurations failed.

I didn't modify the orm files as Michael suggested because we do explain the schema override in the .conf files. If anyone else feels that we should also add comments to the orm files or improve the description in the .conf files, I would be happy to make that change. Currently we say:
jdo.tck.description = MakePersistent test with schema name specified as class attribute in orm for PCPoint. Schema name derived from jdo.tck.mapping 1 is overriden in orm

[jdo.tck.mapping 1 is wrong. I should see jdo.tck.mapping 7 (or 6, or 5)]
]
Michelle Caisse added a comment - 29/Mar/06 08:12 AM
 This simple patch gives the following results with an otherwise clean build & latest JPOX download:
    [java] Total tests run: 1239. Failures: 1, Errors: 2.
    [java] 3 of 57 configurations failed.

I didn't modify the orm files as Michael suggested because we do explain the schema override in the .conf files. If anyone else feels that we should also add comments to the orm files or improve the description in the .conf files, I would be happy to make that change. Currently we say:
jdo.tck.description = MakePersistent test with schema name specified as class attribute in orm for PCPoint. Schema name derived from jdo.tck.mapping 1 is overriden in orm

[jdo.tck.mapping 1 is wrong. It should say jdo.tck.mapping 7 (or 6, or 5)]

Craig Russell added a comment - 29/Mar/06 08:54 AM
Two comments:

1. The patch looks good. I think this should solve the issue. Ok with me to check it in.

2. I think the description in the .conf files is too cryptic. I read it a few times and was still confused as to exactly what it was doing. It might help if you had a bit more text in the description.

MakePersistent test with schema name specified as class attribute in orm for PCPoint. The schema name derived from jdo.tck.mapping 7, e.g. applicationidentity7, is overriden in the file org/apache/jdo/tck/pc/PCPoint.orm to specify schema e.g. applicationidentity_cls.

MakePersistent test with schema name specified as package attribute in orm for PCPoint. The schema name derived from jdo.tck.mapping 7, e.g. applicationidentity6, is overriden in the file applicationidentity/org/apache/jdo/tck/pc/package-standard6.orm to specify schema e.g. applicationidentity_pkg.

I probably got this wrong, but you get the idea.

Michelle Caisse added a comment - 29/Mar/06 12:33 PM
Fixed with revision 389639

Michelle Caisse made changes - 29/Mar/06 12:33 PM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Michael Watzek added a comment - 29/Mar/06 09:34 PM
I noticed that there is a little mismatch between test case MakePersistent, the .sql files, and the .orm files for mappings 5, 6, 7 wrt. which persistence capable classes are needed:

- Test case MakePersistent uses pc class PCPoint only.
- The .sql files create tables PCPoint and PCRect.
- The .orm files specifiy metadata for pc classes PCPoint, PCPoint2, PCRect, and PrimitiveTypes.

This holds true for application identity and datastore identity as well. Does it make sense to erase PCRect in the .sql files and to erase PCPoint2, PCRect, and PrimitiveTypes in the .orm files?

Craig Russell added a comment - 30/Mar/06 01:20 AM
When the tests were written, I think we didn't know exactly what we were going to test, and made extra classes persistent in order to have some flexibility.

Now that the tests are complete, it's not clear to me that we will ever extend the test cases so we don't need to keep the extra classes in the sql and orm.

So it's ok with me to remove the extras.