You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Pointless <po...@yahoo.com> on 2012/07/05 15:04:51 UTC

Processors in onException block remove message headers in certain cases

Hello,

I'm using Camel with Servicemix (2.7.1.fuse-00-43) with the following route:


The problems is when a system exception is thrown from
CashManagementV01Endpoint, like
"org.apache.xml.security.encryption.XMLEncryptionException: Illegal key
size" (the full stacktrace is below - the reason is known and is not the
subject of this issue), then onException block of the route behaves very
strangely - any custom processor or log statement in it removes all headers
of the message, so that any subsequent processors don't have them. This is
not happenning when <throwException ref="forced" /> is commented out in this
route.

Here are log statements:

When the system error is thrown by CXF endpoint:
2012-07-05 15:19:49,276 | INFO  | gateway.SyncDispatcherRoute |
Exchange[Id:ID:lsp0396c-37215-1341488222238-8:5:1:1:1];ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c]
2012-07-05 15:19:49,337 | DEBUG | cashmanagementv01.InitRoute |
Exchange[Id:ID:lsp0394c-59732-1341487291874-8:141:5:1:1];ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c];CashManagementV01
execution started.
2012-07-05 15:19:49,499 | ERROR | cashmanagementv01.InitRoute |
BEFORE;ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c]
*2012-07-05 15:19:49,499 | ERROR | cashmanagementv01.InitRoute |
AFTER;ReqId[]*

When throwException is used instead:
2012-07-05 15:22:52,530 | INFO  | gateway.SyncDispatcherRoute |
Exchange[Id:ID:lsp0396c-37215-1341488222238-8:6:1:1:1];ReqId[4f2b8303-674e-4853-8089-87ca096baee8]
2012-07-05 15:22:52,562 | DEBUG | cashmanagementv01.InitRoute |
Exchange[Id:ID:lsp0394c-59732-1341487291874-8:141:4:1:1];ReqId[4f2b8303-674e-4853-8089-87ca096baee8];CashManagementV01
execution started.
2012-07-05 15:22:52,569 | ERROR | cashmanagementv01.InitRoute |
BEFORE;ReqId[4f2b8303-674e-4853-8089-87ca096baee8]
*2012-07-05 15:22:52,569 | ERROR | cashmanagementv01.InitRoute |
AFTER;ReqId[4f2b8303-674e-4853-8089-87ca096baee8]*

Why are message headers being removed in the first case?

Igor

===




--
View this message in context: http://camel.465427.n5.nabble.com/Processors-in-onException-block-remove-message-headers-in-certain-cases-tp5715546.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Processors in onException block remove message headers in certain cases

Posted by Christian Müller <ch...@gmail.com>.
I think it's already covered in [1] and fixed in Camel 2.8.5.

[1] https://issues.apache.org/jira/browse/CAMEL-5052

Best,
Christian

On Thu, Jul 5, 2012 at 3:04 PM, Pointless <po...@yahoo.com> wrote:

> Hello,
>
> I'm using Camel with Servicemix (2.7.1.fuse-00-43) with the following
> route:
>
>
> The problems is when a system exception is thrown from
> CashManagementV01Endpoint, like
> "org.apache.xml.security.encryption.XMLEncryptionException: Illegal key
> size" (the full stacktrace is below - the reason is known and is not the
> subject of this issue), then onException block of the route behaves very
> strangely - any custom processor or log statement in it removes all headers
> of the message, so that any subsequent processors don't have them. This is
> not happenning when <throwException ref="forced" /> is commented out in
> this
> route.
>
> Here are log statements:
>
> When the system error is thrown by CXF endpoint:
> 2012-07-05 15:19:49,276 | INFO  | gateway.SyncDispatcherRoute |
>
> Exchange[Id:ID:lsp0396c-37215-1341488222238-8:5:1:1:1];ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c]
> 2012-07-05 15:19:49,337 | DEBUG | cashmanagementv01.InitRoute |
>
> Exchange[Id:ID:lsp0394c-59732-1341487291874-8:141:5:1:1];ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c];CashManagementV01
> execution started.
> 2012-07-05 15:19:49,499 | ERROR | cashmanagementv01.InitRoute |
> BEFORE;ReqId[0bb6cdb7-9ce2-42fa-8db9-cf1b851c025c]
> *2012-07-05 15:19:49,499 | ERROR | cashmanagementv01.InitRoute |
> AFTER;ReqId[]*
>
> When throwException is used instead:
> 2012-07-05 15:22:52,530 | INFO  | gateway.SyncDispatcherRoute |
>
> Exchange[Id:ID:lsp0396c-37215-1341488222238-8:6:1:1:1];ReqId[4f2b8303-674e-4853-8089-87ca096baee8]
> 2012-07-05 15:22:52,562 | DEBUG | cashmanagementv01.InitRoute |
>
> Exchange[Id:ID:lsp0394c-59732-1341487291874-8:141:4:1:1];ReqId[4f2b8303-674e-4853-8089-87ca096baee8];CashManagementV01
> execution started.
> 2012-07-05 15:22:52,569 | ERROR | cashmanagementv01.InitRoute |
> BEFORE;ReqId[4f2b8303-674e-4853-8089-87ca096baee8]
> *2012-07-05 15:22:52,569 | ERROR | cashmanagementv01.InitRoute |
> AFTER;ReqId[4f2b8303-674e-4853-8089-87ca096baee8]*
>
> Why are message headers being removed in the first case?
>
> Igor
>
> ===
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Processors-in-onException-block-remove-message-headers-in-certain-cases-tp5715546.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>