public class org.springframework.util.StopWatch
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.util.StopWatch
  super_class: java.lang.Object
{
  private final java.lang.String id;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean keepTaskList;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<org.springframework.util.StopWatch$TaskInfo> taskList;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/util/StopWatch$TaskInfo;>;

  private long startTimeMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String currentTaskName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.util.StopWatch$TaskInfo lastTaskInfo;
    descriptor: Lorg/springframework/util/StopWatch$TaskInfo;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private int taskCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long totalTimeMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 76
            aload 0 /* this */
            ldc ""
            invokespecial org.springframework.util.StopWatch.<init>:(Ljava/lang/String;)V
         1: .line 77
            return
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/util/StopWatch;

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.util.StopWatch this
        start local 1 // java.lang.String id
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 0 /* this */
            iconst_1
            putfield org.springframework.util.StopWatch.keepTaskList:Z
         2: .line 54
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.springframework.util.StopWatch.taskList:Ljava/util/List;
         3: .line 87
            aload 0 /* this */
            aload 1 /* id */
            putfield org.springframework.util.StopWatch.id:Ljava/lang/String;
         4: .line 88
            return
        end local 1 // java.lang.String id
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/util/StopWatch;
            0    5     1    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  public java.lang.String getId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 98
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.id:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;

  public void setKeepTaskList(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.util.StopWatch this
        start local 1 // boolean keepTaskList
         0: .line 107
            aload 0 /* this */
            iload 1 /* keepTaskList */
            putfield org.springframework.util.StopWatch.keepTaskList:Z
         1: .line 108
            return
        end local 1 // boolean keepTaskList
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/util/StopWatch;
            0    2     1  keepTaskList  Z
    MethodParameters:
              Name  Flags
      keepTaskList  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 117
            aload 0 /* this */
            ldc ""
            invokevirtual org.springframework.util.StopWatch.start:(Ljava/lang/String;)V
         1: .line 118
            return
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/util/StopWatch;
    Exceptions:
      throws java.lang.IllegalStateException

  public void start(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.util.StopWatch this
        start local 1 // java.lang.String taskName
         0: .line 127
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
            ifnull 2
         1: .line 128
            new java.lang.IllegalStateException
            dup
            ldc "Can't start StopWatch: it's already running"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* taskName */
            putfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
         3: .line 131
            aload 0 /* this */
            invokestatic java.lang.System.currentTimeMillis:()J
            putfield org.springframework.util.StopWatch.startTimeMillis:J
         4: .line 132
            return
        end local 1 // java.lang.String taskName
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/util/StopWatch;
            0    5     1  taskName  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalStateException
    MethodParameters:
          Name  Flags
      taskName  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 141
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
            ifnonnull 2
         1: .line 142
            new java.lang.IllegalStateException
            dup
            ldc "Can't stop StopWatch: it's not running"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.startTimeMillis:J
            lsub
            lstore 1 /* lastTime */
        start local 1 // long lastTime
         3: .line 145
            aload 0 /* this */
            dup
            getfield org.springframework.util.StopWatch.totalTimeMillis:J
            lload 1 /* lastTime */
            ladd
            putfield org.springframework.util.StopWatch.totalTimeMillis:J
         4: .line 146
            aload 0 /* this */
            new org.springframework.util.StopWatch$TaskInfo
            dup
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
            lload 1 /* lastTime */
            invokespecial org.springframework.util.StopWatch$TaskInfo.<init>:(Ljava/lang/String;J)V
            putfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
         5: .line 147
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.keepTaskList:Z
            ifeq 7
         6: .line 148
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.taskList:Ljava/util/List;
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 150
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.springframework.util.StopWatch.taskCount:I
            iconst_1
            iadd
            putfield org.springframework.util.StopWatch.taskCount:I
         8: .line 151
            aload 0 /* this */
            aconst_null
            putfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
         9: .line 152
            return
        end local 1 // long lastTime
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/springframework/util/StopWatch;
            3   10     1  lastTime  J
    Exceptions:
      throws java.lang.IllegalStateException

  public boolean isRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 159
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/util/StopWatch;

  public java.lang.String currentTaskName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 169
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.currentTaskName:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public long getLastTaskTimeMillis();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 177
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            ifnonnull 2
         1: .line 178
            new java.lang.IllegalStateException
            dup
            ldc "No tasks run: can't get last task interval"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTimeMillis:()J
            lreturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/StopWatch;
    Exceptions:
      throws java.lang.IllegalStateException

  public java.lang.String getLastTaskName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 187
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            ifnonnull 2
         1: .line 188
            new java.lang.IllegalStateException
            dup
            ldc "No tasks run: can't get last task name"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTaskName:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/StopWatch;
    Exceptions:
      throws java.lang.IllegalStateException

  public org.springframework.util.StopWatch$TaskInfo getLastTaskInfo();
    descriptor: ()Lorg/springframework/util/StopWatch$TaskInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 197
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            ifnonnull 2
         1: .line 198
            new java.lang.IllegalStateException
            dup
            ldc "No tasks run: can't get last task info"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.lastTaskInfo:Lorg/springframework/util/StopWatch$TaskInfo;
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/StopWatch;
    Exceptions:
      throws java.lang.IllegalStateException

  public long getTotalTimeMillis();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 208
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.totalTimeMillis:J
            lreturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;

  public double getTotalTimeSeconds();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 215
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.totalTimeMillis:J
            l2d
            ldc 1000.0
            ddiv
            dreturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;

  public int getTaskCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 222
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.taskCount:I
            ireturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;

  public org.springframework.util.StopWatch$TaskInfo[] getTaskInfo();
    descriptor: ()[Lorg/springframework/util/StopWatch$TaskInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 229
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.keepTaskList:Z
            ifne 2
         1: .line 230
            new java.lang.UnsupportedOperationException
            dup
            ldc "Task info is not being kept!"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.taskList:Ljava/util/List;
            iconst_0
            anewarray org.springframework.util.StopWatch$TaskInfo
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.util.StopWatch$TaskInfo[]
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/StopWatch;

  public java.lang.String shortSummary();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 240
            new java.lang.StringBuilder
            dup
            ldc "StopWatch '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': running time (millis) = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getTotalTimeMillis:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/StopWatch;

  public java.lang.String prettyPrint();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 248
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.shortSummary:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 249
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 250
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.keepTaskList:Z
            ifne 5
         3: .line 251
            aload 1 /* sb */
            ldc "No task info kept"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 252
            goto 21
         5: .line 254
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            ldc "-----------------------------------------\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 255
            aload 1 /* sb */
            ldc "ms     %     Task name\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 256
            aload 1 /* sb */
            ldc "-----------------------------------------\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 257
            invokestatic java.text.NumberFormat.getNumberInstance:()Ljava/text/NumberFormat;
            astore 2 /* nf */
        start local 2 // java.text.NumberFormat nf
         9: .line 258
            aload 2 /* nf */
            iconst_5
            invokevirtual java.text.NumberFormat.setMinimumIntegerDigits:(I)V
        10: .line 259
            aload 2 /* nf */
            iconst_0
            invokevirtual java.text.NumberFormat.setGroupingUsed:(Z)V
        11: .line 260
            invokestatic java.text.NumberFormat.getPercentInstance:()Ljava/text/NumberFormat;
            astore 3 /* pf */
        start local 3 // java.text.NumberFormat pf
        12: .line 261
            aload 3 /* pf */
            iconst_3
            invokevirtual java.text.NumberFormat.setMinimumIntegerDigits:(I)V
        13: .line 262
            aload 3 /* pf */
            iconst_0
            invokevirtual java.text.NumberFormat.setGroupingUsed:(Z)V
        14: .line 263
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getTaskInfo:()[Lorg/springframework/util/StopWatch$TaskInfo;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 20
      StackMap locals: org.springframework.util.StopWatch java.lang.StringBuilder java.text.NumberFormat java.text.NumberFormat top int int org.springframework.util.StopWatch$TaskInfo[]
      StackMap stack:
        15: aload 7
            iload 5
            aaload
            astore 4 /* task */
        start local 4 // org.springframework.util.StopWatch$TaskInfo task
        16: .line 264
            aload 1 /* sb */
            aload 2 /* nf */
            aload 4 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTimeMillis:()J
            invokevirtual java.text.NumberFormat.format:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 265
            aload 1 /* sb */
            aload 3 /* pf */
            aload 4 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTimeSeconds:()D
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getTotalTimeSeconds:()D
            ddiv
            invokevirtual java.text.NumberFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 266
            aload 1 /* sb */
            aload 4 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTaskName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // org.springframework.util.StopWatch$TaskInfo task
        19: .line 263
            iinc 5 1
      StackMap locals:
      StackMap stack:
        20: iload 5
            iload 6
            if_icmplt 15
        end local 3 // java.text.NumberFormat pf
        end local 2 // java.text.NumberFormat nf
        21: .line 269
      StackMap locals: org.springframework.util.StopWatch java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/springframework/util/StopWatch;
            1   22     1    sb  Ljava/lang/StringBuilder;
            9   21     2    nf  Ljava/text/NumberFormat;
           12   21     3    pf  Ljava/text/NumberFormat;
           16   19     4  task  Lorg/springframework/util/StopWatch$TaskInfo;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.springframework.util.StopWatch this
         0: .line 278
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.shortSummary:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 279
            aload 0 /* this */
            getfield org.springframework.util.StopWatch.keepTaskList:Z
            ifeq 10
         2: .line 280
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getTaskInfo:()[Lorg/springframework/util/StopWatch$TaskInfo;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: org.springframework.util.StopWatch java.lang.StringBuilder top int int org.springframework.util.StopWatch$TaskInfo[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* task */
        start local 2 // org.springframework.util.StopWatch$TaskInfo task
         4: .line 281
            aload 1 /* sb */
            ldc "; ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTaskName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] took "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTimeMillis:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
         5: .line 282
            ldc 100.0
            aload 2 /* task */
            invokevirtual org.springframework.util.StopWatch$TaskInfo.getTimeSeconds:()D
            dmul
            aload 0 /* this */
            invokevirtual org.springframework.util.StopWatch.getTotalTimeSeconds:()D
            ddiv
            invokestatic java.lang.Math.round:(D)J
            lstore 6 /* percent */
        start local 6 // long percent
         6: .line 283
            aload 1 /* sb */
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* percent */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "%"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // long percent
        end local 2 // org.springframework.util.StopWatch$TaskInfo task
         7: .line 280
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 3
         9: .line 285
            goto 11
        10: .line 287
      StackMap locals: org.springframework.util.StopWatch java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            ldc "; no task info kept"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 289
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.springframework.util.StopWatch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/springframework/util/StopWatch;
            1   12     1       sb  Ljava/lang/StringBuilder;
            4    7     2     task  Lorg/springframework/util/StopWatch$TaskInfo;
            6    7     6  percent  J
}
SourceFile: "StopWatch.java"
NestMembers:
  org.springframework.util.StopWatch$TaskInfo
InnerClasses:
  public final TaskInfo = org.springframework.util.StopWatch$TaskInfo of org.springframework.util.StopWatch