You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Charles Moulliard (JIRA)" <ji...@apache.org> on 2009/07/09 14:41:07 UTC

[jira] Created: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
---------------------------------------------------------------------------------------------------

                 Key: CAMEL-1816
                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
             Project: Apache Camel
          Issue Type: Bug
            Reporter: Charles Moulliard


Hi,

When I use the following route :

        <camel:route errorHandlerRef="txErrorHandler"> 
			<camel:from ref="directRequestEndpoint"/>
				<camel:transacted ref="PROPAGATION_REQUIRED"/>
				<camel:doTry>
					<!-- Call the requestService to save the request -->
					<camel:bean ref="serviceHelper" method="createRequest"/>
					<camel:bean ref="serviceHelper" method="generateError" />
					<camel:to ref="queueRequestEndpoint" />
					<camel:doCatch>
						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
						<camel:bean ref="serviceHelper" method="processException"/> -->
						<camel:exception>java.lang.Exception</camel:exception>
						<camel:rollback message="Exception occur"/>
						<camel:to ref="queueReportingEndpoint" />
					</camel:doCatch>
				</camel:doTry>
		</camel:route>

the following error is generated on the console :

14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
    insert 
    into
        x3stst.REQUEST
        (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?)
14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	... 59 more
14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Charles Moulliard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52766#action_52766 ] 

Charles Moulliard commented on CAMEL-1816:
------------------------------------------

I don't know if it is related or not. But If I remove the <transacted/> in my route, I see this error in the log :

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.IllegalArgumentException: interface org.hibernate.jdbc.ConnectionWrapper is not visible from class loader
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
	at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
	at org.springframework.orm.hibernate3.HibernateTransactionManager$$EnhancerByCGLIB$$4a379526.doBegin(<generated>)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy217.saveRequest(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy267.saveRequest(Unknown Source)
	at com.xpectis.x3s.core.util.ServiceHelper.createRequest(ServiceHelper.java:127)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:193)
	at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:115)
	at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:118)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
	at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: interface org.hibernate.jdbc.ConnectionWrapper is not visible from class loader
	at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
	at org.hibernate.jdbc.BorrowedConnectionProxy.generateProxy(BorrowedConnectionProxy.java:91)
	at org.hibernate.jdbc.ConnectionManager.borrowConnection(ConnectionManager.java:186)
	at org.hibernate.jdbc.JDBCContext.borrowConnection(JDBCContext.java:134)
	at org.hibernate.impl.SessionImpl.connection(SessionImpl.java:386)
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:510)

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Charles Moulliard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52768#action_52768 ] 

Charles Moulliard commented on CAMEL-1816:
------------------------------------------

Concerning the error reported in my last comment. This one appears if inside a Camelcontext some routes where db access exist (behind camel bean / spring) are not defined as transacted

e.g.

{code}
<?xml version="1.0" encoding="UTF-8"?>
	<!--
		Copyright (C) 1998-2009 Streamlined Solutions and Services.
		All Rights Reserved. 

	-->
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:osgi="http://www.springframework.org/schema/osgi"
	xmlns:camel="http://camel.apache.org/schema/spring"
	xsi:schemaLocation="
	    http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/osgi
		http://www.springframework.org/schema/osgi/spring-osgi.xsd
		http://camel.apache.org/schema/osgi
		http://camel.apache.org/schema/osgi/camel-osgi.xsd
		http://camel.apache.org/schema/spring
		http://camel.apache.org/schema/spring/camel-spring.xsd">
	
    <bean id="aggregationStrat" class="com.xpectis.x3s.core.util.x3sAggregationStrategy" />
 
    <camel:camelContext id="InToOut" trace="true" xmlns="http://camel.apache.org/schema/osgi">
	
        <!-- Core component 
	     Flow IN to OUT
	     Process P1
	    -->        
        <camel:route>
			<camel:from ref="fileClientEndpoint" />
			
 			<camel:doTry>
				<camel:setHeader headerName="origin">
					<camel:constant>file</camel:constant>
				</camel:setHeader>
