public void process(Exchange exchange) throws Exception { TracedRouteNodes traced = exchange.getUnitOfWork().getTracedRouteNodes(); // get the list of intercepted nodes List<RouteNode> list = traced.getNodes(); // get the 3rd last as its the bean Processor last = list.get(list.size() - 3).getProcessor(); // wrapped by JMX if (last instanceof InstrumentationProcessor) { InstrumentationProcessor ip = (InstrumentationProcessor) last; last = ip.getProcessor(); } // set error message exchange.getOut().setFault(true); exchange.getOut().setBody("Failed at: " + last.toString()); }