camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <>
Subject [jira] [Resolved] (CAMEL-4401) StreamResequencer poisoned by bad Exchange
Date Tue, 13 Sep 2011 15:45:09 GMT


Claus Ibsen resolved CAMEL-4401.

       Resolution: Fixed
    Fix Version/s: 2.9.0

Resequencer will now validate the incoming Exchange before enqueing. If invalid an exception
is thrown. Added new option ignoreInvalidExchanges to ignore invalid exchanges.

> StreamResequencer poisoned by bad Exchange
> ------------------------------------------
>                 Key: CAMEL-4401
>                 URL:
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.7.1
>         Environment: JDK 1.6.0_20, Linux x86_64
>            Reporter: David Tombs
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 2.9.0
> If a StreamResequencer's configured Expression returns null for an Exchange (e.g., if
a header does not exist) and the resequencer's pipeline is currently empty, the bad Exchange
will be added to the pipeline. ResequencerEnginer.insert() succeeds in calling sequence.add()
with the bad Exchange, but throws an Exception when calling sequence.successor(). This results
in the message ending up at the Error Handler but the bad Exchange still in the Engine's sequence.
Probably insert() should be probably be more transactional.
> After this happens:
> 1) Trying to add a further exchange (even a "good" one) results in an Exception when
calling sequence.add().
> 2) ResequencerEngine.deliverNext() results in an Exception so no further messages will
be delievered.
> I will attach a unit test to reproduce when I get a chance.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message