beans 
				<!-- Set Message type header with the name of the parent folder -->				
				<camel:bean ref="serviceHelper" method="getParentFolderName"/>
				
		    	<camel:convertBodyTo type="java.lang.String"/>
				<camel:to ref="directRequestEndpoint" />

				<camel:doCatch>
					<camel:exception>java.lang.Exception</camel:exception>
					<camel:to uri="log:x3sLog?level=DEBUG&amp;multiline=true" />
				</camel:doCatch>
			</camel:doTry>

		</camel:route>
        
        <!-- Core component 
	     Flow IN to OUT
	     Process P2 
	    -->
        <camel:route errorHandlerRef="txErrorHandler"> 
			<camel:from ref="directRequestEndpoint"/>
				<camel:transacted ref="PROPAGATION_REQUIRED"/>
				<camel:doTry>
					<!-- Call the requestService to save the request -->
					<camel:bean ref="serviceHelper" method="createRequest"/>
					<!-- <camel:bean ref="serviceHelper" method="generateError" />  -->
					<camel:to ref="queueRequestEndpoint" />
					<camel:doCatch>
						<camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
						<camel:bean ref="serviceHelper" method="processException"/>
						<!-- <camel:rollback message="Exception occur"/>  -->
						<camel:to ref="queueReportingEndpoint" />
					</camel:doCatch>
				</camel:doTry>
		</camel:route>

        <!-- Core component 
	     Flow IN to OUT
	     Process P3 technical parsing
	    --> 		
        <camel:route>
			<camel:from ref="queueRequestEndpoint" />
			<camel:doTry>
			
				<camel:convertBodyTo type="com.xpectis.x3s.platform.model.Request" />
			
				<!-- Parse the request -->
				<camel:bean ref="serviceHelper" method="parseRequest"/>

            	<!-- Check if the request has been parsed -->
				<camel:choice>
					<camel:when>
						<camel:ognl>request.headers.requestStatus = 'ACCEPTED'</camel:ognl>
			        	<camel:to ref="directRequestMessageEndpoint" />
					</camel:when>
					<camel:when>
						<camel:ognl>request.headers.requestStatus = 'REJECTED'</camel:ognl>
			        	<camel:to ref="queueReportingEndpoint" />
					</camel:when>
					<camel:otherwise>
				      	<camel:to ref="queueReportingEndpoint" />
					</camel:otherwise>
				</camel:choice>
			<camel:doCatch>
					<camel:exception>java.lang.Exception</camel:exception>
					<camel:to ref="queueReportingEndpoint" />
			</camel:doCatch>
			</camel:doTry>						
    	</camel:route>
        
        <!-- Core component 
	     Flow IN to OUT
	     Process P3 request message creation
	    --> 		
        <camel:route>  	
			<camel:from ref="directRequestMessageEndpoint" />

                        //
			// Transacted has been removed here
                        //
			
			<!-- Split the collection of messages -->
			<camel:split strategyRef="aggregationStrat">
				<camel:ognl>request.body</camel:ognl>

				<!-- (1) Call the service to save the request message -->
			    <camel:bean ref="serviceHelper" method="createRequestMessage"/>
			    
			    <!-- (2) Validate the business message -->
			    <camel:bean ref="serviceHelper" method="validateRequestMessage"/>
			    
			    <!-- (3) Save business message -->
			    <camel:bean ref="serviceHelper" method="saveRequestMessage"/>
			    
			</camel:split>
			
			<!-- Update Request status -->
			<camel:bean ref="serviceHelper" method="updateRequestStatus" />
			
			<!-- Put result in queue -->
			<camel:to ref="queueRequestMessageEndpoint" />
			
    	</camel:route>
    	
    	<!-- Core component 
	     Flow IN to OUT
	     Process P4 request message transformation
	    --> 
	    <camel:route errorHandlerRef="txErrorHandler">
			<camel:from ref="queueRequestMessageEndpoint" />
			<camel:convertBodyTo type="java.util.List" />
			<camel:transacted ref="PROPAGATION_REQUIRED"/>
			<camel:split>
				<!-- Iterate through the Request list -->
				<camel:ognl>request.body</camel:ognl>
				<camel:bean ref="serviceHelper" method="transformRequestMessage" />
				
			<!-- Check if the request has been transformed -->
			<camel:choice>
				<camel:when>
					<camel:ognl>request.body.ProcessingStatus = true</camel:ognl>
			        <camel:to ref="directTransformedRequestMessageEndpoint" />
				</camel:when>
				<camel:when>
					<camel:ognl>request.body.ProcessingStatus = false</camel:ognl>
			        <camel:to ref="queueReportingEndpoint" />
				</camel:when>
				<camel:otherwise>
				      <camel:to ref="queueReportingEndpoint" />
				</camel:otherwise>
			</camel:choice>
			</camel:split> 
	    
	    </camel:route> 
	    
    	<!-- Core component 
	     Flow IN to OUT
	     Process P5 Sendrequest message transformation
	    --> 
	    <camel:route>
	    	<camel:from ref="directTransformedRequestMessageEndpoint"/>
            <camel:bean ref="serviceHelper" method="createFixMessageFromRequest"/>
            <camel:to ref="quickFixClientEndpoint"/>
        </camel:route>    
	    
	    
	</camel:camelContext>
