Hi Tom,
That looks like it will correct the problem for 2.4.0-RC1. Does this mean that the new JPQL parser has some bugs?
I was looking for a change list for between 2.3.x and 2.4 but was unable to find it myself - is there one? I'm just cautious of patching two components in our software stack; if anything goes wrong it may cloud any problem solving. If we can get 2.3.3 working too then that gives us more options - do you have any ideas that might help for that version?
Many Thanks
Nathan
-----Original Message-----
From: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] On Behalf Of Tom Ware
Sent: 07 June 2012 18:54
To: eclipselink-users@xxxxxxxxxxx
Subject: Re: [eclipselink-users] EclipseLink 2.3.3-M1/2.4.0-RC1 & WebSphere 7.0.0.23
Lets see if we can get the 2.4 version running first.
We changed to a new JPQL parser. Try reverting to the old parser using persistence unit property:
eclipselink.jpql.parser=org.eclipse.persistence.queries.ANTLRQueryBuilder
-Tom
On 07/06/2012 11:49 AM, Nathan Drew wrote:
> Hi,
>
> I was testing upgrading WebSphere from 7.0.0.17 to 7.0.0.23 and was
> forced into trying EclipseLink 2.4.0-RC1, we were on 2.3.3-M1. We do
> need to patch to this level as it contains some official fixes for PMRs that we had open before.
>
> The original error was that 2.3.3-M1 didn't like the Transaction Manager:
>
> [6/7/12 12:05:32:626 UTC] 0000002a SystemOut O [EL Severe]: 2012-06-07
> 12:05:32.624--ServerSession(1169376691)--Local Exception Stack:
>
> Exception [EclipseLink-23004] (Eclipse Persistence Services -
> 2.3.3.v20120111-r10668):
> org.eclipse.persistence.exceptions.TransactionException
>
> Exception Description: Error obtaining the Transaction Manager
>
> Internal Exception: java.lang.ClassCastException:
> com.ibm.ws.tx.jta.TranManagerSet incompatible with
> javax.transaction.TransactionManager
>
> at
> org.eclipse.persistence.exceptions.TransactionException.errorObtaining
> TransactionManager(TransactionException.java:125)
>
> at
> org.eclipse.persistence.transaction.JTATransactionController.<init>(JT
> ATransactionController.java:69)
>
> at
> org.eclipse.persistence.transaction.was.WebSphereTransactionController
> .<init>(WebSphereTransactionController.java:43)
>
> at java.lang.J9VMInternals.newInstanceImpl(Native Method)
>
> at java.lang.Class.newInstance(Class.java:1345)
>
> at
> org.eclipse.persistence.internal.security.PrivilegedAccessHelper.newIn
> stanceFromClass(PrivilegedAccessHelper.java:410)
>
> at
> org.eclipse.persistence.platform.server.ServerPlatformBase.initializeE
> xternalTransactionController(ServerPlatformBase.java:284)
>
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.preConne
> ctDatasource(DatabaseSessionImpl.java:659)
>
> at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAnd
> DetectDatasource(DatabaseSessionImpl.java:581)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.logi
> n(EntityManagerFactoryProvider.java:206)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(Ent
> ityManagerSetupImpl.java:488)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getD
> atabaseSession(EntityManagerFactoryDelegate.java:188)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.crea
> teEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEn
> tityManagerImpl(EntityManagerFactoryImpl.java:294)
>
> at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEn
> tityManager(EntityManagerFactoryImpl.java:279)
>
> at
> com.ibm.ws.jpa.management.JPAEMPool.getEntityManager(JPAEMPool.java:14
> 0)
>
> at
> com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(JPATx
> EntityManager.java:248)
>
> at
> com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(JPATx
> EntityManager.java:173)
>
> at
> com.ibm.ws.jpa.management.JPAEntityManager.createNamedQuery(JPAEntityM
> anager.java:332)
>
> at
> biz.wss.server.services.local.system.ApplicationStateDAOEJB.getApplica
> tionGlobalStateFromDb(ApplicationStateDAOEJB.java:175)
>
> at
> biz.wss.server.services.local.system.ApplicationStateDAOEJB.applicatio
> nStateFlaggedAsUpInDb(ApplicationStateDAOEJB.java:219)
>
> …
>
> So I tried 2.4.0-RC1 and it fails our unit tests and also fails on the
> server, but seems to be fine with the Transaction Manager…
>
> [EL Severe]: ejb: 2012-06-07
> 15:27:26.382--ServerSession(940667589)--Exception
> [EclipseLink-0] (Eclipse Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.JPQLException
>
> [testng] Exception Description: Syntax error parsing [SELECT r FROM
> RuleCondition r WHERE r.ruleType = :ruleType AND r.operator =
> :operator AND (SELECT Count(rcc) FROM r.components rcc ) =
> :componentCount AND (SELECT
> Count(rc2) FROM r.components rc2 WHERE rc2.componentId IN
> :componentIds) = :componentCount].
>
> [testng] [154, 252] The right _expression_ is missing from the logical _expression_.
>
> [testng] 2012-06-07 15:27:26,422 WARN
> org.springframework.test.context.TestContextManager [main]
> (TestContextManager.java:361) - Caught exception while allowing
> TestExecutionListener
> [org.springframework.test.context.transaction.TransactionalTestExecuti
> onListener@47bb2cb] to process 'before' execution of test method
> [public void
> biz.wss.server.services.NamedQueryExeTest.checkNamedQueryNames()
> throws java.lang.Exception] for test instance
> [biz.wss.server.services.NamedQueryExeTest@ee51b2c]
>
> [testng]
> org.springframework.transaction.CannotCreateTransactionException:
> Could not open JPA EntityManager for transaction; nested exception is
> javax.persistence.PersistenceException: Exception [EclipseLink-28019]
> (Eclipse Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
>
> [testng] Exception Description: Deployment of PersistenceUnit [WSSJPA] failed.
> Close all factories for this PersistenceUnit.
>
> [testng] Internal Exception: Exception [EclipseLink-0] (Eclipse
> Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.JPQLException
>
> *[testng] Exception Description: Syntax error parsing [SELECT r FROM
> RuleCondition r WHERE r.ruleType = :ruleType AND r.operator =
> :operator AND (SELECT Count(rcc) FROM r.components rcc ) =
> :componentCount AND (SELECT
> Count(rc2) FROM r.components rc2 WHERE rc2.componentId IN
> :componentIds) =
> :componentCount].*
>
> *[testng] [154, 252] The right _expression_ is missing from the logical
> _expression_.*
>
> [testng] at
> org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransacti
> onManager.java:382)
> ~[org.springframework.orm_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.transaction.support.AbstractPlatformTransactionMan
> ager.getTransaction(AbstractPlatformTransactionManager.java:371)
> ~[org.springframework.transaction_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.test.context.transaction.TransactionalTestExecutio
> nListener$TransactionContext.startTransaction(TransactionalTestExecuti
> onListener.java:507)
> ~[org.springframework.test_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.test.context.transaction.TransactionalTestExecutio
> nListener.startNewTransaction(TransactionalTestExecutionListener.java:
> 269) ~[org.springframework.test_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.test.context.transaction.TransactionalTestExecutio
> nListener.beforeTestMethod(TransactionalTestExecutionListener.java:162
> ) ~[org.springframework.test_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.test.context.TestContextManager.beforeTestMethod(T
> estContextManager.java:358)
> ~[org.springframework.test_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.test.context.testng.AbstractTestNGSpringContextTes
> ts.springTestContextBeforeTestMethod(AbstractTestNGSpringContextTests.
> java:146) [org.springframework.test_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) ~[na:1.6.0_31]
>
> [testng] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j
> ava:39)
> ~[na:1.6.0_31]
>
> [testng] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess
> orImpl.java:25)
> ~[na:1.6.0_31]
>
> [testng] at java.lang.reflect.Method.invoke(Method.java:597)
> ~[na:1.6.0_31]
>
> [testng] at
> org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocati
> onHelper.java:74) [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525
> ) [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:613)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorke
> r.java:125) [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestRunner.runWorkers(TestRunner.java:1125)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestRunner.privateRun(TestRunner.java:749)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestRunner.run(TestRunner.java:600)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:223)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at
> org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:995)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:920)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestNG.run(TestNG.java:856)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestNG.privateMain(TestNG.java:1137)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] at org.testng.TestNG.main(TestNG.java:1101)
> [testng-5.14.6.jar:5.14.6-201012231135]
>
> [testng] Caused by: javax.persistence.PersistenceException: Exception
> [EclipseLink-28019] (Eclipse Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
>
> [testng] Exception Description: Deployment of PersistenceUnit [WSSJPA] failed.
> Close all factories for this PersistenceUnit.
>
> [testng] Internal Exception: Exception [EclipseLink-0] (Eclipse
> Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.JPQLException
>
> [testng] Exception Description: Syntax error parsing [SELECT r FROM
> RuleCondition r WHERE r.ruleType = :ruleType AND r.operator =
> :operator AND (SELECT Count(rcc) FROM r.components rcc ) =
> :componentCount AND (SELECT
> Count(rc2) FROM r.components rc2 WHERE rc2.componentId IN
> :componentIds) = :componentCount].
>
> [testng] [154, 252] The right _expression_ is missing from the logical _expression_.
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDepl
> oyFailedPersistenceException(EntityManagerSetupImpl.java:616)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(Ent
> ityManagerSetupImpl.java:596) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getD
> atabaseSession(EntityManagerFactoryDelegate.java:186)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.crea
> teEntityManagerImpl(EntityManagerFactoryDelegate.java:278)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEn
> tityManagerImpl(EntityManagerFactoryImpl.java:304)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEn
> tityManager(EntityManagerFactoryImpl.java:282)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.springframework.orm.jpa.JpaTransactionManager.createEntityManagerF
> orTransaction(JpaTransactionManager.java:400)
> ~[org.springframework.orm_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] at
> org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransacti
> onManager.java:321)
> ~[org.springframework.orm_3.0.5.RELEASE.jar:3.0.5.RELEASE]
>
> [testng] ... 32 common frames omitted
>
> [testng] Caused by: org.eclipse.persistence.exceptions.EntityManagerSetupException:
>
> [testng] *Exception Description: Deployment of PersistenceUnit [WSSJPA] failed.
> Close all factories for this PersistenceUnit.*
>
> [testng] Internal Exception: Exception [EclipseLink-0] (Eclipse
> Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.JPQLException
>
> [testng] Exception Description: Syntax error parsing [SELECT r FROM
> RuleCondition r WHERE r.ruleType = :ruleType AND r.operator =
> :operator AND (SELECT Count(rcc) FROM r.components rcc ) =
> :componentCount AND (SELECT
> Count(rc2) FROM r.components rc2 WHERE rc2.componentId IN
> :componentIds) = :componentCount].
>
> [testng] [154, 252] The right _expression_ is missing from the logical _expression_.
>
> [testng] at
> org.eclipse.persistence.exceptions.EntityManagerSetupException.deployF
> ailed(EntityManagerSetupException.java:229)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] ... 40 common frames omitted
>
> [testng] Caused by: org.eclipse.persistence.exceptions.JPQLException:
>
> [testng] Exception Description: Syntax error parsing [SELECT r FROM
> RuleCondition r WHERE r.ruleType = :ruleType AND r.operator =
> :operator AND (SELECT Count(rcc) FROM r.components rcc ) =
> :componentCount AND (SELECT
> Count(rc2) FROM r.components rc2 WHERE rc2.componentId IN
> :componentIds) = :componentCount].
>
> [testng] [154, 252] The right _expression_ is missing from the logical _expression_.
>
> [testng] at
> org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException(
> HermesParser.java:150) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate(Hermes
> Parser.java:325) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryIm
> p(HermesParser.java:270) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(Herm
> esParser.java:157) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQu
> ery(EJBQueryImpl.java:138) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.JPAQuery.processJPQLQuery(JPAQuer
> y.java:108) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.JPAQuery.prepare(JPAQuery.java:92
> ) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQue
> ry.java:614) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQue
> ry.java:575) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.sessions.AbstractSession.processJPAQu
> eries(AbstractSession.java:2244)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initiali
> zeDescriptors(DatabaseSessionImpl.java:540)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConn
> ectDatasource(DatabaseSessionImpl.java:777)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(Da
> tabaseSessionImpl.java:735) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.logi
> n(EntityManagerFactoryProvider.java:215)
> ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] at
> org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(Ent
> ityManagerSetupImpl.java:542) ~[Bedrock.libs.jpa.eclipselink.jar:na]
>
> [testng] ... 38 common frames omitted
>
> [testng]
> org.springframework.transaction.CannotCreateTransactionException:
> Could not open JPA EntityManager for transaction; nested exception is
> javax.persistence.PersistenceException: Exception [EclipseLink-28019]
> (Eclipse Persistence Services - 2.4.0.v20120604-r11619):
> org.eclipse.persistence.exceptions.EntityManagerSetupException
>
> Any ideas?
>
> Kind Regards
>
> Nathan
>
>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users