[ https://issues.apache.org/jira/browse/CAMEL-5282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13279587#comment-13279587 ]
David Cifer commented on CAMEL-5282: ------------------------------------ Got the idea from the book :-). I used the latch solution on a project, but I was allowed to modify the application life cycle logic... I try to implement server applications, with camel... but the requirements most of the time is a short running feed applications... maybe a reusable but properly implemented shutdown component would be handy :-) > Strange race condition in for SEDA, when shutting down in Camel 2.9.1 > --------------------------------------------------------------------- > > Key: CAMEL-5282 > URL: https://issues.apache.org/jira/browse/CAMEL-5282 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.9.1 > Environment: Windows XP, jdk1.6.0_29 > Reporter: David Cifer > Priority: Critical > Attachments: SedaTimeoutTest.java, > TimeoutSetToDefault30SecSedaTimeoutTest.java > > > We have file endpoints, with idemptotent file repository feeds into a SEDA > chanel. > Behind the SEDA is a solution, which can only deal one file at a time. > If the system some reason shutdowns, than on restart we shouldn't consume > already consumed files. > If exception occurs, we shutdown our application. > This behaviour assured by a unit test, which begin to fail when we introduce > timeout=0 configuration. > Here is the pseudo code: > onException(RuntimeException.class).process(new ShutDown()); > > from("file:/tempfolder/files/?idempotent=true&noop=true&idempotentRepository=#repo&delay=1000") > .inOut("seda:process?timeout=0"); > > from("seda:process").delay(1000).throwException(new RuntimeException("Testing > with exception")); > I use inOut so the file thread, waits for SEDA to acomplish. This serves as > there is an exception happens behind seda side, by using DefaultErrorHandler > strategy it propagates back to file endpoint and the sent file, won't be > marked consumed. > With 2.9.1 the files marked as consumed (meaning recorded in the idempotent > repository) 90% of the times. I say % because sometimes the test passes > without any issue. On 2.9.0 I wasn't able to reproduce the error. > NOTE: When you remove the timeout, than behaviour will be fine > So on 2.9.0 and 2.9.1 with positive timeout there is no issue. > In 2.9.1 timeout < 1 there is issue. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira