Return-Path: X-Original-To: apmail-camel-issues-archive@minotaur.apache.org Delivered-To: apmail-camel-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 48D1218D73 for ; Wed, 17 Feb 2016 08:15:31 +0000 (UTC) Received: (qmail 92856 invoked by uid 500); 17 Feb 2016 08:15:18 -0000 Delivered-To: apmail-camel-issues-archive@camel.apache.org Received: (qmail 92816 invoked by uid 500); 17 Feb 2016 08:15:18 -0000 Mailing-List: contact issues-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list issues@camel.apache.org Received: (qmail 92805 invoked by uid 99); 17 Feb 2016 08:15:18 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 Feb 2016 08:15:18 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 715C22C14F4 for ; Wed, 17 Feb 2016 08:15:18 +0000 (UTC) Date: Wed, 17 Feb 2016 08:15:18 +0000 (UTC) From: "Claus Ibsen (JIRA)" To: issues@camel.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CAMEL-9608) camel-jpa consumer fails to poll after transaction timeout MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CAMEL-9608?page=3Dcom.atlassia= n.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-9608: ------------------------------- Affects Version/s: 2.15.5 > camel-jpa consumer fails to poll after transaction timeout > ---------------------------------------------------------- > > Key: CAMEL-9608 > URL: https://issues.apache.org/jira/browse/CAMEL-9608 > Project: Camel > Issue Type: Bug > Components: camel-jpa > Affects Versions: 2.15.5, 2.16.2 > Reporter: Tomohisa Igarashi > Fix For: 2.15.6, 2.16.3, 2.17.0 > > > On JBoss EAP environment, camel-jpa consumer receives following right aft= er transaction timeout > {noformat} > 15:08:36,356 WARN [org.apache.camel.component.jpa.JpaConsumer] (Camel ({= urnswitchyard-quickstartcamel-jpa-binding0.1.0}camel-jpa-retrieve-binding) = thread #0 - jpa://org.switchyard.quickstarts.camel.jpa.binding.domain.Greet= ) Consumer Consumer[jpa://org.switchyard.quickstarts.camel.jpa.binding.doma= in.Greet?consumeDelete=3Dtrue&consumeLockEntity=3Dfalse&consumer.transacted= =3Dtrue&delay=3D500&initialDelay=3D1000&persistenceUnit=3DJpaEvents&transac= tionManager=3D%23jtaTransactionManager] failed polling endpoint: Endpoint[j= pa://org.switchyard.quickstarts.camel.jpa.binding.domain.Greet?consumeDelet= e=3Dtrue&consumeLockEntity=3Dfalse&consumer.transacted=3Dtrue&delay=3D500&i= nitialDelay=3D1000&persistenceUnit=3DJpaEvents&transactionManager=3D%23jtaT= ransactionManager]. Will try again at next poll. Caused by: [javax.persiste= nce.PersistenceException - org.hibernate.HibernateException: Transaction wa= s rolled back in a different thread!]: javax.persistence.PersistenceExcepti= on: org.hibernate.HibernateException: Transaction was rolled back in a diff= erent thread! > =09at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityM= anagerImpl.java:1387) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.= 2.21.Final-redhat-1] > =09at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityM= anagerImpl.java:1310) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.= 2.21.Final-redhat-1] > =09at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityM= anagerImpl.java:1316) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.= 2.21.Final-redhat-1] > =09at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityMa= nagerImpl.java:911) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.2.= 21.Final-redhat-1] > =09at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar= :1.8.0_65] > =09at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp= l.java:62) [rt.jar:1.8.0_65] > =09at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc= essorImpl.java:43) [rt.jar:1.8.0_65] > =09at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_65] > =09at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEn= tityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:366) = [spring-orm-3.2.12.RELEASE.jar:3.2.12.RELEASE] > =09at com.sun.proxy.$Proxy45.remove(Unknown Source) > =09at org.apache.camel.component.jpa.JpaConsumer$5.deleteObject(JpaConsum= er.java:456) [camel-jpa-2.15.2.jar:2.15.2] > ..... (snip) ..... > Caused by: org.hibernate.HibernateException: Transaction was rolled back = in a different thread! > =09at org.hibernate.engine.transaction.synchronization.internal.Synchroni= zationCallbackCoordinatorTrackingImpl.processAnyDelayedAfterCompletion(Sync= hronizationCallbackCoordinatorTrackingImpl.java:105) [hibernate-core-4.2.21= .Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.internal.SessionImpl.delayedAfterCompletion(SessionIm= pl.java:636) [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-= 1] > =09at org.hibernate.internal.SessionImpl.checkTransactionSynchStatus(Sess= ionImpl.java:2070) [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-r= edhat-1] > =09at org.hibernate.internal.SessionImpl.fireDelete(SessionImpl.java:916)= [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.internal.SessionImpl.delete(SessionImpl.java:855) [hi= bernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityMa= nagerImpl.java:905) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.2.= 21.Final-redhat-1] > =09... 20 more > {noformat} > After this, camel-jpa is no longer able to handle its polling due to stal= ed connection > {noformat} > 15:08:36,860 WARN [org.apache.camel.component.jpa.JpaConsumer] (Camel ({= urnswitchyard-quickstartcamel-jpa-binding0.1.0}camel-jpa-retrieve-binding) = thread #0 - jpa://org.switchyard.quickstarts.camel.jpa.binding.domain.Greet= ) Consumer Consumer[jpa://org.switchyard.quickstarts.camel.jpa.binding.doma= in.Greet?consumeDelete=3Dtrue&consumeLockEntity=3Dfalse&consumer.transacted= =3Dtrue&delay=3D500&initialDelay=3D1000&persistenceUnit=3DJpaEvents&transac= tionManager=3D%23jtaTransactionManager] failed polling endpoint: Endpoint[j= pa://org.switchyard.quickstarts.camel.jpa.binding.domain.Greet?consumeDelet= e=3Dtrue&consumeLockEntity=3Dfalse&consumer.transacted=3Dtrue&delay=3D500&i= nitialDelay=3D1000&persistenceUnit=3DJpaEvents&transactionManager=3D%23jtaT= ransactionManager]. Will try again at next poll. Caused by: [javax.persiste= nce.PersistenceException - org.hibernate.HibernateException: Logical connec= tion is closed]: javax.persistence.PersistenceException: org.hibernate.Hibe= rnateException: Logical connection is closed > =09at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityM= anagerImpl.java:1387) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.= 2.21.Final-redhat-1] > =09at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityM= anagerImpl.java:1310) [hibernate-entitymanager-4.2.21.Final-redhat-1.jar:4.= 2.21.Final-redhat-1] > =09at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:277) [hibe= rnate-entitymanager-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.apache.camel.component.jpa.JpaConsumer$1.doInTransaction(JpaCon= sumer.java:104) [camel-jpa-2.15.2.jar:2.15.2] > =09at org.springframework.transaction.support.TransactionTemplate.execute= (TransactionTemplate.java:131) [spring-tx-3.2.12.RELEASE.jar:3.2.12.RELEASE= ] > =09at org.apache.camel.component.jpa.JpaConsumer.poll(JpaConsumer.java:92= ) [camel-jpa-2.15.2.jar:2.15.2] > ..... (snip) ..... > Caused by: org.hibernate.HibernateException: Logical connection is closed > =09at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnect= ion(LogicalConnectionImpl.java:150) [hibernate-core-4.2.21.Final-redhat-1.j= ar:4.2.21.Final-redhat-1] > =09at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection= (StatementPreparerImpl.java:56) [hibernate-core-4.2.21.Final-redhat-1.jar:4= .2.21.Final-redhat-1] > =09at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepar= e(StatementPreparerImpl.java:159) [hibernate-core-4.2.21.Final-redhat-1.jar= :4.2.21.Final-redhat-1] > =09at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementP= reparationTemplate.prepareStatement(StatementPreparerImpl.java:183) [hibern= ate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQue= ryStatement(StatementPreparerImpl.java:157) [hibernate-core-4.2.21.Final-re= dhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1881)= [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1858)= [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838)= [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.doQuery(Loader.java:906) [hibernate-cor= e-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(= Loader.java:348) [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-red= hat-1] > =09at org.hibernate.loader.Loader.doList(Loader.java:2550) [hibernate-cor= e-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.doList(Loader.java:2536) [hibernate-cor= e-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2366) = [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.Loader.list(Loader.java:2361) [hibernate-core-= 4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:495) [hi= bernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTransl= atorImpl.java:357) [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-r= edhat-1] > =09at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPla= n.java:198) [hibernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1= ] > =09at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1230) [hib= ernate-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) [hibernat= e-core-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:268) [hibe= rnate-entitymanager-4.2.21.Final-redhat-1.jar:4.2.21.Final-redhat-1] > =09... 12 more > {noformat} > According to the Java Persistence API 3.3.2 Transaction Rollback, the per= sistence context could be in inconsistent state after transaction rollback,= which is suggesting to renew the EntityManager instance after transaction = rollback. Actually I verified that if I renewed the EntityManager instance = after rollback then camel-jpa could continue to work after that. I'll submi= t a pull request in a minute. -- This message was sent by Atlassian JIRA (v6.3.4#6332)