title: onCompletion in Camel 2.14
body: <p>I'd like to wrap the result of a processed message into some reply-object to answer a webservice. This is my test-route:</p>
  
  <pre><code>this.from("cxf:someEndpoint")
          .process(new SomeProcessorThatMightThrowAnException())
          .process(new SomeOtherProcessorThatMightThrowAnException())
          .log("normal end of route");
  </code></pre>
  
  <p>Nevermind if there was an exception or not, the result should be wrapped in some object, that is given back to the caller of my ws.</p>
  
  <p>In camel 2.13.x I did this by adding an other processor to the end of the route and to do the same in 'onException'.<br>
  Now I tried to simplify this (technical thing and handle it outside of the 'functional route') in camel 2.14 (2.14 because of 'modeBeforeConsumer'), and added this to my routebuilder:</p>
  
  <pre><code>onCompletion()
      .modeBeforeConsumer()
      .process(new ConvertToWsReplyProcessor());
  </code></pre>
  
  <p>This <code>ConvertToWsReplyProcessor</code> should handle an Exception, but I found no way to see, if there was an Exception, because <code>exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class)</code> is allways null.</p>
  
  <p>Questions:<br>
  1) Is there a way to find out if there was an excetion in <code>onCompletion()</code>?<br>
  2) The only way I found to prevent camel from dumping a stacktrace is to use <code>onException(Ex...).handled(true)</code>, are there others?
  3) How are these onXY processed? Do they get a copy of the exchange? And is onCompletion called last?</p>