</beans>
{code}

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Charles Moulliard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52770#action_52770 ] 

Charles Moulliard commented on CAMEL-1816:
------------------------------------------

The rollback occurs. Sorry for my mistake

Nevertheless, I don't understand why we have an error in the log when rollback occurs !!!!!

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52802#action_52802 ] 

Claus Ibsen commented on CAMEL-1816:
------------------------------------

Its spring that logs much when using DEBUG level logging. When using INFO level logging its not verbose.

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>            Assignee: Claus Ibsen
>             Fix For: 2.0.0
>
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52775#action_52775 ] 

Claus Ibsen commented on CAMEL-1816:
------------------------------------

I think the spring framework regardless what will log the stacktrace at DEBUG level if it does a rollback forced by an exception. Yeah its quite verbose in the log, but thats the pain for the gain :)

Maybe I can force the rollback with an exception triggering it. But I am busy at the moment with other stuff.

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-1816.
--------------------------------

    Resolution: Working as Designed

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>            Assignee: Claus Ibsen
>             Fix For: 2.0.0
>
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Charles Moulliard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52769#action_52769 ] 

Charles Moulliard commented on CAMEL-1816:
------------------------------------------

I have added DynamicImport-Package : * in the manifest file of Spring AOP and the second error mentioned has disappeared.

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Charles Moulliard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52767#action_52767 ] 

Charles Moulliard commented on CAMEL-1816:
------------------------------------------

This point is discussed in this spring ticket : http://jira.springframework.org/browse/SPR-5036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
but I use spring Tx 2.5.6

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen reopened CAMEL-1816:
--------------------------------


> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>            Assignee: Claus Ibsen
>             Fix For: 2.0.0
>
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-1816.
--------------------------------

       Resolution: Won't Fix
    Fix Version/s: 2.0.0
         Assignee: Claus Ibsen

> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>            Assignee: Claus Ibsen
>             Fix For: 2.0.0
>
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CAMEL-1816) Spring DSL generates error but dot not propagate the rollback to the TransactionManager

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/CAMEL-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52764#action_52764 ] 

Claus Ibsen commented on CAMEL-1816:
------------------------------------

The stacktrace does not indicate any error. All is DEBUG level output with stacktraces that a rollback was forced.

And the TM said it is going to do a rollback
{code}
4:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate | tion.support.TransactionTemplate 152 | Initiating transaction rollback on application exception
{code}



