openjpa-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: OpenJPA MySQL tests
Date Wed, 24 Feb 2010 18:49:31 GMT
Hi Donald,

Thanks for all that. I'm now trying to run the 1.3.x branch against  
MySQL.

openjpa.jdbc.JDBC - Using dictionary class  
"org.apache.openjpa.jdbc.sql.MySQLDictionary" (MySQL 5.1.41-ndb-7.1.2- 
beta-debug ,MySQL-AB JDBC Driver mysql-connector-java-5.1.12  
( Revision: ${bzr.revision-id} )).

I still have several problems, and I'm wondering if there is some  
configuration that I'm missing or if these tests are known to fail.

In the openjpa-persistence-jdbc, the derby tests all pass, but using  
the standard mysql profile:

clr% mvn test -Ptest-mysql -Dopenjpa.mysql.url=jdbc:mysql://localhost: 
9306/test -Dopenjpa.mysql.username=root -Dopenjpa.mysql.password=

Tests run: 1245, Failures: 8, Errors: 24, Skipped: 0

There are a number of things that just sound like bugs in the  
MySQLDictionary, e.g.

org.apache.openjpa.lib.jdbc.ReportingSQLException: You can't specify  
target table 'TORDER' for update in FROM clause {prepstmnt 3509487  
UPDATE TORDER SET amount = ?, version = version + 1 WHERE oid IN  
(SELECT DISTINCT t0.oid FROM TORDER t0 INNER JOIN TCUSTOMER t1 ON  
t0.CUSTOMER_COUNTRYCODE = t1.countryCode AND t0.CUSTOMER_ID = t1.id  
INNER JOIN TCUSTOMER t4 ON t0.CUSTOMER_COUNTRYCODE = t4.countryCode  
AND t0.CUSTOMER_ID = t4.id WHERE (t1.name = (SELECT MAX(t3.name) FROM  
TORDER t2 INNER JOIN TCUSTOMER t3 ON t2.CUSTOMER_COUNTRYCODE =  
t3.countryCode AND t2.CUSTOMER_ID = t3.id WHERE (t4.id = t3.id))))  
[params=(long) 1000]} [code=1093, state=HY000]

And others that sound like some configuration issue:

nonfatal general error>  
org.apache.openjpa.persistence.PersistenceException: Unknown database  
'schema3g' {stmnt 2927524 CREATE TABLE SCHEMA3G.ID_Gen3 (GEN_NAME  
VARCHAR(255) NOT NULL, GEN_VAL BIGINT, PRIMARY KEY (GEN_NAME)) TYPE =  
innodb} [code=1049, state=42000]

Any ideas? I can either track these down assuming that they are bugs  
in the MySQLDictionary but I'd like to know if anyone else has run  
into this.

Thanks,

Craig

Failed tests:
    
testChangeListOrder(org.apache.openjpa.persistence.kernel.TestProxies2)
    
testPessimisticLocking 
(org.apache.openjpa.persistence.kernel.TestPessimisticLocking)
    
testVersionTimestamp 
(org.apache.openjpa.persistence.jdbc.annotations.TestVersion)
    
testForeignKey 
(org 
.apache 
.openjpa.persistence.relations.TestCascadingOneManyWithForeignKey)
    
testConsistentDatastoreTransactionWithRollback 
(org.apache.openjpa.persistence.kernel.TestCheckConsistency)
    
testConsistentOptimisticTransactionWithRollback 
(org.apache.openjpa.persistence.kernel.TestCheckConsistency)
    
testAggregateExpressionInHavingExpression 
(org.apache.openjpa.persistence.jdbc.query.TestMultipleEntityProjection)
   testUpdateWithNull(org.apache.openjpa.jdbc.meta.strats.TestReaderLob)

Tests in error:
    
testGeneratedAUTO 
(org.apache.openjpa.persistence.generationtype.TestMultipleSchemaNames)
    
testGeneratedTABLE 
(org.apache.openjpa.persistence.generationtype.TestMultipleSchemaNames)
    
testGeneratedIDENTITY 
(org.apache.openjpa.persistence.generationtype.TestMultipleSchemaNames)
    
testNullOnOptionalFieldIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNotNullOnOptionalFieldIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNotNullOnNonOptionalFieldIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNullOnNullableColumnAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNotNullOnNullableColumnIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNotNullOnNonNullableColumnIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNullOnOptionalBlobFieldIsAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testNullOnNullableBlobColumnAllowed 
(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
   testX(org.apache.openjpa.persistence.nullity.TestBasicFieldNullity)
    
testLoadQueries 
(org 
.apache.openjpa.persistence.jdbc.query.cache.TestQueryTimestampEviction)
    
testEviction 
(org 
.apache.openjpa.persistence.jdbc.query.cache.TestQueryTimestampEviction)
    
testSimpleCompoundIdTestEntity 
(org.apache.openjpa.persistence.identity.TestCompundIdWithNull)
    
testComplexCompoundIdTestEntity 
(org.apache.openjpa.persistence.identity.TestCompundIdWithNull)
    
testConsistentOptimisticTransaction 
(org.apache.openjpa.persistence.kernel.TestCheckConsistency)
    
testQuery 
(org 
.apache 
.openjpa 
.persistence.relations.TestRelationFieldAsPrimaryKeyAndForeignKey)
    
testUnboundEntities 
(org 
.apache 
.openjpa 
.persistence.relations.TestRelationFieldAsPrimaryKeyAndForeignKey)
    
testDeletes 
(org 
.apache 
.openjpa 
.persistence.relations.TestRelationFieldAsPrimaryKeyAndForeignKey)
    
testEscapedQuery 
(org.apache.openjpa.persistence.query.TestQueryEscapeCharacters)
    
testQueryRange(org.apache.openjpa.persistence.jdbc.meta.TestRangeQuery)
   testSubquery2(org.apache.openjpa.persistence.query.TestSubquery)
   testSubquery(org.apache.openjpa.persistence.query.TestSubquery)


On Feb 23, 2010, at 6:37 AM, Donald Woods wrote:

> For 1.2.x and trunk runs, we also include the following cmdline  
> settings
> for the nightly builds -
>   -Ddbcp.maxIdle=0 -Ddbcp.minIdle=0
>
> For 1.2.x and Sun Java SE 5, we also set -
>   MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
>
> For trunk and Sun Java SE 6, we also set -
>   MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
>
>
> Hope that helps,
> Donald
>
>
> On 2/22/10 11:06 PM, Craig L Russell wrote:
>> Hi,
>>
>> While I sort out the issue of using the MySQL-AB driver, I have some
>> other problems that might not be related to the driver.
>>
>> When I run the tests in tags/1.2.2/openjpa-persistence-jdbc using
>>
>> mvn test -Ptest-mysql
>> -Dopenjpa.mysql.url=jdbc:mysql://localhost:9306/test
>> -Dopenjpa.mysql.username=root -Dopenjpa.mysql.password=
>>
>> Here is the summary:
>> Tests run: 1031, Failures: 14, Errors: 396, Skipped: 0
>>
>> By far, the largest number of failures are due to this:
>>
>> Caused by:
>> com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Data
>> source rejected establishment of connection,  message from server:  
>> "Too
>> many connections"
>>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
>>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
>>    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1095)
>>    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java: 
>> 2031)
>>    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
>>    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java: 
>> 298)
>>    at
>> com 
>> .mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java: 
>> 282)
>>    at
>> org 
>> .apache 
>> .commons 
>> .dbcp 
>> .DriverConnectionFactory 
>> .createConnection(DriverConnectionFactory.java:37)
>>
>>    at
>> org 
>> .apache 
>> .commons 
>> .dbcp 
>> .PoolableConnectionFactory 
>> .makeObject(PoolableConnectionFactory.java:290)
>>
>>    at
>> org 
>> .apache 
>> .commons 
>> .dbcp 
>> .BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
>>
>>    at
>> org 
>> .apache 
>> .commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java: 
>> 851)
>>
>>
>> This is during configuration of the connection pool. Is there some
>> recommended way to set up the MySQL server or the dbcp pool to work?
>>
>> I'm also getting lots of somewhat random errors. [1] Has anyone run  
>> the
>> MySQL suite recently?
>>
>> Any insight into what I might be doing wrong here will help.
>>
>> Thanks,
>>
>> Craig
>>
>> [1]
>> testChangeListOrder 
>> (org.apache.openjpa.persistence.kernel.TestProxies2)
>> Time elapsed: 4.961 sec  <<< FAILURE!
>> junit.framework.AssertionFailedError: expected:<val1> but was:<val2>
>>
>> ...
>> testEmptyBrokerSerialization 
>> (org 
>> .apache 
>> .openjpa 
>> .kernel.TestUnenhancedPropertyAccessInstanceBrokerSerialization)
>> Time elapsed: 0.107 sec  <<< ERROR!
>> java.lang.UnsupportedOperationException
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .enhance 
>> .ReflectingPersistenceCapable 
>> .pcSetDetachedState(ReflectingPersistenceCapable.java:323)
>>
>>    at
>> org 
>> .apache 
>> .openjpa.kernel.DetachManager.detachInternal(DetachManager.java:476)
>>
>>    at
>> org 
>> .apache.openjpa.kernel.DetachManager.detachAll(DetachManager.java: 
>> 325)
>> ...
>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Data
>> truncation: Out of range value for column 'id' at row 1 {prepstmnt
>> 7779720 INSERT INTO SQLBigDecimalIdEntity (id, data) VALUES (?, ?)
>> [params=(BigDecimal) 1266874412000, (int) 1]} [code=0, state=01004]
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .lib 
>> .jdbc 
>> .LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
>>
>>    at
>> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access 
>> $700(LoggingConnectionDecorator.java:57)
>>
>>    at
>> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator 
>> $LoggingConnection 
>> $ 
>> LoggingPreparedStatement 
>> .executeUpdate(LoggingConnectionDecorator.java:866)
>>
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .lib 
>> .jdbc 
>> .DelegatingPreparedStatement 
>> .executeUpdate(DelegatingPreparedStatement.java:269)
>>
>>    at
>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager 
>> $CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1590)
>>
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .jdbc 
>> .kernel 
>> .PreparedStatementManagerImpl 
>> .executeUpdate(PreparedStatementManagerImpl.java:151)
>>
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .jdbc 
>> .kernel 
>> .PreparedStatementManagerImpl 
>> .flushAndUpdate(PreparedStatementManagerImpl.java:120)
>>
>>
>> testComplexCompoundIdTestEntity 
>> (org.apache.openjpa.persistence.identity.TestCompundIdWithNull)
>> Time elapsed: 0.885 sec  <<< ERROR!
>> org.apache.openjpa.lib.jdbc.ReportingSQLException: You have an  
>> error in
>> your SQL syntax; check the manual that corresponds to your MySQL  
>> server
>> version for the right syntax to use near 'CONSTRAINT test_type_pk
>> PRIMARY KEY, code VARCHAR(16))' at line 1 {stmnt 4807894 CREATE TABLE
>> test_type(id NUMERIC CONSTRAINT test_type_pk PRIMARY KEY, code
>> VARCHAR(16))} [code=1064, state=42000]
>>
>> Running
>> org 
>> .apache 
>> .openjpa 
>> .persistence.jdbc.unique.TestUniqueConstraintWithXMLDescriptor
>>
>> 0  test-unique-constraint  INFO   [main] openjpa.Runtime - Starting
>> OpenJPA 1.2.2
>> 57  test-unique-constraint  INFO   [main] openjpa.jdbc.JDBC - Using
>> dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary" (MySQL
>> 5.1.41-ndb-7.1.2-beta-debug ,MySQL-AB JDBC Driver
>> mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )).
>> 1:CREATE TABLE UNIQUE_A_XML (aid INTEGER NOT NULL, a1x INTEGER NOT  
>> NULL,
>> a2x INTEGER NOT NULL, a3x INTEGER NOT NULL, a4x INTEGER NOT NULL, a5x
>> INTEGER, a6x INTEGER, PRIMARY KEY (aid), UNIQUE UNQ_a1xa2x (a1x,  
>> a2x),
>> UNIQUE UNQ_a3xa4x (a3x, a4x)) TYPE = innodb
>> 2:CREATE TABLE UNIQUE_B_XML (bid INTEGER NOT NULL, b1x INTEGER NOT  
>> NULL,
>> b2x INTEGER NOT NULL, PRIMARY KEY (bid), UNIQUE UNQ_b1xb2x (b1x,  
>> b2x))
>> TYPE = innodb
>> 3:CREATE TABLE UNIQUE_GENERATOR_XML (GEN1_XML VARCHAR(255) NOT NULL,
>> GEN2_XML BIGINT NOT NULL, PRIMARY KEY (GEN1_XML), UNIQUE  
>> U_NQ_GXML_UNQ
>> (GEN1_XML, GEN2_XML)) TYPE = innodb
>> 4:CREATE TABLE UNIQUE_JOINTABLE_XML (FK_A_XML INTEGER NOT NULL,  
>> FK_B_XML
>> INTEGER NOT NULL, UNIQUE UNQ_FK_A_XMLFK_B_XML (FK_A_XML, FK_B_XML))  
>> TYPE
>> = innodb
>> 5:CREATE TABLE UNIQUE_SECONDARY_XML (UNIQUEA_AID INTEGER, sa1x  
>> SMALLINT
>> NOT NULL, sa2x SMALLINT, UNIQUE UNQ_sa1x (sa1x)) TYPE = innodb
>> 6:CREATE INDEX I_NQ_JXML_ELEMENT ON UNIQUE_JOINTABLE_XML (FK_B_XML)
>> 7:CREATE INDEX I_NQ_JXML_FK_A_XML ON UNIQUE_JOINTABLE_XML (FK_A_XML)
>> 8:CREATE INDEX I_NQ_SXML_UNIQUEA_AID ON UNIQUE_SECONDARY_XML  
>> (UNIQUEA_AID)
>> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 5.049
>> sec <<< FAILURE!
>> testMapping 
>> (org 
>> .apache 
>> .openjpa 
>> .persistence.jdbc.unique.TestUniqueConstraintWithXMLDescriptor)
>> Time elapsed: 5.046 sec  <<< FAILURE!
>> junit.framework.AssertionFailedError: None of the 8 SQL contains all
>> keys [CREATE TABLE UNIQUE_A_XML, UNIQUE \w*\(a1x, a2x\), UNIQUE
>> \w*\(a3x, a4x\)]
>>    at junit.framework.Assert.fail(Assert.java:47)
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .persistence 
>> .jdbc 
>> .unique 
>> .TestUniqueConstraintWithXMLDescriptor 
>> .assertSQLFragnments(TestUniqueConstraintWithXMLDescriptor.java:83)
>>
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .persistence 
>> .jdbc 
>> .unique 
>> .TestUniqueConstraintWithXMLDescriptor 
>> .testMapping(TestUniqueConstraintWithXMLDescriptor.java:62)
>>
>> ...
>> testForeignKey 
>> (org 
>> .apache 
>> .openjpa.persistence.relations.TestCascadingOneManyWithForeignKey)
>> Time elapsed: 0.506 sec  <<< FAILURE!
>> junit.framework.AssertionFailedError: Commit should have failed due  
>> to
>> FK constraint violation.
>>    at junit.framework.Assert.fail(Assert.java:47)
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .persistence 
>> .relations 
>> .TestCascadingOneManyWithForeignKey 
>> .testForeignKey(TestCascadingOneManyWithForeignKey.java:144)
>>
>> ...
>> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Field
>> 'int_not_null_no_default_null_value_default' doesn't have a default
>> value {prepstmnt 9810063 INSERT INTO NullValues (id, notNullable,
>> notNullableBlob, notOptional, notOptionalBlob, nullable,  
>> nullableBlob,
>> optional, optionalBlob, version) VALUES  
>> (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
>> [params=(long) 1, (int) 42, (InputStream)
>> java.io.ByteArrayInputStream@9cc8fe, (int) 42, (InputStream)
>> java.io.ByteArrayInputStream@daebbf, (int) 42, (InputStream)
>> java.io.ByteArrayInputStream@e22e4b, (int) 42, (InputStream)
>> java.io.ByteArrayInputStream@e24abe, (int) 1]} [code=1364,  
>> state=HY000]
>>    at
>> org 
>> .apache 
>> .openjpa 
>> .lib 
>> .jdbc 
>> .LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
>>
>>
>>
>> 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