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