org.springframework.messaging.support

Class ErrorMessage

  • All Implemented Interfaces:
    java.io.Serializable, Message<java.lang.Throwable>


    public class ErrorMessage
    extends GenericMessage<java.lang.Throwable>
    A GenericMessage with a Throwable payload.

    The payload is typically a MessagingException with the message at the point of failure in its failedMessage property. An optional originalMessage may be provided, which represents the message that existed at the point in the stack where the error message is created.

    Consider some code that starts with a message, invokes some process that performs transformation on that message and then fails for some reason, throwing the exception. The exception is caught and an error message produced that contains both the original message, and the transformed message that failed.

    Since:
    4.0
    Author:
    Mark Fisher, Oleg Zhurakousky, Gary Russell
    See Also:
    MessageBuilder, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor and Description
      ErrorMessage(java.lang.Throwable payload)
      Create a new message with the given payload.
      ErrorMessage(java.lang.Throwable payload, java.util.Map<java.lang.String,java.lang.Object> headers)
      Create a new message with the given payload and headers.
      ErrorMessage(java.lang.Throwable payload, java.util.Map<java.lang.String,java.lang.Object> headers, Message<?> originalMessage)
      Create a new message with the given payload, headers and original message.
      ErrorMessage(java.lang.Throwable payload, Message<?> originalMessage)
      Create a new message with the given payload and original message.
      ErrorMessage(java.lang.Throwable payload, MessageHeaders headers)
      A constructor with the MessageHeaders instance to use.
      ErrorMessage(java.lang.Throwable payload, MessageHeaders headers, Message<?> originalMessage)
      Create a new message with the payload, MessageHeaders and original message.
    • Constructor Detail

      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload)
        Create a new message with the given payload.
        Parameters:
        payload - the message payload (never null)
      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload,
                            java.util.Map<java.lang.String,java.lang.Object> headers)
        Create a new message with the given payload and headers. The content of the given header map is copied.
        Parameters:
        payload - the message payload (never null)
        headers - message headers to use for initialization
      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload,
                            MessageHeaders headers)
        A constructor with the MessageHeaders instance to use.

        Note: the given MessageHeaders instance is used directly in the new message, i.e. it is not copied.

        Parameters:
        payload - the message payload (never null)
        headers - message headers
      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload,
                            Message<?> originalMessage)
        Create a new message with the given payload and original message.
        Parameters:
        payload - the message payload (never null)
        originalMessage - the original message (if present) at the point in the stack where the ErrorMessage was created
        Since:
        5.0
      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload,
                            java.util.Map<java.lang.String,java.lang.Object> headers,
                            Message<?> originalMessage)
        Create a new message with the given payload, headers and original message. The content of the given header map is copied.
        Parameters:
        payload - the message payload (never null)
        headers - message headers to use for initialization
        originalMessage - the original message (if present) at the point in the stack where the ErrorMessage was created
        Since:
        5.0
      • ErrorMessage

        public ErrorMessage(java.lang.Throwable payload,
                            MessageHeaders headers,
                            Message<?> originalMessage)
        Create a new message with the payload, MessageHeaders and original message.

        Note: the given MessageHeaders instance is used directly in the new message, i.e. it is not copied.

        Parameters:
        payload - the message payload (never null)
        headers - message headers
        originalMessage - the original message (if present) at the point in the stack where the ErrorMessage was created
        Since:
        5.0
    • Method Detail

      • getOriginalMessage

        @Nullable
        public Message<?> getOriginalMessage()
        Return the original message (if available) at the point in the stack where the ErrorMessage was created.
        Since:
        5.0
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class GenericMessage<java.lang.Throwable>