private void mediate(SoapMessage message) {
if (!MessageUtils.getContextualBoolean(message, MAPAggregator.ADDRESSING_DISABLED, false)) {
if (ContextUtils.isOutbound(message)) {
encode(message, ContextUtils.retrieveMAPs(message, false, true));
} else if (null == ContextUtils.retrieveMAPs(message, false, false, false)) {
AddressingProperties maps = decode(message);
ContextUtils.storeMAPs(maps, message, false);
markPartialResponse(message, maps);
restoreExchange(message, maps);
if (maps != null
&& !MessageUtils.isRequestor(message)
&& message.getExchange().getBindingOperationInfo() == null
&& !MessageUtils.isOutbound(message)
&& maps.getAction() != null) {
//try and use the Action from the maps to find the operation
String action = maps.getAction().getValue();
if (action != null) {
SoapActionInInterceptor.getAndSetOperation(message, action);
}
}
}