1
2
3
4
5
6
7
8
9
10
11 package org.mule.umo;
12
13 import org.mule.config.i18n.CoreMessages;
14 import org.mule.config.i18n.Message;
15 import org.mule.impl.MuleMessage;
16 import org.mule.impl.RequestContext;
17 import org.mule.providers.NullPayload;
18
19 import java.util.Map;
20
21
22
23
24
25
26 public class MessagingException extends UMOException
27 {
28
29
30
31 private static final long serialVersionUID = 6941498759267936649L;
32
33
34
35
36 protected final transient UMOMessage umoMessage;
37
38 public MessagingException(Message message, UMOMessage umoMessage)
39 {
40 super();
41 this.umoMessage = umoMessage;
42 setMessage(generateMessage(message));
43 }
44
45 public MessagingException(Message message, UMOMessage umoMessage, Throwable cause)
46 {
47 super(cause);
48 this.umoMessage = umoMessage;
49 setMessage(generateMessage(message));
50 }
51
52 public MessagingException(Message message, Object payload)
53 {
54 super();
55 if (payload == null)
56 {
57 this.umoMessage = RequestContext.getEventContext().getMessage();
58 }
59 else
60 {
61 this.umoMessage = new MuleMessage(payload, (Map) null);
62 }
63 setMessage(generateMessage(message));
64 }
65
66 public MessagingException(Message message, Object payload, Throwable cause)
67 {
68 super(cause);
69 if (payload == null)
70 {
71 this.umoMessage = RequestContext.getEventContext().getMessage();
72 }
73 else
74 {
75 this.umoMessage = new MuleMessage(payload, (Map) null);
76 }
77 setMessage(generateMessage(message));
78 }
79
80 private String generateMessage(Message message)
81 {
82 StringBuffer buf = new StringBuffer(80);
83
84 if (message != null)
85 {
86 buf.append(message.getMessage()).append(". ");
87 }
88
89 if (umoMessage != null)
90 {
91 Object payload = umoMessage.getPayload();
92 if (payload == null)
93 {
94 payload = NullPayload.getInstance();
95 }
96
97 buf.append(CoreMessages.messageIsOfType(payload.getClass()).getMessage());
98 addInfo("Payload", payload.toString());
99 }
100 else
101 {
102 buf.append("The current UMOMessage is null! Please report this to dev@mule.codehaus.org.");
103 addInfo("Payload", NullPayload.getInstance().toString());
104 }
105
106 return buf.toString();
107 }
108
109 public UMOMessage getUmoMessage()
110 {
111 return umoMessage;
112 }
113
114 }