public class ch.qos.logback.core.helpers.ThrowableToStringArray
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.core.helpers.ThrowableToStringArray
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.helpers.ThrowableToStringArray this
         0: .line 21
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // ch.qos.logback.core.helpers.ThrowableToStringArray this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/core/helpers/ThrowableToStringArray;

  public static java.lang.String[] convert(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 24
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 1 /* strList */
        start local 1 // java.util.List strList
         1: .line 25
            aload 1 /* strList */
            aload 0 /* t */
            aconst_null
            invokestatic ch.qos.logback.core.helpers.ThrowableToStringArray.extract:(Ljava/util/List;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)V
         2: .line 26
            aload 1 /* strList */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // java.util.List strList
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0        t  Ljava/lang/Throwable;
            1    3     1  strList  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      t     

  private static void extract(java.util.List<java.lang.String>, java.lang.Throwable, java.lang.StackTraceElement[]);
    descriptor: (Ljava/util/List;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.util.List strList
        start local 1 // java.lang.Throwable t
        start local 2 // java.lang.StackTraceElement[] parentSTE
         0: .line 32
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 3 /* ste */
        start local 3 // java.lang.StackTraceElement[] ste
         1: .line 33
            aload 3 /* ste */
            aload 2 /* parentSTE */
            invokestatic ch.qos.logback.core.helpers.ThrowableToStringArray.findNumberOfCommonFrames:([Ljava/lang/StackTraceElement;[Ljava/lang/StackTraceElement;)I
            istore 4 /* numberOfcommonFrames */
        start local 4 // int numberOfcommonFrames
         2: .line 35
            aload 0 /* strList */
            aload 1 /* t */
            aload 2 /* parentSTE */
            invokestatic ch.qos.logback.core.helpers.ThrowableToStringArray.formatFirstLine:(Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 36
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 37
      StackMap locals: java.lang.StackTraceElement[] int int
      StackMap stack:
            aload 0 /* strList */
            new java.lang.StringBuilder
            dup
            ldc "\tat "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* ste */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 36
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 3 /* ste */
            arraylength
            iload 4 /* numberOfcommonFrames */
            isub
            if_icmplt 5
        end local 5 // int i
         8: .line 40
            iload 4 /* numberOfcommonFrames */
            ifeq 10
         9: .line 41
            aload 0 /* strList */
            new java.lang.StringBuilder
            dup
            ldc "\t... "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* numberOfcommonFrames */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " common frames omitted"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 44
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 5 /* cause */
        start local 5 // java.lang.Throwable cause
        11: .line 45
            aload 5 /* cause */
            ifnull 13
        12: .line 46
            aload 0 /* strList */
            aload 5 /* cause */
            aload 3 /* ste */
            invokestatic ch.qos.logback.core.helpers.ThrowableToStringArray.extract:(Ljava/util/List;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)V
        13: .line 48
      StackMap locals: java.lang.Throwable
      StackMap stack:
            return
        end local 5 // java.lang.Throwable cause
        end local 4 // int numberOfcommonFrames
        end local 3 // java.lang.StackTraceElement[] ste
        end local 2 // java.lang.StackTraceElement[] parentSTE
        end local 1 // java.lang.Throwable t
        end local 0 // java.util.List strList
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0               strList  Ljava/util/List<Ljava/lang/String;>;
            0   14     1                     t  Ljava/lang/Throwable;
            0   14     2             parentSTE  [Ljava/lang/StackTraceElement;
            1   14     3                   ste  [Ljava/lang/StackTraceElement;
            2   14     4  numberOfcommonFrames  I
            4    8     5                     i  I
           11   14     5                 cause  Ljava/lang/Throwable;
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)V
    MethodParameters:
           Name  Flags
      strList    
      t          
      parentSTE  

  private static java.lang.String formatFirstLine(java.lang.Throwable, java.lang.StackTraceElement[]);
    descriptor: (Ljava/lang/Throwable;[Ljava/lang/StackTraceElement;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Throwable t
        start local 1 // java.lang.StackTraceElement[] parentSTE
         0: .line 51
            ldc ""
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         1: .line 52
            aload 1 /* parentSTE */
            ifnull 3
         2: .line 53
            ldc "Caused by: "
            astore 2 /* prefix */
         3: .line 56
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* t */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
        start local 3 // java.lang.String result
         4: .line 57
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            ifnull 6
         5: .line 58
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
         6: .line 60
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.StackTraceElement[] parentSTE
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0          t  Ljava/lang/Throwable;
            0    7     1  parentSTE  [Ljava/lang/StackTraceElement;
            1    7     2     prefix  Ljava/lang/String;
            4    7     3     result  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      t          
      parentSTE  

  private static int findNumberOfCommonFrames(java.lang.StackTraceElement[], java.lang.StackTraceElement[]);
    descriptor: ([Ljava/lang/StackTraceElement;[Ljava/lang/StackTraceElement;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.StackTraceElement[] ste
        start local 1 // java.lang.StackTraceElement[] parentSTE
         0: .line 64
            aload 1 /* parentSTE */
            ifnonnull 2
         1: .line 65
            iconst_0
            ireturn
         2: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* ste */
            arraylength
            iconst_1
            isub
            istore 2 /* steIndex */
        start local 2 // int steIndex
         3: .line 69
            aload 1 /* parentSTE */
            arraylength
            iconst_1
            isub
            istore 3 /* parentIndex */
        start local 3 // int parentIndex
         4: .line 70
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         5: .line 71
            goto 10
         6: .line 72
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* ste */
            iload 2 /* steIndex */
            aaload
            aload 1 /* parentSTE */
            iload 3 /* parentIndex */
            aaload
            invokevirtual java.lang.StackTraceElement.equals:(Ljava/lang/Object;)Z
            ifeq 11
         7: .line 73
            iinc 4 /* count */ 1
         8: .line 77
            iinc 2 /* steIndex */ -1
         9: .line 78
            iinc 3 /* parentIndex */ -1
        10: .line 71
      StackMap locals:
      StackMap stack:
            iload 2 /* steIndex */
            iflt 11
            iload 3 /* parentIndex */
            ifge 6
        11: .line 80
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            ireturn
        end local 4 // int count
        end local 3 // int parentIndex
        end local 2 // int steIndex
        end local 1 // java.lang.StackTraceElement[] parentSTE
        end local 0 // java.lang.StackTraceElement[] ste
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0          ste  [Ljava/lang/StackTraceElement;
            0   12     1    parentSTE  [Ljava/lang/StackTraceElement;
            3   12     2     steIndex  I
            4   12     3  parentIndex  I
            5   12     4        count  I
    MethodParameters:
           Name  Flags
      ste        
      parentSTE  
}
SourceFile: "ThrowableToStringArray.java"