db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michelle Caisse <Michelle.Cai...@Sun.COM>
Subject Re: Test failures for JDO 2.2 tck2-legacy
Date Thu, 09 Oct 2008 20:33:38 GMT
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!
>

Mime
View raw message