Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
2.9.1
-
None
-
Windows XP, jdk1.6.0_29
-
Unknown
Description
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.