Class TransformerDebug

  • Direct Known Subclasses:
    AdminUiTransformerDebug

    public class TransformerDebug
    extends Object
    Debugs transformers selection and activity.

    As transformations are frequently composed of lower level transformations, log messages include a prefix to identify the transformation. A numeric dot notation is used (such as 123.1.2 indicating the second third level transformation of the 123rd top level transformation).

    Author:
    Alan Davis
    • Constructor Detail

      • TransformerDebug

        public TransformerDebug()
    • Method Detail

      • setTransformerLog

        public void setTransformerLog​(org.apache.commons.logging.Log transformerLog)
      • setTransformerDebugLog

        public void setTransformerDebugLog​(org.apache.commons.logging.Log transformerDebugLog)
      • setNodeService

        public void setNodeService​(NodeService nodeService)
      • setMimetypeService

        public void setMimetypeService​(MimetypeService mimetypeService)
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws Exception
        Throws:
        Exception
      • pushMisc

        public void pushMisc()
        Adds a new level to the stack to get a new request number or nesting number. Called prior to working out what transformers are active and prior to listing the supported mimetypes for an active transformer.
      • popTransform

        public void popTransform()
        Called after performing a transform.
      • popMisc

        public void popMisc()
        Removes a frame from the stack. Called prior to working out what transformers are active and prior to listing the supported mimetypes for an active transformer.
      • pop

        protected int pop​(TransformerDebug.Call callType,
                          boolean suppressFinish,
                          boolean suppressChecking)
      • isEnabled

        public boolean isEnabled()
        Indicates if any logging is required.
      • setDebugOutput

        public static boolean setDebugOutput​(boolean debugOutput)
        Enable or disable debug log output. Normally used to hide calls to getTransformer as trace rather than debug level log messages. There are lots of these and it makes it hard to see what is going on.
        Parameters:
        debugOutput - if true both debug and trace is generated. Otherwise all output is trace.
        Returns:
        the original value.
      • debug

        public void debug​(String message)
        Log a message prefixed with the current transformation reference.
        Parameters:
        message -
      • debug

        public void debug​(String message,
                          Throwable t)
        Log a message prefixed with the current transformation reference and include a exception, suppressing the stack trace if repeated as we return up the stack of transformers.
        Parameters:
        message -
      • log

        protected void log​(String message)
      • log

        protected void log​(String message,
                           boolean debug)
      • setCause

        public <T extends Throwable> T setCause​(T t)
        Sets the cause of a transformation failure, so that only the message of the Throwable is reported later rather than the full stack trace over and over.
      • getStringBuilder

        public StringBuilder getStringBuilder()
        Returns the current StringBuilder (if any) being used to capture debug information for the current Thread.
      • setStringBuilder

        public void setStringBuilder​(StringBuilder sb)
        Sets the StringBuilder to be used to capture debug information for the current Thread.
      • getFileName

        public String getFileName​(NodeRef sourceNodeRef,
                                  boolean firstLevel,
                                  long sourceSize)
      • getMimetypeExt

        protected String getMimetypeExt​(String mimetype)
      • spaces

        protected String spaces​(int i)
      • ms

        public String ms​(long time)
      • fileSize

        public String fileSize​(long size)
      • debugTransformServiceRequest

        public int debugTransformServiceRequest​(String sourceMimetype,
                                                long sourceSize,
                                                NodeRef sourceNodeRef,
                                                int contentHashcode,
                                                String fileName,
                                                String targetMimetype,
                                                Map<String,​String> options,
                                                String renditionName)
        Debugs a request to the Transform Service
      • debugTransformServiceResponse

        public void debugTransformServiceResponse​(NodeRef sourceNodeRef,
                                                  int contentHashcode,
                                                  long requested,
                                                  int seq,
                                                  String sourceExt,
                                                  String targetExt,
                                                  String msg)
        Debugs a response to the Transform Service
      • toString

        public static String toString​(Map<String,​String> options)
        Obtains a String for log messages.
        Parameters:
        options - to be turned into a string.
        Returns:
        a string of options that may be included in debug messages.