[
https://issues.apache.org/jira/browse/CAMEL-6447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Tytgat updated CAMEL-6447:
------------------------------------
Description:
I just upgraded from 2.10.4 to 2.11.0 and noticed that nested choice
definitions started acting strangely. For example:
{code:java}
.choice()
.when(header(Exchange.EXCEPTION_CAUGHT).isNotNull())
// 1
.setBody(exceptionMessage().append(SystemUtils.LINE_SEPARATOR).append(exceptionStackTrace()))
.choice()
.when(header(HEADER_CONTROLLER_ID).isNotNull())
// 1a
.setHeader(Exchange.FILE_NAME,
simple(AUDIT_CONTROLLER_FAILED_FILENAME + ".error.log"))
.to(ENDPOINT_AUDIT_DIR)
.otherwise()
// 1b
.setHeader(Exchange.FILE_NAME,
simple(AUDIT_FAILED_FILENAME + ".error.log"))
.to(ENDPOINT_AUDIT_DIR)
// INSERTING .end() here solves the issue
.endChoice()
.log(LoggingLevel.WARN, "DLQ written:
${in.header.CamelExceptionCaught}"
.otherwise()
// 2
.log(LoggingLevel.WARN, "DLQ written" + MESSAGE_LOG_FORMAT)
.end()
{code}
I have a test that is supposed to go through 1 and 1a. However it now passes
through 1 and 2!
It looks like the endChoice() in 1b has no effect and the otherwise() in 2 is
executed instead of 1b. Inserting and end() statement as shown seems to solve
the issue, but it looks suspicious.
It's probably a regression introduced by the fix for CAMEL-5953, but I'm not
100% sure.
was:
I just upgraded from 2.10.4 to 2.11.0 and noticed that nested choice
definitions started acting strangely. For example:
.choice()
.when(header(Exchange.EXCEPTION_CAUGHT).isNotNull())
// 1
.setBody(exceptionMessage().append(SystemUtils.LINE_SEPARATOR).append(exceptionStackTrace()))
.choice()
.when(header(HEADER_CONTROLLER_ID).isNotNull())
// 1a
.setHeader(Exchange.FILE_NAME,
simple(AUDIT_CONTROLLER_FAILED_FILENAME + ".error.log"))
.to(ENDPOINT_AUDIT_DIR)
.otherwise()
// 1b
.setHeader(Exchange.FILE_NAME,
simple(AUDIT_FAILED_FILENAME + ".error.log"))
.to(ENDPOINT_AUDIT_DIR)
// INSERTING .end() here solves the issue
.endChoice()
.log(LoggingLevel.WARN, "DLQ written:
${in.header.CamelExceptionCaught}"
.otherwise()
// 2
.log(LoggingLevel.WARN, "DLQ written" + MESSAGE_LOG_FORMAT)
.end()
I have a test that is supposed to go through 1 and 1a. However it now passes
through 1 and 2!
It looks like the endChoice() in 1b has no effect and the otherwise() in 2 is
executed instead of 1b. Inserting and end() statement as shown seems to solve
the issue, but it looks suspicious.
It's probably a regression introduced by the fix for CAMEL-5953, but I'm not
100% sure.
> endChoice() has no effect in nested choice definition
> -----------------------------------------------------
>
> Key: CAMEL-6447
> URL: https://issues.apache.org/jira/browse/CAMEL-6447
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.11.0
> Reporter: Christian Tytgat
>
> I just upgraded from 2.10.4 to 2.11.0 and noticed that nested choice
> definitions started acting strangely. For example:
> {code:java}
> .choice()
> .when(header(Exchange.EXCEPTION_CAUGHT).isNotNull())
> // 1
>
> .setBody(exceptionMessage().append(SystemUtils.LINE_SEPARATOR).append(exceptionStackTrace()))
> .choice()
> .when(header(HEADER_CONTROLLER_ID).isNotNull())
> // 1a
> .setHeader(Exchange.FILE_NAME,
> simple(AUDIT_CONTROLLER_FAILED_FILENAME + ".error.log"))
> .to(ENDPOINT_AUDIT_DIR)
> .otherwise()
> // 1b
> .setHeader(Exchange.FILE_NAME,
> simple(AUDIT_FAILED_FILENAME + ".error.log"))
> .to(ENDPOINT_AUDIT_DIR)
> // INSERTING .end() here solves the issue
> .endChoice()
> .log(LoggingLevel.WARN, "DLQ written:
> ${in.header.CamelExceptionCaught}"
> .otherwise()
> // 2
> .log(LoggingLevel.WARN, "DLQ written" +
> MESSAGE_LOG_FORMAT)
> .end()
> {code}
> I have a test that is supposed to go through 1 and 1a. However it now passes
> through 1 and 2!
> It looks like the endChoice() in 1b has no effect and the otherwise() in 2 is
> executed instead of 1b. Inserting and end() statement as shown seems to solve
> the issue, but it looks suspicious.
> It's probably a regression introduced by the fix for CAMEL-5953, but I'm not
> 100% sure.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira