Please call the end() after you call the delay() function, then you will get same result as not using delay() function. As you know delay is a delegate processor, end() will tell him there is no other processor it should be delegated to call.
Willem marbor wrote: > > Hi all: > > I have a DSL that works as expected, but when I add delay()'s, it doesn't. > Is this a bug or do I not understand the delay() function? > > Test Class: > > public class ChoiceTesting extends CamelTestSupport { > > @Override > protected RouteBuilder createRouteBuilder() throws Exception { > return new RouteBuilder() { > @Override > public void configure() throws Exception { > from("direct:start") > .log("Starting testing") > .multicast().stopOnException() > .pipeline() > .log("In the beginning! Body=${body}") > .to("direct:dummy") > .choice() > .when(header("KEY").isNotEqualTo("VALUE")) > .log("choice 1") > .wireTap("direct:dummy") > //.delay(500) > .choice() > .when(header("KEY").isNotEqualTo("VALUE")) > .log("choice 2") > .to("direct:dummy") > //.delay(500) > .choice() > .when(header("KEY").isEqualTo("VALUE")) > .log("choice 3") > .throwException(new > RuntimeException("Some Error")) > .end() > .end() > .end() > .end() > .to("direct:middle") > .pipeline() > .log("In the end! Body=${body}") > .end(); > > from("direct:middle") > .log("In the middle! Body=${body}"); > > from("direct:dummy") > .setBody().constant("DUMMY"); > } > }; > } > > @Test > public void run() { > template.sendBody("direct:start", "X"); > } > } > > Produces the expected output of: > > 2011-01-24 15:16:42,891 INFO route1 - Starting testing > 2011-01-24 15:16:42,891 INFO route1 - In the beginning! Body=X > 2011-01-24 15:16:42,891 INFO route1 - choice 1 > 2011-01-24 15:16:42,891 INFO route1 - choice 2 > 2011-01-24 15:16:42,891 INFO route2 - In the middle! Body=X > 2011-01-24 15:16:42,891 INFO route1 - In the end! Body=X > > But when I uncomment the delay() calls, the output changes to: > > 2011-01-24 15:23:55,477 INFO route1 - Starting testing > 2011-01-24 15:23:55,477 INFO route1 - In the beginning! Body=X > 2011-01-24 15:23:55,477 INFO route1 - choice 1 > 2011-01-24 15:23:55,977 INFO route1 - choice 2 > 2011-01-24 15:23:56,477 INFO route2 - In the middle! Body=DUMMY > 2011-01-24 15:23:56,477 INFO route1 - In the end! Body=DUMMY > > I'm using Camel 2.5.0. > > Thanks in advance, > Mark > > Mark Borner > Java Developer - ZStream Xpress > > ---- > This email is intended for the named recipient only. It may contain > information which is confidential, commercially sensitive, or > copyright. If you are not the intended recipient you must not > reproduce or distribute any part of the email, disclose its contents, > or take any action in reliance. If you have received this email in > error, please contact the sender and delete the message. It is your > responsibility to scan this email and any attachments for viruses and > other defects. To the extent permitted by law, Zurich and its > associates will not be liable for any loss or damage arising in any > way from this communication including any file attachments. We may > monitor email you send to us, either as a reply to this email or any > email you send to us, to confirm our systems are protected and for > compliance with company policies. Although we take reasonable > precautions to protect the confidentiality of our email systems, we > do not warrant the confidentiality or security of email or > attachments we receive. > -- View this message in context: http://camel.465427.n5.nabble.com/Delay-causes-unexpected-results-tp3354254p3357308.html Sent from the Camel - Users mailing list archive at Nabble.com.