camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Hecker (JIRA)" <>
Subject [jira] Created: (CAMEL-1650) Race condition in IdempotentConsumer
Date Wed, 27 May 2009 12:39:50 GMT
Race condition in IdempotentConsumer

                 Key: CAMEL-1650
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.0-M1
            Reporter: Oliver Hecker

A possible possible race condition exists in the IdempotentConsumer implementation:
The code first checks in the MessageIdRepository if the message was already processed. If
not then it processes the message and
afterwards adds the id to the repository. (See also
There is no locking
between the check with "contains" and the insert with "add". So if multiple threads/instances
try this in parallel for the same id, then
it might happen that more than one finds the id not yet contained in the repository and the
same message is processed multiple

I enclose an extended version of IdempotentConsumerTest which illustrates the problem.
It is important to note that even if the test demonstrates the issue with an MemoryIdempotentRepository
a solution should also
address the case of a database based respository in a clustered environment. So this might
imply that some locking mechanism on the
database is required.

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

View raw message