1
2
3
4
5
6
7 package org.mule.transport.soap.axis;
8
9 import org.mule.api.config.ExceptionReader;
10
11 import java.util.HashMap;
12 import java.util.Map;
13
14 import org.apache.axis.AxisFault;
15
16
17
18
19
20 public class AxisFaultExceptionReader implements ExceptionReader
21 {
22
23 public String getMessage(Throwable t)
24 {
25 AxisFault e = (AxisFault)t;
26 Map<?, ?> props = getInfo(e);
27 StringBuffer msg = new StringBuffer(64);
28 msg.append("(");
29 for (Map.Entry<?, ?> entry : props.entrySet())
30 {
31 msg.append(entry.getKey()).append(": ").append(entry.getValue()).append(", ");
32 }
33 msg.append(")");
34 return e.getMessage() + msg.toString();
35 }
36
37 public Throwable getCause(Throwable t)
38 {
39 AxisFault e = (AxisFault)t;
40 Throwable cause = e.detail;
41 if (cause == null)
42 {
43 cause = e.getCause();
44 }
45 return cause;
46 }
47
48 public Class<?> getExceptionType()
49 {
50 return AxisFault.class;
51 }
52
53
54
55
56
57
58 public Map<?, ?> getInfo(Throwable t)
59 {
60 AxisFault e = (AxisFault)t;
61 Map<String, Object> info = new HashMap<String, Object>();
62 info.put("Fault", e.getFaultString());
63 info.put("Fault Code", e.getFaultCode().toString());
64 info.put("Fault Actor", e.getFaultActor());
65 info.put("Fault Node", e.getFaultNode());
66 info.put("Fault Reason", e.getFaultReason());
67 info.put("Fault Role", e.getFaultRole());
68 info.put("Fault Dump", e.dumpToString());
69
70
71 return info;
72 }
73 }