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