1
2
3
4
5
6
7
8
9
10
11 package org.mule.component;
12
13 import org.mule.api.MessagingException;
14 import org.mule.api.MuleEvent;
15 import org.mule.api.component.Component;
16 import org.mule.config.i18n.CoreMessages;
17 import org.mule.config.i18n.Message;
18
19
20
21
22
23
24 public class ComponentException extends MessagingException
25 {
26
27
28
29 private static final long serialVersionUID = 56178344205041600L;
30
31 private final transient Component component;
32
33 public ComponentException(Message message, MuleEvent muleMessage, Component component)
34 {
35 super(generateMessage(message, component), muleMessage);
36 this.component = component;
37 }
38
39 public ComponentException(Message message, MuleEvent event, Component component, Throwable cause)
40 {
41 super(generateMessage(message, component), event, cause);
42 this.component = component;
43 }
44
45 public ComponentException(MuleEvent message, Component component, Throwable cause)
46 {
47 super(generateMessage(null, component), message, cause);
48 this.component = component;
49 }
50
51 public Component getComponent()
52 {
53 return component;
54 }
55
56 private static Message generateMessage(Message previousMessage, Component component)
57 {
58 Message returnMessage = CoreMessages.componentCausedErrorIs(component);
59 if (previousMessage != null)
60 {
61 previousMessage.setNextMessage(returnMessage);
62 return previousMessage;
63 }
64 else
65 {
66 return returnMessage;
67 }
68 }
69 }