1
2
3
4
5
6
7
8
9
10
11 package org.mule.api;
12
13 import org.mule.config.MuleManifest;
14 import org.mule.config.i18n.CoreMessages;
15 import org.mule.config.i18n.Message;
16 import org.mule.transport.NullPayload;
17 import org.mule.util.StringUtils;
18
19
20
21
22
23
24 public class MessagingException extends MuleException
25 {
26
27
28
29 private static final long serialVersionUID = 6941498759267936649L;
30
31
32
33
34 protected final transient MuleMessage muleMessage;
35
36
37
38
39 protected final transient MuleEvent event;
40
41
42
43
44 @Deprecated
45 public MessagingException(Message message, MuleMessage muleMessage)
46 {
47 super();
48 this.muleMessage = muleMessage;
49 this.event = null;
50 setMessage(generateMessage(message));
51 }
52
53 public MessagingException(Message message, MuleEvent event)
54 {
55 super();
56 this.event = event;
57 this.muleMessage = (event != null ? event.getMessage() : null);
58 setMessage(generateMessage(message));
59 }
60
61
62
63
64 @Deprecated
65 public MessagingException(Message message, MuleMessage muleMessage, Throwable cause)
66 {
67 super(cause);
68 this.muleMessage = muleMessage;
69 this.event = null;
70 setMessage(generateMessage(message));
71 }
72
73 public MessagingException(Message message, MuleEvent event, Throwable cause)
74 {
75 super(cause);
76 this.event = event;
77 this.muleMessage = (event != null ? event.getMessage() : null);
78 setMessage(generateMessage(message));
79 }
80
81 public MessagingException(MuleEvent event, Throwable cause)
82 {
83 super(cause);
84 this.event = event;
85 this.muleMessage = (event != null ? event.getMessage() : null);
86 setMessage(generateMessage(getI18nMessage()));
87 }
88
89 private String generateMessage(Message message)
90 {
91 StringBuffer buf = new StringBuffer(80);
92
93 if (message != null)
94 {
95 buf.append(message.getMessage()).append(". ");
96 }
97
98 if (muleMessage != null)
99 {
100 Object payload = muleMessage.getPayload();
101 if (payload == null)
102 {
103 payload = NullPayload.getInstance();
104 }
105
106 buf.append(CoreMessages.messageIsOfType(payload.getClass()).getMessage());
107 addInfo("Payload", StringUtils.abbreviate(payload.toString(), 1000));
108 }
109 else
110 {
111 buf.append("The current MuleMessage is null! Please report this to ").append(MuleManifest.getDevListEmail());
112 addInfo("Payload", NullPayload.getInstance().toString());
113 }
114
115 return buf.toString();
116 }
117
118 public MuleMessage getMuleMessage()
119 {
120 if ((event != null) && (muleMessage == null))
121 {
122 return event.getMessage();
123 }
124 return muleMessage;
125 }
126
127 public MuleEvent getEvent()
128 {
129 return event;
130 }
131 }