db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: Test failures for JDO 2.2 tck2-legacy
Date Thu, 09 Oct 2008 18:33:52 GMT
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:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Mime
View raw message