FaultMode mode = MessageUtils.getFaultMode(message);
if (null != mode) {
Throwable cause = message.getContent(Exception.class).getCause();
if (FaultMode.CHECKED_APPLICATION_FAULT == mode) {
PingMeFault original = (PingMeFault)cause;
FaultDetail detail = new FaultDetail();
detail.setMajor((short)20);
detail.setMinor((short)10);
PingMeFault replaced = new PingMeFault(original.getMessage(), detail);
message.setContent(Exception.class, new Fault(replaced));
} else {
RuntimeException original = (RuntimeException)cause;
RuntimeException replaced = new RuntimeException(original.getMessage().toUpperCase());
message.setContent(Exception.class, new Fault(replaced));