Hi Michelle,The signature file should have the FetchGroup and TransactionIsolation APIs added.
The query failure is a known failure and the failing test should be added to the exclude list.
Good news. The RI has all of these methods that were added to the api- legacy interfaces. We don't need to go through all the tck2-legacy, just make the existing tests work. We can defer adding tests to a point in time where someone wants to own the tck2-legacy code.
Craig On Oct 9, 2008, at 11:08 AM, Michelle Caisse wrote:
Some things need to be ported to tck2-legacy. Signature test fails and a query test fails (both identity types).1) testSignatures (org .apache .jdo.tck.api.SignatureTest)junit.framework.AssertionFailedError: API Signature Test failed:Found problems or signature descrepancies. Test Output:parsing descriptor file: c:\jdo\branches\2.2\tck2-legacy/src/conf/ jdo-2_2-signatures.txt--- non-standard, public member; found: public static final java.lang.String TX_READ_COMMITTED class: public abstract interface javax.jdo.Constants --- non-standard, public member; found: public static final java.lang.String TX_SNAPSHOT class: public abstract interface javax.jdo.Constants --- non-standard, public member; found: public static final java.lang.String TX_READ_UNCOMMITTED class: public abstract interface javax.jdo.Constants --- non-standard, public member; found: public static final java.lang.String TX_REPEATABLE_READ class: public abstract interface javax.jdo.Constants --- non-standard, public member; found: public static final java.lang.String TX_SERIALIZABLE class: public abstract interface javax.jdo.Constants --- non-standard, public member;found: public abstract javax.jdo.FetchGroup getFetchGroup(java.lang.Class, java.lang.String)class: public abstract interface javax.jdo.PersistenceManager --- non-standard, public member;found: public abstract javax.jdo.FetchGroup getFetchGroup(java.lang.Class, java.lang.String) class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member; found: public abstract void removeAllFetchGroups()class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member;found: public abstract void setTransactionIsolationLevel(java.lang.String) class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member;found: public abstract void addFetchGroups(javax.jdo.FetchGroup[]) class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member;found: public abstract java.lang.String getTransactionIsolationLevel() class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member;found: public abstract void removeFetchGroups(javax.jdo.FetchGroup[]) class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member; found: public abstract java.util.Set getFetchGroups()class: public abstract interface javax.jdo.PersistenceManagerFactory extends java.io.Serializable--- non-standard, public member; found: public abstract void setIsolationLevel(java.lang.String) class: public abstract interface javax.jdo.Transaction --- non-standard, public member; found: public abstract java.lang.String getIsolationLevel() class: public abstract interface javax.jdo.Transaction Signature Test Results ====================== tested features: 834 Successes: matching features: 834 loadable classes: 94 Failures: missing features: 0 non-matching features: 0 non-standard features: 15 unloadable classes: 0 other problems: 0 at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:644)at org .apache.jdo.tck.api.SignatureTest.testSignatures(SignatureTest.java: 99)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:259)at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java: 108) at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java: 148) at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)FAILURES!!! derby-app-runonce-junit.txt: ** Tests run: 002, Time: 007 seconds. Failures: 1, Errors: 0Excluded tests: [org.apache.jdo.tck.enhancement.FieldAccessModified, org.apache.jdo.tck.enhancement.ImplementsPersistenceCapable]testNavigationWithThisAndCompany (org .apache .jdo .tck.query.result.VariableInResultNavigation)javax.jdo.JDOException: JDOException thrown while executing query: SELECT this, e, p FROM org.apache.jdo.tck.pc.company.Company WHERE name == "Sun Microsystems, Inc." && departments.contains(d) && d.employees.contains(e) && e.projects.contains(p) VARIABLES Department d; Employee e; Project pat org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1314) at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1135)at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1071) at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1051) at org .apache .jdo .tck .query .result .VariableInResultNavigation .testNavigationWithThisAndCompany(VariableInResultNavigation.java:251)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:259)at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java: 108) at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java: 148) at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)NestedThrowablesStackTrace:javax.jdo.JDODataStoreException: Error executing JDOQL query "SELECT THIS.ID,UNBOUND_E.PERSONID,UNBOUND_P.PROJID FROM applicationidentity0.COMPANIES THIS , applicationidentity0.PERSONS UNBOUND_E , applicationidentity0.PROJECTS UNBOUND_P WHERE EXISTS (SELECT 1 FROM applicationidentity0.DEPARTMENTS THIS_DEPARTMENTS_D WHERE EXISTS (SELECT 1 FROM applicationidentity0.PERSONS THIS_DEPARTMENTS_D_EMPLOYEES_E WHERE THIS_DEPARTMENTS_D_EMPLOYEES_E.DEPARTMENT = THIS_DEPARTMENTS_D.ID AND THIS_DEPARTMENTS_D.COMPANYID = THIS.ID AND THIS."NAME" = ?)) AND EXISTS (SELECT 1 FROM applicationidentity0.PROJECT_MEMBER THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P WHERE THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P."MEMBER" = THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID AND UNBOUND_P.PROJID = THIS_DEPARTMENTS_D_EMPLOYEES_E_PROJECTS_P.PROJID)" : Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is not a column in the target table.. at org .datanucleus .jdo .NucleusJDOHelper .getJDOExceptionForNucleusException(NucleusJDOHelper.java:334)at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:224) at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1257) at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1135)at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1071) at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1051) at org .apache .jdo .tck .query .result .VariableInResultNavigation .testNavigationWithThisAndCompany(VariableInResultNavigation.java:251)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:259)at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java: 108) at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java: 148) at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)NestedThrowablesStackTrace:java.sql.SQLSyntaxErrorException: Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is not a column in the target table. at org .apache .derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org .apache .derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org .apache .derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source) at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at com .mchange .v2 .c3p0 .impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:241) at org .datanucleus .store.rdbms.SQLController.getStatementForQuery(SQLController.java: 313) at org .datanucleus .store .rdbms .query .RDBMSQueryUtils.getPreparedStatementForQuery(RDBMSQueryUtils.java: 266) at org .datanucleus .store.rdbms.query.SQLEvaluator.evaluate(SQLEvaluator.java:114) at org .datanucleus .store.rdbms.query.JDOQLQuery.performExecute(JDOQLQuery.java:278)at org.datanucleus.store.query.Query.executeQuery(Query.java:1361)at org .datanucleus .store.rdbms.query.JDOQLQuery.executeQuery(JDOQLQuery.java:226) at org.datanucleus.store.query.Query.executeWithArray(Query.java: 1269)at org.datanucleus.store.query.Query.execute(Query.java:1208) at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:215) at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1257) at org.apache.jdo.tck.query.QueryTest.execute(QueryTest.java:1135)at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1071) at org.apache.jdo.tck.query.QueryTest.executeAPIQuery(QueryTest.java: 1051) at org .apache .jdo .tck .query .result .VariableInResultNavigation .testNavigationWithThisAndCompany(VariableInResultNavigation.java:251)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun .reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:259)at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java: 108) at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java: 148) at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123) Caused by: java.sql.SQLException: Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is not a column in the target table. at org .apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org .apache .derby .impl .jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)... 46 moreCaused by: ERROR 42X04: Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is not a column in the target table. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org .apache .derby.impl.sql.compile.ColumnReference.bindExpression(Unknown Source) at org .apache .derby.impl.sql.compile.BinaryOperatorNode.bindExpression(Unknown Source) at org .apache .derby .impl .sql.compile.BinaryComparisonOperatorNode.bindExpression(Unknown Source) at org .apache .derby.impl.sql.compile.BinaryOperatorNode.bindExpression(Unknown Source) at org .apache .derby .impl.sql.compile.BinaryLogicalOperatorNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.AndNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(Unknown Source) at org .apache.derby.impl.sql.compile.SubqueryNode.bindExpression(Unknown Source) at org .apache .derby.impl.sql.compile.BinaryOperatorNode.bindExpression(Unknown Source) at org .apache .derby .impl.sql.compile.BinaryLogicalOperatorNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.AndNode.bindExpression(Unknown Source) at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(Unknown Source) at org .apache .derby.impl.sql.compile.DMLStatementNode.bindExpressions(Unknown Source) at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source) at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org .apache .derby .impl .sql .conn .GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)... 40 more FAILURES!!! Error summary:001 error: ERROR 42X04: Column 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'THIS_DEPARTMENTS_D_EMPLOYEES_E.PERSONID' is not a column in the target table.derby-app-query-junit.txt: ** Tests run: 151, Time: 086 seconds. Failures: 0, Errors: 1Excluded tests: [org.apache.jdo.tck.enhancement.FieldAccessModified, org.apache.jdo.tck.enhancement.ImplementsPersistenceCapable]-- Michelle
Craig L Russell Architect, Sun Java Enterprise System http://db.apache.org/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!
smime.p7s
Description: S/MIME cryptographic signature