Class ThrowableProxy

  • All Implemented Interfaces:
    java.io.Serializable

    public class ThrowableProxy
    extends java.lang.Object
    implements java.io.Serializable
    Wraps a Throwable to add packaging information about each stack trace element.

    A proxy is used to represent a throwable that may not exist in a different class loader or JVM. When an application deserializes a ThrowableProxy, the throwable may not be set, but the throwable's information is preserved in other fields of the proxy like the message and stack trace.

    TODO: Move this class to org.apache.logging.log4j.core because it is used from LogEvent.

    TODO: Deserialize: Try to rebuild Throwable if the target exception is in this class loader?

    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ThrowableProxy​(java.lang.Throwable throwable)
      Constructs the wrapper for the Throwable that includes packaging data.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      void formatExtendedStackTraceTo​(java.lang.StringBuilder sb, java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix, java.lang.String lineSeparator)
      Formats the stack trace including packaging information.
      void formatWrapper​(java.lang.StringBuilder sb, ThrowableProxy cause, java.lang.String suffix)
      Formats the specified Throwable.
      void formatWrapper​(java.lang.StringBuilder sb, ThrowableProxy cause, java.util.List<java.lang.String> ignorePackages, java.lang.String suffix)
      Formats the specified Throwable.
      void formatWrapper​(java.lang.StringBuilder sb, ThrowableProxy cause, java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix)
      Formats the specified Throwable.
      void formatWrapper​(java.lang.StringBuilder sb, ThrowableProxy cause, java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix, java.lang.String lineSeparator)
      Formats the specified Throwable.
      ThrowableProxy getCauseProxy()  
      java.lang.String getCauseStackTraceAsString​(java.lang.String suffix)
      Formats the Throwable that is the cause of this Throwable.
      java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> packages, java.lang.String suffix)
      Formats the Throwable that is the cause of this Throwable.
      java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix)
      Formats the Throwable that is the cause of this Throwable.
      java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix, java.lang.String lineSeparator)
      Formats the Throwable that is the cause of this Throwable.
      int getCommonElementCount()
      Returns the number of elements that are being omitted because they are common with the parent Throwable's stack trace.
      ExtendedStackTraceElement[] getExtendedStackTrace()
      Gets the stack trace including packaging information.
      java.lang.String getExtendedStackTraceAsString()
      Formats the stack trace including packaging information.
      java.lang.String getExtendedStackTraceAsString​(java.lang.String suffix)
      Formats the stack trace including packaging information.
      java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages, java.lang.String suffix)
      Formats the stack trace including packaging information.
      java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix)
      Formats the stack trace including packaging information.
      java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages, TextRenderer textRenderer, java.lang.String suffix, java.lang.String lineSeparator)
      Formats the stack trace including packaging information.
      java.lang.String getLocalizedMessage()  
      java.lang.String getMessage()  
      java.lang.String getName()
      Return the FQCN of the Throwable.
      java.lang.StackTraceElement[] getStackTrace()  
      ThrowableProxy[] getSuppressedProxies()
      Gets proxies for suppressed exceptions.
      java.lang.String getSuppressedStackTrace​(java.lang.String suffix)
      Formats the suppressed Throwables.
      java.lang.Throwable getThrowable()
      The throwable or null if this object is deserialized from XML or JSON.
      int hashCode()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ThrowableProxy

        public ThrowableProxy​(java.lang.Throwable throwable)
        Constructs the wrapper for the Throwable that includes packaging data.
        Parameters:
        throwable - The Throwable to wrap, must not be null.
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • formatWrapper

        public void formatWrapper​(java.lang.StringBuilder sb,
                                  ThrowableProxy cause,
                                  java.lang.String suffix)
        Formats the specified Throwable.
        Parameters:
        sb - StringBuilder to contain the formatted Throwable.
        cause - The Throwable to format.
        suffix -
      • formatWrapper

        public void formatWrapper​(java.lang.StringBuilder sb,
                                  ThrowableProxy cause,
                                  java.util.List<java.lang.String> ignorePackages,
                                  java.lang.String suffix)
        Formats the specified Throwable.
        Parameters:
        sb - StringBuilder to contain the formatted Throwable.
        cause - The Throwable to format.
        ignorePackages - The List of packages to be suppressed from the trace.
        suffix -
      • formatWrapper

        public void formatWrapper​(java.lang.StringBuilder sb,
                                  ThrowableProxy cause,
                                  java.util.List<java.lang.String> ignorePackages,
                                  TextRenderer textRenderer,
                                  java.lang.String suffix)
        Formats the specified Throwable.
        Parameters:
        sb - StringBuilder to contain the formatted Throwable.
        cause - The Throwable to format.
        ignorePackages - The List of packages to be suppressed from the stack trace.
        textRenderer - The text renderer.
        suffix - Append this to the end of each stack frame.
      • formatWrapper

        public void formatWrapper​(java.lang.StringBuilder sb,
                                  ThrowableProxy cause,
                                  java.util.List<java.lang.String> ignorePackages,
                                  TextRenderer textRenderer,
                                  java.lang.String suffix,
                                  java.lang.String lineSeparator)
        Formats the specified Throwable.
        Parameters:
        sb - StringBuilder to contain the formatted Throwable.
        cause - The Throwable to format.
        ignorePackages - The List of packages to be suppressed from the stack trace.
        textRenderer - The text renderer.
        suffix - Append this to the end of each stack frame.
        lineSeparator - The end-of-line separator.
      • getCauseStackTraceAsString

        public java.lang.String getCauseStackTraceAsString​(java.lang.String suffix)
        Formats the Throwable that is the cause of this Throwable.
        Parameters:
        suffix -
        Returns:
        The formatted Throwable that caused this Throwable.
      • getCauseStackTraceAsString

        public java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> packages,
                                                           java.lang.String suffix)
        Formats the Throwable that is the cause of this Throwable.
        Parameters:
        packages - The List of packages to be suppressed from the trace.
        suffix - Append this to the end of each stack frame.
        Returns:
        The formatted Throwable that caused this Throwable.
      • getCauseStackTraceAsString

        public java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> ignorePackages,
                                                           TextRenderer textRenderer,
                                                           java.lang.String suffix)
        Formats the Throwable that is the cause of this Throwable.
        Parameters:
        ignorePackages - The List of packages to be suppressed from the trace.
        textRenderer - The text renderer.
        suffix - Append this to the end of each stack frame.
        Returns:
        The formatted Throwable that caused this Throwable.
      • getCauseStackTraceAsString

        public java.lang.String getCauseStackTraceAsString​(java.util.List<java.lang.String> ignorePackages,
                                                           TextRenderer textRenderer,
                                                           java.lang.String suffix,
                                                           java.lang.String lineSeparator)
        Formats the Throwable that is the cause of this Throwable.
        Parameters:
        ignorePackages - The List of packages to be suppressed from the stack trace.
        textRenderer - The text renderer.
        suffix - Append this to the end of each stack frame.
        lineSeparator - The end-of-line separator.
        Returns:
        The formatted Throwable that caused this Throwable.
      • getCommonElementCount

        public int getCommonElementCount()
        Returns the number of elements that are being omitted because they are common with the parent Throwable's stack trace.
        Returns:
        The number of elements omitted from the stack trace.
      • getExtendedStackTrace

        public ExtendedStackTraceElement[] getExtendedStackTrace()
        Gets the stack trace including packaging information.
        Returns:
        The stack trace including packaging information.
      • getExtendedStackTraceAsString

        public java.lang.String getExtendedStackTraceAsString()
        Formats the stack trace including packaging information.
        Returns:
        The formatted stack trace including packaging information.
      • getExtendedStackTraceAsString

        public java.lang.String getExtendedStackTraceAsString​(java.lang.String suffix)
        Formats the stack trace including packaging information.
        Parameters:
        suffix - Append this to the end of each stack frame.
        Returns:
        The formatted stack trace including packaging information.
      • getExtendedStackTraceAsString

        public java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages,
                                                              java.lang.String suffix)
        Formats the stack trace including packaging information.
        Parameters:
        ignorePackages - List of packages to be ignored in the trace.
        suffix - Append this to the end of each stack frame.
        Returns:
        The formatted stack trace including packaging information.
      • getExtendedStackTraceAsString

        public java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages,
                                                              TextRenderer textRenderer,
                                                              java.lang.String suffix)
        Formats the stack trace including packaging information.
        Parameters:
        ignorePackages - List of packages to be ignored in the trace.
        textRenderer - The message renderer.
        suffix - Append this to the end of each stack frame.
        Returns:
        The formatted stack trace including packaging information.
      • getExtendedStackTraceAsString

        public java.lang.String getExtendedStackTraceAsString​(java.util.List<java.lang.String> ignorePackages,
                                                              TextRenderer textRenderer,
                                                              java.lang.String suffix,
                                                              java.lang.String lineSeparator)
        Formats the stack trace including packaging information.
        Parameters:
        ignorePackages - List of packages to be ignored in the trace.
        textRenderer - The message renderer.
        suffix - Append this to the end of each stack frame.
        lineSeparator - The end-of-line separator.
        Returns:
        The formatted stack trace including packaging information.
      • formatExtendedStackTraceTo

        public void formatExtendedStackTraceTo​(java.lang.StringBuilder sb,
                                               java.util.List<java.lang.String> ignorePackages,
                                               TextRenderer textRenderer,
                                               java.lang.String suffix,
                                               java.lang.String lineSeparator)
        Formats the stack trace including packaging information.
        Parameters:
        sb - Destination.
        ignorePackages - List of packages to be ignored in the trace.
        textRenderer - The message renderer.
        suffix - Append this to the end of each stack frame.
        lineSeparator - The end-of-line separator.
      • getLocalizedMessage

        public java.lang.String getLocalizedMessage()
      • getMessage

        public java.lang.String getMessage()
      • getName

        public java.lang.String getName()
        Return the FQCN of the Throwable.
        Returns:
        The FQCN of the Throwable.
      • getStackTrace

        public java.lang.StackTraceElement[] getStackTrace()
      • getSuppressedProxies

        public ThrowableProxy[] getSuppressedProxies()
        Gets proxies for suppressed exceptions.
        Returns:
        proxies for suppressed exceptions.
      • getSuppressedStackTrace

        public java.lang.String getSuppressedStackTrace​(java.lang.String suffix)
        Formats the suppressed Throwables.
        Parameters:
        suffix -
        Returns:
        The formatted suppressed Throwables.
      • getThrowable

        public java.lang.Throwable getThrowable()
        The throwable or null if this object is deserialized from XML or JSON.
        Returns:
        The throwable or null if this object is deserialized from XML or JSON.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object