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 21:35:35 GMT
Hi Michelle,

I believe you will find the test itself is different. You could make  
the test cases the same between the two projects as an alternative to  
updating the exclude list.

Craig

On Oct 9, 2008, at 1:33 PM, Michelle Caisse wrote:

> Is the query test expected to fail only for tck2-legacy? Right now  
> the exclude lists for tck2 and tck2-legacy are identical, yet the  
> test only fails in tck2-legacy.
>
> -- Michelle
>
> Craig L Russell wrote:
>> 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!
>>

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