> Spring DSL <rollback/> generates error but dot not propagate the rollback to the TransactionManager
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1816
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1816
>             Project: Apache Camel
>          Issue Type: Bug
>            Reporter: Charles Moulliard
>
> Hi,
> When I use the following route :
>         <camel:route errorHandlerRef="txErrorHandler"> 
> 			<camel:from ref="directRequestEndpoint"/>
> 				<camel:transacted ref="PROPAGATION_REQUIRED"/>
> 				<camel:doTry>
> 					<!-- Call the requestService to save the request -->
> 					<camel:bean ref="serviceHelper" method="createRequest"/>
> 					<camel:bean ref="serviceHelper" method="generateError" />
> 					<camel:to ref="queueRequestEndpoint" />
> 					<camel:doCatch>
> 						<!-- <camel:exception>com.xpectis.x3s.exception.X3SException</camel:exception>
> 						<camel:bean ref="serviceHelper" method="processException"/> -->
> 						<camel:exception>java.lang.Exception</camel:exception>
> 						<camel:rollback message="Exception occur"/>
> 						<camel:to ref="queueReportingEndpoint" />
> 					</camel:doCatch>
> 				</camel:doTry>
> 		</camel:route>
> the following error is generated on the console :
> 14:38:26,437 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  442 | Found thread-bound Session [org.hibernate.impl.SessionImpl@a62f5b] for Hibernate transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  469 | Participating in existing transaction
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractSaveEventListener        | nt.def.AbstractSaveEventListener  320 | executing identity-insert immediately
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  410 | about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
> 14:38:26,453 | DEBUG | 1: FileComponent | SQL                              | ate.jdbc.util.SQLStatementLogger  111 | 
>     insert 
>     into
>         x3stst.REQUEST
>         (FIL_NM, REQ_STU, BODY_TX, REQ_TYP, CRT_USR_NM, CRT_TS, LUP_USR_NM, LUP_TS) 
>     values
>         (?, ?, ?, ?, ?, ?, ?, ?)
> 14:38:26,453 | DEBUG | 1: FileComponent | IdentifierGeneratorFactory       | te.id.IdentifierGeneratorFactory   95 | Natively generated identity: 1449
> 14:38:26,453 | DEBUG | 1: FileComponent | AbstractBatcher                  | g.hibernate.jdbc.AbstractBatcher  418 | about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
> 14:38:26,468 | DEBUG | 1: FileComponent | BeanProcessor                    | mel.component.bean.BeanProcessor  147 | Setting bean invocation result on the IN message: com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,468 | DEBUG | 1: FileComponent | DefaultListableBeanFactory       | tory.support.AbstractBeanFactory  214 | Returning cached instance of singleton bean 'serviceHelper'
> 14:38:26,484 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger  166 | ID-dell-charles-2908-1247142325218-0-10 >>>  -->, Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091, Exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,484 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091] exception: java.lang.IllegalArgumentException: Generate error
> 14:38:26,515 | INFO  | 1: FileComponent | TraceInterceptor                 | rg.apache.camel.processor.Logger   88 | ID-dell-charles-2908-1247142325218-0-11 >>>  --> [class java.lang.Exception], Pattern:InOnly, Headers:{CamelFileNameOnly=OINP-dummy.txt, CamelFileRelativePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileLastModified=Tue Jun 16 14:50:55 CEST 2009, CamelFileAbsolutePath=d:\temp\data\oinp\OINP-dummy.txt, origin=file, CamelBeanMultiParameterArray=false, messageType=OINP, CamelBeanMethodName=null, CamelFileName=OINP-dummy.txt, CamelFileLength=332, CamelFilePath=d:\temp\data\oinp\OINP-dummy.txt, CamelFileParent=d:\temp\data\oinp, CamelFileAbsolute=true}, BodyType:com.xpectis.x3s.platform.model.Request, Body:com.xpectis.x3s.platform.model.Request@1dbc091
> 14:38:26,515 | DEBUG | 1: FileComponent | Pipeline                         | .apache.camel.processor.Pipeline   95 | Message exchange has failed so breaking out of pipeline: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091] exception: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TryProcessor                     | che.camel.processor.TryProcessor  115 | The exception is handled: true for the exception: java.lang.IllegalArgumentException caused by: Generate error
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | rg.apache.camel.processor.Logger  197 | Rollback exchange due: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | processor.RedeliveryErrorHandler  361 | This exchange is not handled so its marked as failed: Exchange[GenericFileMessage with body: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionErrorHandler          | ng.spi.TransactionErrorHandler$1  127 | Setting transaction to rollbackOnly due to exception being thrown: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more
> 14:38:26,515 | DEBUG | 1: FileComponent | nager$$EnhancerByCGLIB$$4617a97b | stractPlatformTransactionManager  828 | Participating transaction failed - marking existing transaction as rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | HibernateTransactionManager      | ate3.HibernateTransactionManager  695 | Setting Hibernate transaction on Session [org.hibernate.impl.SessionImpl@a62f5b] rollback-only
> 14:38:26,515 | DEBUG | 1: FileComponent | TransactionTemplate              | tion.support.TransactionTemplate  152 | Initiating transaction rollback on application exception
> org.apache.camel.spring.spi.TransactedRuntimeCamelException: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.wrapTransactedRuntimeException(TransactionErrorHandler.java:170)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:121)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
> 	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:86)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:65)
> 	at org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:62)
> 	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:142)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:62)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:198)
> 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:120)
> 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:93)
> 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.RollbackExchangeException: Exception occur on the exchange: Exchange[Message: com.xpectis.x3s.platform.model.Request@1dbc091]
> 	at org.apache.camel.processor.RollbackProcessor.process(RollbackProcessor.java:42)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:73)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
> 	at org.apache.camel.processor.TryProcessor.handleException(TryProcessor.java:110)
> 	at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:78)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52)
> 	at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53)
> 	at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:148)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler.access$101(TransactionErrorHandler.java:41)
> 	at org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:114)
> 	... 59 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.