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: 0
Excluded 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 p
  at 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 more
Caused 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: 1
Excluded 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!

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to