public void onChildEndpointFail(Endpoint endpoint, MessageContext synMessageContext) {
if (synMessageContext.getProperty(SynapseConstants.LB_FO_ENDPOINT_ORIGINAL_MESSAGE) != null) {
try {
synMessageContext.setEnvelope(
(SOAPEnvelope) synMessageContext.getProperty(SynapseConstants.LB_FO_ENDPOINT_ORIGINAL_MESSAGE));
} catch (AxisFault ex) {
log.error("Couldn't restore the original message to the failover endpoint", ex);
}
}
logOnChildEndpointFail(endpoint, synMessageContext);
if (((AbstractEndpoint)endpoint).isRetry(synMessageContext)) {
if (log.isDebugEnabled()) {
log.debug(this + " Retry Attempt for Request with [Message ID : " +
synMessageContext.getMessageID() + "], [To : " +
synMessageContext.getTo() + "]");
}
send(synMessageContext);
} else {
String msg = "Failover endpoint : " +
(getName() != null ? getName() : SynapseConstants.ANONYMOUS_ENDPOINT) +
" - one of the child endpoints encounterd a non-retry error, " +
"not sending message to another endpoint";
log.warn(msg);
informFailure(synMessageContext, SynapseConstants.ENDPOINT_FO_NONE_READY, msg);
}
}