Coverage Report - org.mule.umo.MessagingException
 
Classes in this File Line Coverage Branch Coverage Complexity
MessagingException
59%
20/34
40%
4/10
1.833
 
 1  
 /*
 2  
  * $Id: MessagingException.java 7963 2007-08-21 08:53:15Z dirk.olmes $
 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.umo;
 12  
 
 13  
 import org.mule.config.i18n.CoreMessages;
 14  
 import org.mule.config.i18n.Message;
 15  
 import org.mule.impl.MuleMessage;
 16  
 import org.mule.impl.RequestContext;
 17  
 import org.mule.providers.NullPayload;
 18  
 
 19  
 import java.util.Map;
 20  
 
 21  
 /**
 22  
  * <code>MessagingException</code> is a general message exception thrown when
 23  
  * errors specific to Message processing occur..
 24  
  */
 25  
 
 26  
 public class MessagingException extends UMOException
 27  
 {
 28  
     /**
 29  
      * Serial version
 30  
      */
 31  
     private static final long serialVersionUID = 6941498759267936649L;
 32  
 
 33  
     /**
 34  
      * The UMOMessage being processed when the error occurred
 35  
      */
 36  
     protected final transient UMOMessage umoMessage;
 37  
 
 38  
     public MessagingException(Message message, UMOMessage umoMessage)
 39  
     {
 40  20
         super();
 41  20
         this.umoMessage = umoMessage;
 42  20
         setMessage(generateMessage(message));
 43  20
     }
 44  
 
 45  
     public MessagingException(Message message, UMOMessage umoMessage, Throwable cause)
 46  
     {
 47  10
         super(cause);
 48  10
         this.umoMessage = umoMessage;
 49  10
         setMessage(generateMessage(message));
 50  10
     }
 51  
 
 52  
     public MessagingException(Message message, Object payload)
 53  
     {
 54  0
         super();
 55  0
         if (payload == null)
 56  
         {
 57  0
             this.umoMessage = RequestContext.getEventContext().getMessage();
 58  
         }
 59  
         else
 60  
         {
 61  0
             this.umoMessage = new MuleMessage(payload, (Map) null);
 62  
         }
 63  0
         setMessage(generateMessage(message));
 64  0
     }
 65  
 
 66  
     public MessagingException(Message message, Object payload, Throwable cause)
 67  
     {
 68  0
         super(cause);
 69  0
         if (payload == null)
 70  
         {
 71  0
             this.umoMessage = RequestContext.getEventContext().getMessage();
 72  
         }
 73  
         else
 74  
         {
 75  0
             this.umoMessage = new MuleMessage(payload, (Map) null);
 76  
         }
 77  0
         setMessage(generateMessage(message));
 78  0
     }
 79  
 
 80  
     private String generateMessage(Message message)
 81  
     {
 82  30
         StringBuffer buf = new StringBuffer(80);
 83  
 
 84  30
         if (message != null)
 85  
         {
 86  30
             buf.append(message.getMessage()).append(". ");
 87  
         }
 88  
 
 89  30
         if (umoMessage != null)
 90  
         {
 91  26
             Object payload = umoMessage.getPayload();
 92  26
             if (payload == null)
 93  
             {
 94  0
                 payload = NullPayload.getInstance();
 95  
             }
 96  
 
 97  26
             buf.append(CoreMessages.messageIsOfType(payload.getClass()).getMessage());
 98  26
             addInfo("Payload", payload.toString());
 99  26
         }
 100  
         else
 101  
         {
 102  4
             buf.append("The current UMOMessage is null! Please report this to dev@mule.codehaus.org.");
 103  4
             addInfo("Payload", NullPayload.getInstance().toString());
 104  
         }
 105  
 
 106  30
         return buf.toString();
 107  
     }
 108  
 
 109  
     public UMOMessage getUmoMessage()
 110  
     {
 111  0
         return umoMessage;
 112  
     }
 113  
 
 114  
 }