// Fault message
} else if (exchange.getFault() != null) {
// TODO: find a way to send it back to the bean before setting the DONE status
done(exchange);
} else {
MethodInvocation invocation = getMethodInvocationStrategy().createInvocation(
req.getBean(), getBeanInfo(), exchange, this);
if (invocation == null) {
throw new UnknownMessageExchangeTypeException(exchange, this);
}
try {
invocation.proceed();
} catch (Exception e) {
throw e;
} catch (Throwable throwable) {
throw new MethodInvocationFailedException(req.getBean(), invocation, exchange, this, throwable);
}