title: Trying to stop Camel exchange processing based on filter
body: <p>My question is very similar to <a href="https://stackoverflow.com/questions/24420660/trouble-filtering-in-camel">this one</a> but the solution there does not work for me here - I am trying to use the filter EIP to discard selected exchanges. My routes look like (edited down for clarity):</p>
  
  <pre><code>from("{{fromSource}}")
   .convertBodyTo(RequestInterface.class)
   .enrich(INVOKE_BACKEND_URI, combiner)
   .to("{{toDestination}}");
  
  from(INVOKE_BACKEND_URI)
   .to(backendUri)
   .filter().method(DiscardResponse.class).log(LoggingLevel.INFO, "Discarding undesired response").stop().end()
   .convertBodyTo(BodyInterface.class);
  </code></pre>
  
  <p>When the filter does NOT select the message, all is well - the log() is not displayed and the message goes to the convertBodyTo() and then back to the main route.</p>
  
  <p>However, when the filter DOES select the message, the log() text is displayed but the exchange still continues on to the convertBodyTo() where it throws an exception because it's a message that shouldn't be there. The stop() appears to either not be executed or has no affect.</p>
  
  <p>Can anyone suggest a solution to this?</p>