It's invoked by some of the subclasses - for example, a Router can be a simple `MessageHandler` since it does not need a return value. A Filter cannot be a simple MH; and a ServiceActivator can wrap a simple MH into an ARPMH (even though it doesn't return a reply it's wrapped so we still get things like a log "produced no reply".