1
2
3
4
5
6
7
8
9
10
11 package org.mule.api.routing;
12
13 import org.mule.api.MessagingException;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.endpoint.ImmutableEndpoint;
16 import org.mule.config.i18n.CoreMessages;
17 import org.mule.config.i18n.Message;
18
19
20
21
22
23
24
25 public class RoutingException extends MessagingException
26 {
27
28
29
30 private static final long serialVersionUID = 2478458847072048645L;
31
32 protected final transient ImmutableEndpoint endpoint;
33
34 public RoutingException(MuleMessage message, ImmutableEndpoint endpoint)
35 {
36 super(generateMessage(null, endpoint), message);
37 this.endpoint = endpoint;
38 }
39
40 public RoutingException(MuleMessage umoMessage, ImmutableEndpoint endpoint, Throwable cause)
41 {
42 super(generateMessage(null, endpoint), umoMessage, cause);
43 this.endpoint = endpoint;
44 }
45
46 public RoutingException(Message message, MuleMessage umoMessage, ImmutableEndpoint endpoint)
47 {
48 super(generateMessage(message, endpoint), umoMessage);
49 this.endpoint = endpoint;
50 }
51
52 public RoutingException(Message message,
53 MuleMessage umoMessage,
54 ImmutableEndpoint endpoint,
55 Throwable cause)
56 {
57 super(generateMessage(message, endpoint), umoMessage, cause);
58 this.endpoint = endpoint;
59 }
60
61 public ImmutableEndpoint getEndpoint()
62 {
63 return endpoint;
64 }
65
66 private static Message generateMessage(Message message, ImmutableEndpoint endpoint)
67 {
68 Message m = CoreMessages.failedToRouterViaEndpoint(endpoint);
69 if (message != null)
70 {
71 message.setNextMessage(m);
72 return message;
73 }
74 else
75 {
76 return m;
77 }
78 }
79 }