Coverage Report - org.mule.api.MessagingException
 
Classes in this File Line Coverage Branch Coverage Complexity
MessagingException
59%
20/34
40%
4/10
1.833
 
 1  
 /*
 2  
  * $Id: MessagingException.java 10489 2008-01-23 17:53:38Z dfeist $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 9  
  */
 10  
 
 11  
 package org.mule.api;
 12  
 
 13  
 import org.mule.DefaultMuleMessage;
 14  
 import org.mule.RequestContext;
 15  
 import org.mule.config.MuleManifest;
 16  
 import org.mule.config.i18n.CoreMessages;
 17  
 import org.mule.config.i18n.Message;
 18  
 import org.mule.transport.NullPayload;
 19  
 
 20  
 import java.util.Map;
 21  
 
 22  
 /**
 23  
  * <code>MessagingException</code> is a general message exception thrown when
 24  
  * errors specific to Message processing occur..
 25  
  */
 26  
 
 27  
 public class MessagingException extends MuleException
 28  
 {
 29  
     /**
 30  
      * Serial version
 31  
      */
 32  
     private static final long serialVersionUID = 6941498759267936649L;
 33  
 
 34  
     /**
 35  
      * The MuleMessage being processed when the error occurred
 36  
      */
 37  
     protected final transient MuleMessage umoMessage;
 38  
 
 39  
     public MessagingException(Message message, MuleMessage umoMessage)
 40  
     {
 41  16
         super();
 42  16
         this.umoMessage = umoMessage;
 43  16
         setMessage(generateMessage(message));
 44  16
     }
 45  
 
 46  
     public MessagingException(Message message, MuleMessage umoMessage, Throwable cause)
 47  
     {
 48  10
         super(cause);
 49  10
         this.umoMessage = umoMessage;
 50  10
         setMessage(generateMessage(message));
 51  10
     }
 52  
 
 53  
     public MessagingException(Message message, Object payload)
 54  
     {
 55  0
         super();
 56  0
         if (payload == null)
 57  
         {
 58  0
             this.umoMessage = RequestContext.getEventContext().getMessage();
 59  
         }
 60  
         else
 61  
         {
 62  0
             this.umoMessage = new DefaultMuleMessage(payload, (Map) null);
 63  
         }
 64  0
         setMessage(generateMessage(message));
 65  0
     }
 66  
 
 67  
     public MessagingException(Message message, Object payload, Throwable cause)
 68  
     {
 69  0
         super(cause);
 70  0
         if (payload == null)
 71  
         {
 72  0
             this.umoMessage = RequestContext.getEventContext().getMessage();
 73  
         }
 74  
         else
 75  
         {
 76  0
             this.umoMessage = new DefaultMuleMessage(payload, (Map) null);
 77  
         }
 78  0
         setMessage(generateMessage(message));
 79  0
     }
 80  
 
 81  
     private String generateMessage(Message message)
 82  
     {
 83  26
         StringBuffer buf = new StringBuffer(80);
 84  
 
 85  26
         if (message != null)
 86  
         {
 87  26
             buf.append(message.getMessage()).append(". ");
 88  
         }
 89  
 
 90  26
         if (umoMessage != null)
 91  
         {
 92  22
             Object payload = umoMessage.getPayload();
 93  22
             if (payload == null)
 94  
             {
 95  0
                 payload = NullPayload.getInstance();
 96  
             }
 97  
 
 98  22
             buf.append(CoreMessages.messageIsOfType(payload.getClass()).getMessage());
 99  22
             addInfo("Payload", payload.toString());
 100  22
         }
 101  
         else
 102  
         {
 103  4
             buf.append("The current MuleMessage is null! Please report this to ").append(MuleManifest.getDevListEmail());
 104  4
             addInfo("Payload", NullPayload.getInstance().toString());
 105  
         }
 106  
 
 107  26
         return buf.toString();
 108  
     }
 109  
 
 110  
     public MuleMessage getUmoMessage()
 111  
     {
 112  0
         return umoMessage;
 113  
     }
 114  
 
 115  
 }