Hi Claus - thanks again for the response, but I'm still unclear. I've been playing with my test code, and I think this version might illustrate the problem better (I now define endpoints instead of my simpler original that only had a 'Processor()', and I've added 'Thread.sleep()' to the endpoints to show timings).
Notice that the output is *almost* perfect - the only problem is that I get one extra (spurious to my mind!) event being fired (by the ProducerTemplate, as your first reply made clear), which of course screws up invocation counts and average timings for the overall route [direct://testRouteTest]. I know I could probably jump to JMX for all this, but first is there any easy way to eliminate this last event being fired? As you can see from the output, everything would be perfect otherwise - i.e. this code is extremely simple and intuitive, and I'd like to keep it that way if possible. OUTPUT (perfect except for last event, in *bold*): -------- Route 1 ID-UKDB1764398-61884-1376310614400-0-2 exchange Exchange[Message: [Body is null]] sent to: Endpoint[direct://testRoute1] took: 307 ms. Route 2 ID-UKDB1764398-61884-1376310614400-0-2 exchange Exchange[Message: [Body is null]] sent to: Endpoint[direct://testRoute2] took: 0 ms. Route 3 ID-UKDB1764398-61884-1376310614400-0-2 exchange Exchange[Message: [Body is null]] sent to: Endpoint[direct://testRoute3] took: 200 ms. ID-UKDB1764398-61884-1376310614400-0-2 exchange Exchange[Message: [Body is null]] sent to: Endpoint[direct://testRouteTest] took: 530 ms. *ID-UKDB1764398-61884-1376310614400-0-2 exchange Exchange[Message: [Body is null]] sent to: Endpoint[direct://testRouteTest] took: 530 ms.* package com.dnb.core.integration.utils.eip; import java.util.EventObject; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.DefaultExchange; import org.apache.camel.management.event.ExchangeSentEvent; import org.apache.camel.support.EventNotifierSupport; import org.junit.Test; /** * @author McBennettP * * I just created this test case to post to the Camel user list - looks like * a bug to me...!? */ public class SentEventTest { @Test public void testCamel() throws Exception { CamelContext context = new DefaultCamelContext(); context.addRoutes(new RouteBuilder() { public void configure() { from("direct://testRoute1") .routeId("direct://testRoute1") .process(new Processor() { public void process(Exchange exchange) { System.out.println("Route 1"); try { Thread.sleep(300); } catch (InterruptedException e) { } }; }); from("direct://testRoute2") .routeId("direct://testRoute2") .process(new Processor() { public void process(Exchange exchange) { System.out.println("Route 2"); }; }); from("direct://testRoute3") .routeId("direct://testRoute3") .process(new Processor() { public void process(Exchange exchange) { System.out.println("Route 3"); try { Thread.sleep(200); } catch (InterruptedException e) { } }; }); from("direct://testRouteTest") .routeId("direct://testRouteTest") .to("direct://testRoute1") .to("direct://testRoute2") .to("direct://testRoute3"); } }); context.getManagementStrategy().addEventNotifier( new EventNotifierSupport() { @Override public void notify(final EventObject event) throws Exception { final ExchangeSentEvent sent = (ExchangeSentEvent) event; System.out.println(sent); } public boolean isEnabled(final EventObject event) { return (event instanceof ExchangeSentEvent); } protected void doStart() throws Exception { } protected void doStop() throws Exception { } }); context.start(); ProducerTemplate producer = context.createProducerTemplate(); Exchange testExchange = new DefaultExchange(context); producer.send("direct://testRouteTest", testExchange); context.stop(); } } -- View this message in context: http://camel.465427.n5.nabble.com/Bug-with-addEventNotifier-fires-two-exchange-sent-events-for-each-Exchange-sent-tp5737086p5737143.html Sent from the Camel - Users mailing list archive at Nabble.com.