1
2
3
4
5
6
7
8
9
10
11 package org.mule.processor;
12
13 import org.mule.api.MuleEvent;
14 import org.mule.api.MuleException;
15 import org.mule.config.ExceptionHelper;
16 import org.mule.message.DefaultExceptionPayload;
17 import org.mule.transport.NullPayload;
18
19 public class ExceptionHandlingMessageProcessor extends AbstractInterceptingMessageProcessor
20 {
21 public MuleEvent process(MuleEvent event) throws MuleException
22 {
23 try
24 {
25 return processNext(event);
26 }
27 catch (Exception e)
28 {
29 e = (Exception) ExceptionHelper.sanitizeIfNeeded(e);
30 if (e instanceof InternalProcessingException)
31 {
32 event.getMessage().setPayload(NullPayload.getInstance());
33 event.getMessage().setExceptionPayload(new DefaultExceptionPayload(e));
34 return event;
35 }
36 else
37 {
38 return event.getFlowConstruct().getExceptionListener().handleException(e, event);
39 }
40 }
41 }
42 }