eclipse-ee4j / glassfish

Eclipse GlassFish
https://eclipse-ee4j.github.io/glassfish/
377 stars 143 forks source link

cmpToStatefulLocal tests failed on MySQL #8787

Closed glassfishrobot closed 14 years ago

glassfishrobot commented 15 years ago

v3 b55 promoted. The cmpToStatefulLocal tests passed on Derby and OracleDD, but failed on MySQL.

To reproduce the issue, do "ant mysql all" in appserver-sqe/pe/ejb/cmp/addressBook/cmpToStatefulLocal

On MySQL, deployment went through, but ex was shown at runtime in home.create public AddressBookClient(String addressBookName,String owner){ try

{ myAddressBook = home.create(addressBookName,owner); // <-- ex here stat.addStatus(testSuiteID+"-create",stat.PASS); }

catch(java.lang.Exception ex2)

{ stat.addStatus(testSuiteID+"-create",stat.FAIL); ex2.printStackTrace(); beanLocated = false; }

}

server.log [#|2009-07-20T16:16:11.552-0700|WARNING|glassfish| javax.enterprise.resource.jta.com.sun.enterprise.transaction| _ThreadID=28;_ThreadName=Thread-1;|DTX5014: Caught exception in beforeCompletion() callback: com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement: SQL statement<insert into "addressbookbeantable"("addressbookname", "connectedusers", "owner") values ( ?, ?, ?)> with input values:java.lang.String:SunAddressBook, , java.lang.String:SunOwner. Please examine the SQLException for more information. NestedException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '"addressbookbeantable"("addressbookname", "connectedusers", "owner") values ( 'S' at line 1 FailedObjectArray: [com.sun.ejte.j2ee.addressBook.cmpToStatefulLocal.addressBook.AddressBookBeanImpl696625779_JDOState@1f5d66f]

Environment

Operating System: All Platform: All

Affected Versions

[V3]

glassfishrobot commented 5 years ago
glassfishrobot commented 15 years ago

@glassfishrobot Commented mm110999 said:

insert into "addressbookbeantable"("addressbookname","connectedusers", "owner") From the generated insert statement, it seems that some how the vendor type is not being detected correctly. MySQL uses '`' as quote char where as above has '"' as the quote char.

glassfishrobot commented 15 years ago

@glassfishrobot Commented mm110999 said: Following is from Sherry.

/ OK. I found a way to reproduce the problem. Two runs of Derby in a row, OK. Two runs of MySQL in a row, OK. One run of Derby and one run of MySQL in a row, not OK without a restart server, e.g. 1.1) % ant mysql all <-- passed on MySQL 1.2) % ant all <-- failed on Derby. 1.3) % asadmin stop-domain 1.4) % asadmin start-domain 1.5) % ant all <-- pass on Derby 1.6) % ant mysql all <-- failed on MySQL 1.7) % asadmin stop-domain 1.8) % asadmin start-domain 1.9 % ant mysql all <-- pass on MySQL

The error in 1.2 [#|2009-07-20T19:30:56.642-0700|WARNING|glassfish|javax.enterprise.resource.jta.com.sun.enterprise.transaction|_ThreadID=21;_ThreadName=Thread-1;|DTX5014: Caught exception in beforeCompletion() callback: com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement: SQL statement<insert into ADDRESSBOOKBEANTABLE(ADDRESSBOOKNAME, CONNECTEDUSERS, OWNER) values ( ?, ?, ?)> with input values:java.lang.String:SunAddressBook, , java.lang.String:SunOwner. Please examine the SQLException for more information. NestedException: java.sql.SQLSyntaxErrorException: Lexical error at line 1, column 13. Encountered: "`" (96), after : "". FailedObjectArray: [com.sun.ejte.j2ee.addressBook.cmpToStatefulLocal.addressBook.AddressBookBeanImpl696625779_JDOState@120f4c8] at com.sun.jdo.spi.persistence.support.sqlstore.SQLStoreManager.throwJDOSqlException(SQLStoreManager.java:645)

The error in 1.6 [#|2009-07-20T19:39:50.491-0700|WARNING|glassfish|javax.enterprise.resource.jta.com.sun.enterprise.transaction|_ThreadID=19;_ThreadName=Thread-1;|DTX5014: Caught exception in beforeCompletion() callback: com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement: SQL statement<insert into "addressbookbeantable"("addressbookname", "connectedusers", "owner") values ( ?, ?, ?)> with input values:java.lang.String:SunAddressBook, , java.lang.String:SunOwner. Please examine the SQLException for more information. NestedException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '"addressbookbeantable"("addressbookname", "connectedusers", "owner") values ( 'S' at line 1 FailedObjectArray: [com.sun.ejte.j2ee.addressBook.cmpToStatefulLocal.addressBook.AddressBookBeanImpl696625779_JDOState@7ec736] at com.sun.jdo.spi.persistence.support.sqlstore.SQLStoreManager.throwJDOSqlException(SQLStoreManager.java:645) /

glassfishrobot commented 15 years ago

@glassfishrobot Commented mm110999 said: The root cause of the issue is that PMF from previous run is being reused. This happens because the list SunTransactionHelper.pmf_list is not being cleaned up as required.

glassfishrobot commented 15 years ago

@glassfishrobot Commented mm110999 said: Fixed in revision 29660

glassfishrobot commented 14 years ago

@glassfishrobot Commented sherryshen said: verified on v3 b64 promoted.

glassfishrobot commented 15 years ago

@glassfishrobot Commented Was assigned to mm110999

glassfishrobot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA GLASSFISH-8787

glassfishrobot commented 15 years ago

@glassfishrobot Commented Reported by sherryshen

glassfishrobot commented 14 years ago

@glassfishrobot Commented Marked as fixed on Saturday, September 19th 2009, 2:01:42 pm