public class java.util.logging.FileHandler extends java.util.logging.StreamHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.logging.FileHandler
  super_class: java.util.logging.StreamHandler
{
  private java.util.logging.FileHandler$MeteredStream meter;
    descriptor: Ljava/util/logging/FileHandler$MeteredStream;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private java.lang.String pattern;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String lockFileName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.FileChannel lockFileChannel;
    descriptor: Ljava/nio/channels/FileChannel;
    flags: (0x0002) ACC_PRIVATE

  private java.io.File[] files;
    descriptor: [Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  private static final int MAX_LOCKS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

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

  private static final java.util.Set<java.lang.String> locks;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 153
            ldc Ljava/util/logging/FileHandler;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.util.logging.FileHandler.$assertionsDisabled:Z
         3: .line 164
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void open(java.io.File, boolean);
    descriptor: (Ljava/io/File;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.io.File fname
        start local 2 // boolean append
         0: .line 210
            lconst_0
            lstore 3 /* len */
        start local 3 // long len
         1: .line 211
            iload 2 /* append */
            ifeq 3
         2: .line 212
            aload 1 /* fname */
            invokevirtual java.io.File.length:()J
            lstore 3 /* len */
         3: .line 214
      StackMap locals: long
      StackMap stack:
            new java.io.FileOutputStream
            dup
            aload 1 /* fname */
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            iload 2 /* append */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;Z)V
            astore 5 /* fout */
        start local 5 // java.io.FileOutputStream fout
         4: .line 215
            new java.io.BufferedOutputStream
            dup
            aload 5 /* fout */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* bout */
        start local 6 // java.io.BufferedOutputStream bout
         5: .line 216
            aload 0 /* this */
            new java.util.logging.FileHandler$MeteredStream
            dup
            aload 6 /* bout */
            lload 3 /* len */
            invokespecial java.util.logging.FileHandler$MeteredStream.<init>:(Ljava/io/OutputStream;J)V
            putfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
         6: .line 217
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
            invokevirtual java.util.logging.FileHandler.setOutputStream:(Ljava/io/OutputStream;)V
         7: .line 218
            return
        end local 6 // java.io.BufferedOutputStream bout
        end local 5 // java.io.FileOutputStream fout
        end local 3 // long len
        end local 2 // boolean append
        end local 1 // java.io.File fname
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/util/logging/FileHandler;
            0    8     1   fname  Ljava/io/File;
            0    8     2  append  Z
            1    8     3     len  J
            4    8     5    fout  Ljava/io/FileOutputStream;
            5    8     6    bout  Ljava/io/BufferedOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      fname   
      append  

  private void configure();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.util.logging.FileHandler this
         0: .line 225
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 1 /* manager */
        start local 1 // java.util.logging.LogManager manager
         1: .line 227
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* cname */
        start local 2 // java.lang.String cname
         2: .line 229
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".pattern"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "%h/java%u.log"
            invokevirtual java.util.logging.LogManager.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
         3: .line 230
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".limit"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            lconst_0
            invokevirtual java.util.logging.LogManager.getLongProperty:(Ljava/lang/String;J)J
            putfield java.util.logging.FileHandler.limit:J
         4: .line 231
            aload 0 /* this */
            getfield java.util.logging.FileHandler.limit:J
            lconst_0
            lcmp
            ifge 6
         5: .line 232
            aload 0 /* this */
            lconst_0
            putfield java.util.logging.FileHandler.limit:J
         6: .line 234
      StackMap locals: java.util.logging.LogManager java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".count"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            invokevirtual java.util.logging.LogManager.getIntProperty:(Ljava/lang/String;I)I
            putfield java.util.logging.FileHandler.count:I
         7: .line 235
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            ifgt 9
         8: .line 236
            aload 0 /* this */
            iconst_1
            putfield java.util.logging.FileHandler.count:I
         9: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".append"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            invokevirtual java.util.logging.LogManager.getBooleanProperty:(Ljava/lang/String;Z)Z
            putfield java.util.logging.FileHandler.append:Z
        10: .line 239
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".level"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.util.logging.Level.ALL:Ljava/util/logging/Level;
            invokevirtual java.util.logging.LogManager.getLevelProperty:(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
            invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
        11: .line 240
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".filter"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            invokevirtual java.util.logging.LogManager.getFilterProperty:(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
            invokevirtual java.util.logging.FileHandler.setFilter:(Ljava/util/logging/Filter;)V
        12: .line 241
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".formatter"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.util.logging.XMLFormatter
            dup
            invokespecial java.util.logging.XMLFormatter.<init>:()V
            invokevirtual java.util.logging.LogManager.getFormatterProperty:(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter;
            invokevirtual java.util.logging.FileHandler.setFormatter:(Ljava/util/logging/Formatter;)V
        13: .line 244
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".maxLocks"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            bipush 100
            invokevirtual java.util.logging.LogManager.getIntProperty:(Ljava/lang/String;I)I
            putfield java.util.logging.FileHandler.maxLocks:I
        14: .line 245
            aload 0 /* this */
            getfield java.util.logging.FileHandler.maxLocks:I
            ifgt 16
        15: .line 246
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
        16: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* manager */
            new java.lang.StringBuilder
            dup
            aload 2 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".encoding"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            invokevirtual java.util.logging.LogManager.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.logging.FileHandler.setEncoding:(Ljava/lang/String;)V
        17: .line 250
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 252
            aload 0 /* this */
            aconst_null
            invokevirtual java.util.logging.FileHandler.setEncoding:(Ljava/lang/String;)V
        20: .line 253
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Exception
        21: pop
        22: .line 258
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String cname
        end local 1 // java.util.logging.LogManager manager
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Ljava/util/logging/FileHandler;
            1   23     1  manager  Ljava/util/logging/LogManager;
            2   23     2    cname  Ljava/lang/String;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Exception
          19    20      21  Class java.lang.Exception

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.logging.FileHandler this
         0: .line 270
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.<init>:()V
         1: .line 163
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
         2: .line 271
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.checkPermission:()V
         3: .line 272
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.configure:()V
         4: .line 275
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         5: .line 276
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         6: .line 278
      StackMap locals: java.util.logging.FileHandler
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.openFiles:()V
         7: .line 279
            return
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/logging/FileHandler;
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException

  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 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
         0: .line 298
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.<init>:()V
         1: .line 163
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
         2: .line 299
            aload 1 /* pattern */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 4
         3: .line 300
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 302
      StackMap locals: java.util.logging.FileHandler java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.checkPermission:()V
         5: .line 303
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.configure:()V
         6: .line 304
            aload 0 /* this */
            aload 1 /* pattern */
            putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
         7: .line 305
            aload 0 /* this */
            lconst_0
            putfield java.util.logging.FileHandler.limit:J
         8: .line 306
            aload 0 /* this */
            iconst_1
            putfield java.util.logging.FileHandler.count:I
         9: .line 307
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.openFiles:()V
        10: .line 308
            return
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljava/util/logging/FileHandler;
            0   11     1  pattern  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException
    MethodParameters:
         Name  Flags
      pattern  

  public void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
        start local 2 // boolean append
         0: .line 330
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.<init>:()V
         1: .line 163
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
         2: .line 332
            aload 1 /* pattern */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 4
         3: .line 333
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 335
      StackMap locals: java.util.logging.FileHandler java.lang.String int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.checkPermission:()V
         5: .line 336
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.configure:()V
         6: .line 337
            aload 0 /* this */
            aload 1 /* pattern */
            putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
         7: .line 338
            aload 0 /* this */
            lconst_0
            putfield java.util.logging.FileHandler.limit:J
         8: .line 339
            aload 0 /* this */
            iconst_1
            putfield java.util.logging.FileHandler.count:I
         9: .line 340
            aload 0 /* this */
            iload 2 /* append */
            putfield java.util.logging.FileHandler.append:Z
        10: .line 341
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.openFiles:()V
        11: .line 342
            return
        end local 2 // boolean append
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Ljava/util/logging/FileHandler;
            0   12     1  pattern  Ljava/lang/String;
            0   12     2   append  Z
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException
    MethodParameters:
         Name  Flags
      pattern  
      append   

  public void <init>(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
        start local 2 // int limit
        start local 3 // int count
         0: .line 367
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.<init>:()V
         1: .line 163
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
         2: .line 369
            iload 2 /* limit */
            iflt 3
            iload 3 /* count */
            iconst_1
            if_icmplt 3
            aload 1 /* pattern */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 4
         3: .line 370
      StackMap locals: java.util.logging.FileHandler java.lang.String int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.checkPermission:()V
         5: .line 373
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.configure:()V
         6: .line 374
            aload 0 /* this */
            aload 1 /* pattern */
            putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
         7: .line 375
            aload 0 /* this */
            iload 2 /* limit */
            i2l
            putfield java.util.logging.FileHandler.limit:J
         8: .line 376
            aload 0 /* this */
            iload 3 /* count */
            putfield java.util.logging.FileHandler.count:I
         9: .line 377
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.openFiles:()V
        10: .line 378
            return
        end local 3 // int count
        end local 2 // int limit
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljava/util/logging/FileHandler;
            0   11     1  pattern  Ljava/lang/String;
            0   11     2    limit  I
            0   11     3    count  I
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException
    MethodParameters:
         Name  Flags
      pattern  
      limit    
      count    

  public void <init>(java.lang.String, int, int, boolean);
    descriptor: (Ljava/lang/String;IIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
        start local 2 // int limit
        start local 3 // int count
        start local 4 // boolean append
         0: .line 408
            aload 0 /* this */
            aload 1 /* pattern */
            iload 2 /* limit */
            i2l
            iload 3 /* count */
            iload 4 /* append */
            invokespecial java.util.logging.FileHandler.<init>:(Ljava/lang/String;JIZ)V
         1: .line 409
            return
        end local 4 // boolean append
        end local 3 // int count
        end local 2 // int limit
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/util/logging/FileHandler;
            0    2     1  pattern  Ljava/lang/String;
            0    2     2    limit  I
            0    2     3    count  I
            0    2     4   append  Z
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException
    MethodParameters:
         Name  Flags
      pattern  
      limit    
      count    
      append   

  public void <init>(java.lang.String, long, int, boolean);
    descriptor: (Ljava/lang/String;JIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
        start local 2 // long limit
        start local 4 // int count
        start local 5 // boolean append
         0: .line 439
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.<init>:()V
         1: .line 163
            aload 0 /* this */
            bipush 100
            putfield java.util.logging.FileHandler.maxLocks:I
         2: .line 441
            lload 2 /* limit */
            lconst_0
            lcmp
            iflt 3
            iload 4 /* count */
            iconst_1
            if_icmplt 3
            aload 1 /* pattern */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 4
         3: .line 442
      StackMap locals: java.util.logging.FileHandler java.lang.String long int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.checkPermission:()V
         5: .line 445
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.configure:()V
         6: .line 446
            aload 0 /* this */
            aload 1 /* pattern */
            putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
         7: .line 447
            aload 0 /* this */
            lload 2 /* limit */
            putfield java.util.logging.FileHandler.limit:J
         8: .line 448
            aload 0 /* this */
            iload 4 /* count */
            putfield java.util.logging.FileHandler.count:I
         9: .line 449
            aload 0 /* this */
            iload 5 /* append */
            putfield java.util.logging.FileHandler.append:Z
        10: .line 450
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.openFiles:()V
        11: .line 451
            return
        end local 5 // boolean append
        end local 4 // int count
        end local 2 // long limit
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Ljava/util/logging/FileHandler;
            0   12     1  pattern  Ljava/lang/String;
            0   12     2    limit  J
            0   12     4    count  I
            0   12     5   append  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      pattern  
      limit    
      count    
      append   

  private boolean isParentWritable(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.nio.file.Path path
         0: .line 454
            aload 1 /* path */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 2 /* parent */
        start local 2 // java.nio.file.Path parent
         1: .line 455
            aload 2 /* parent */
            ifnonnull 3
         2: .line 456
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 2 /* parent */
         3: .line 458
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 2 /* parent */
            ifnull 4
            aload 2 /* parent */
            invokestatic java.nio.file.Files.isWritable:(Ljava/nio/file/Path;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // java.nio.file.Path parent
        end local 1 // java.nio.file.Path path
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/util/logging/FileHandler;
            0    5     1    path  Ljava/nio/file/Path;
            1    5     2  parent  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      path  

  private void openFiles();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // java.util.logging.FileHandler this
         0: .line 466
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 1 /* manager */
        start local 1 // java.util.logging.LogManager manager
         1: .line 467
            aload 1 /* manager */
            invokevirtual java.util.logging.LogManager.checkPermission:()V
         2: .line 468
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            iconst_1
            if_icmpge 4
         3: .line 469
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "file count = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 471
      StackMap locals: java.util.logging.LogManager
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.limit:J
            lconst_0
            lcmp
            ifge 6
         5: .line 472
            aload 0 /* this */
            lconst_0
            putfield java.util.logging.FileHandler.limit:J
         6: .line 476
      StackMap locals:
      StackMap stack:
            getstatic java.util.logging.FileHandler.$assertionsDisabled:Z
            ifne 7
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            ifnonnull 7
            new java.lang.AssertionError
            dup
            ldc "pattern should not be null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 477
      StackMap locals:
      StackMap stack:
            getstatic java.util.logging.FileHandler.$assertionsDisabled:Z
            ifne 8
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 8
            new java.lang.AssertionError
            dup
            ldc "pattern should not be empty"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 481
      StackMap locals:
      StackMap stack:
            new java.util.logging.FileHandler$InitializationErrorManager
            dup
            invokespecial java.util.logging.FileHandler$InitializationErrorManager.<init>:()V
            astore 2 /* em */
        start local 2 // java.util.logging.FileHandler$InitializationErrorManager em
         9: .line 482
            aload 0 /* this */
            aload 2 /* em */
            invokevirtual java.util.logging.FileHandler.setErrorManager:(Ljava/util/logging/ErrorManager;)V
        10: .line 486
            iconst_m1
            istore 3 /* unique */
        start local 3 // int unique
        11: .line 488
      StackMap locals: java.util.logging.FileHandler$InitializationErrorManager int
      StackMap stack:
            iinc 3 /* unique */ 1
        12: .line 489
            iload 3 /* unique */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.maxLocks:I
            if_icmple 14
        13: .line 490
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Couldn't get lock for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            iconst_0
            iload 3 /* unique */
            invokevirtual java.util.logging.FileHandler.generate:(Ljava/lang/String;II)Ljava/io/File;
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".lck"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
        15: .line 498
            getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            dup
            astore 4
            monitorenter
        16: .line 499
            getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 502
            aload 4
            monitorexit
        18: goto 11
        19: .line 505
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* lockFilePath */
        start local 5 // java.nio.file.Path lockFilePath
        20: .line 506
            aconst_null
            astore 6 /* channel */
        start local 6 // java.nio.channels.FileChannel channel
        21: .line 507
            iconst_m1
            istore 7 /* retries */
        start local 7 // int retries
        22: .line 508
            iconst_0
            istore 8 /* fileCreated */
        start local 8 // boolean fileCreated
        23: .line 509
            goto 40
        24: .line 511
      StackMap locals: java.util.logging.FileHandler java.util.logging.LogManager java.util.logging.FileHandler$InitializationErrorManager int java.util.Set java.nio.file.Path java.nio.channels.FileChannel int int
      StackMap stack:
            aload 5 /* lockFilePath */
            iconst_2
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        25: .line 512
            getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
        26: .line 511
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
            astore 6 /* channel */
        27: .line 513
            iconst_1
            istore 8 /* fileCreated */
        28: .line 514
            goto 40
      StackMap locals:
      StackMap stack: java.nio.file.FileAlreadyExistsException
        29: pop
        30: .line 520
            aload 5 /* lockFilePath */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 41
        31: .line 521
            aload 0 /* this */
            aload 5 /* lockFilePath */
            invokevirtual java.util.logging.FileHandler.isParentWritable:(Ljava/nio/file/Path;)Z
            ifeq 41
        32: .line 523
            aload 5 /* lockFilePath */
            iconst_2
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
        33: .line 524
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.APPEND:Ljava/nio/file/StandardOpenOption;
            aastore
        34: .line 523
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
            astore 6 /* channel */
        35: .line 525
            goto 40
      StackMap locals:
      StackMap stack: java.nio.file.NoSuchFileException
        36: pop
        37: .line 529
            goto 40
        38: .line 530
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        39: .line 533
            goto 41
        40: .line 509
      StackMap locals:
      StackMap stack:
            aload 6 /* channel */
            ifnonnull 41
            iload 7 /* retries */
            iinc 7 /* retries */ 1
            iconst_1
            if_icmplt 24
        41: .line 543
      StackMap locals:
      StackMap stack:
            aload 6 /* channel */
            ifnonnull 43
            aload 4
            monitorexit
        42: goto 11
        43: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* channel */
            putfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
        44: .line 548
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.tryLock:()Ljava/nio/channels/FileLock;
            ifnull 45
            iconst_1
            goto 46
      StackMap locals:
      StackMap stack:
        45: iconst_0
      StackMap locals:
      StackMap stack: int
        46: istore 9 /* available */
        start local 9 // boolean available
        47: .line 556
            goto 53
        end local 9 // boolean available
      StackMap locals:
      StackMap stack: java.io.IOException
        48: pop
        49: .line 562
            iload 8 /* fileCreated */
            istore 9 /* available */
        start local 9 // boolean available
        50: goto 53
        end local 9 // boolean available
        51: .line 563
      StackMap locals:
      StackMap stack: java.nio.channels.OverlappingFileLockException
            pop
        52: .line 568
            iconst_0
            istore 9 /* available */
        start local 9 // boolean available
        53: .line 570
      StackMap locals: int
      StackMap stack:
            iload 9 /* available */
            ifeq 57
        54: .line 572
            getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        55: .line 573
            aload 4
            monitorexit
        56: goto 62
        57: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.close:()V
        end local 9 // boolean available
        end local 8 // boolean fileCreated
        end local 7 // int retries
        end local 6 // java.nio.channels.FileChannel channel
        end local 5 // java.nio.file.Path lockFilePath
        58: .line 498
            aload 4
            monitorexit
        59: goto 11
      StackMap locals: java.util.logging.FileHandler java.util.logging.LogManager java.util.logging.FileHandler$InitializationErrorManager int java.util.Set
      StackMap stack: java.lang.Throwable
        60: aload 4
            monitorexit
        61: athrow
        62: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            anewarray java.io.File
            putfield java.util.logging.FileHandler.files:[Ljava/io/File;
        63: .line 582
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        64: goto 67
        65: .line 583
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.files:[Ljava/io/File;
            iload 4 /* i */
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
            iload 4 /* i */
            iload 3 /* unique */
            invokevirtual java.util.logging.FileHandler.generate:(Ljava/lang/String;II)Ljava/io/File;
            aastore
        66: .line 582
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 4 /* i */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            if_icmplt 65
        end local 4 // int i
        68: .line 587
            aload 0 /* this */
            getfield java.util.logging.FileHandler.append:Z
            ifeq 71
        69: .line 588
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.files:[Ljava/io/File;
            iconst_0
            aaload
            iconst_1
            invokevirtual java.util.logging.FileHandler.open:(Ljava/io/File;Z)V
        70: .line 589
            goto 72
        71: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.rotate:()V
        72: .line 594
      StackMap locals:
      StackMap stack:
            aload 2 /* em */
            getfield java.util.logging.FileHandler$InitializationErrorManager.lastException:Ljava/lang/Exception;
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        73: .line 595
            aload 4 /* ex */
            ifnull 79
        74: .line 596
            aload 4 /* ex */
            instanceof java.io.IOException
            ifeq 76
        75: .line 597
            aload 4 /* ex */
            checkcast java.io.IOException
            athrow
        76: .line 598
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 4 /* ex */
            instanceof java.lang.SecurityException
            ifeq 78
        77: .line 599
            aload 4 /* ex */
            checkcast java.lang.SecurityException
            athrow
        78: .line 601
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        79: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.logging.ErrorManager
            dup
            invokespecial java.util.logging.ErrorManager.<init>:()V
            invokevirtual java.util.logging.FileHandler.setErrorManager:(Ljava/util/logging/ErrorManager;)V
        80: .line 607
            return
        end local 4 // java.lang.Exception ex
        end local 3 // int unique
        end local 2 // java.util.logging.FileHandler$InitializationErrorManager em
        end local 1 // java.util.logging.LogManager manager
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   81     0          this  Ljava/util/logging/FileHandler;
            1   81     1       manager  Ljava/util/logging/LogManager;
            9   81     2            em  Ljava/util/logging/FileHandler$InitializationErrorManager;
           11   81     3        unique  I
           20   58     5  lockFilePath  Ljava/nio/file/Path;
           21   58     6       channel  Ljava/nio/channels/FileChannel;
           22   58     7       retries  I
           23   58     8   fileCreated  Z
           47   48     9     available  Z
           50   51     9     available  Z
           53   58     9     available  Z
           64   68     4             i  I
           73   81     4            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          24    28      29  Class java.nio.file.FileAlreadyExistsException
          32    35      36  Class java.nio.file.NoSuchFileException
          32    35      38  Class java.io.IOException
          44    47      48  Class java.io.IOException
          44    47      51  Class java.nio.channels.OverlappingFileLockException
          16    18      60  any
          19    42      60  any
          43    56      60  any
          57    59      60  any
          60    61      60  any
    Exceptions:
      throws java.io.IOException

  private java.io.File generate(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.lang.String pattern
        start local 2 // int generation
        start local 3 // int unique
         0: .line 621
            aload 1 /* pattern */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            iload 2 /* generation */
            iload 3 /* unique */
            invokestatic java.util.logging.FileHandler.generate:(Ljava/lang/String;III)Ljava/io/File;
            areturn
        end local 3 // int unique
        end local 2 // int generation
        end local 1 // java.lang.String pattern
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/util/logging/FileHandler;
            0    1     1     pattern  Ljava/lang/String;
            0    1     2  generation  I
            0    1     3      unique  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      pattern     
      generation  
      unique      

  static java.io.File generate(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)Ljava/io/File;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=17, args_size=4
        start local 0 // java.lang.String pat
        start local 1 // int count
        start local 2 // int generation
        start local 3 // int unique
         0: .line 628
            aload 0 /* pat */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 4 /* path */
        start local 4 // java.nio.file.Path path
         1: .line 629
            aconst_null
            astore 5 /* result */
        start local 5 // java.nio.file.Path result
         2: .line 630
            iconst_0
            istore 6 /* sawg */
        start local 6 // boolean sawg
         3: .line 631
            iconst_0
            istore 7 /* sawu */
        start local 7 // boolean sawu
         4: .line 632
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 8 /* word */
        start local 8 // java.lang.StringBuilder word
         5: .line 633
            aconst_null
            astore 9 /* prev */
        start local 9 // java.nio.file.Path prev
         6: .line 634
            aload 4 /* path */
            invokeinterface java.nio.file.Path.iterator:()Ljava/util/Iterator;
            astore 11
            goto 55
      StackMap locals: java.lang.String int int int java.nio.file.Path java.nio.file.Path int int java.lang.StringBuilder java.nio.file.Path top java.util.Iterator
      StackMap stack:
         7: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 10 /* elem */
        start local 10 // java.nio.file.Path elem
         8: .line 635
            aload 9 /* prev */
            ifnull 13
         9: .line 636
            aload 9 /* prev */
            aload 8 /* word */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolveSibling:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 9 /* prev */
        10: .line 637
            aload 5 /* result */
            ifnonnull 11
            aload 9 /* prev */
            goto 12
      StackMap locals: java.lang.String int int int java.nio.file.Path java.nio.file.Path int int java.lang.StringBuilder java.nio.file.Path java.nio.file.Path java.util.Iterator
      StackMap stack:
        11: aload 5 /* result */
            aload 9 /* prev */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
      StackMap locals:
      StackMap stack: java.nio.file.Path
        12: astore 5 /* result */
        13: .line 639
      StackMap locals:
      StackMap stack:
            aload 10 /* elem */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 12 /* pattern */
        start local 12 // java.lang.String pattern
        14: .line 640
            iconst_0
            istore 13 /* ix */
        start local 13 // int ix
        15: .line 641
            aload 8 /* word */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        16: .line 642
            goto 53
        17: .line 643
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 12 /* pattern */
            iload 13 /* ix */
            invokevirtual java.lang.String.charAt:(I)C
            istore 14 /* ch */
        start local 14 // char ch
        18: .line 644
            iinc 13 /* ix */ 1
        19: .line 645
            iconst_0
            istore 15 /* ch2 */
        start local 15 // char ch2
        20: .line 646
            iload 13 /* ix */
            aload 12 /* pattern */
            invokevirtual java.lang.String.length:()I
            if_icmpge 22
        21: .line 647
            aload 12 /* pattern */
            iload 13 /* ix */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            istore 15 /* ch2 */
        22: .line 649
      StackMap locals: int int
      StackMap stack:
            iload 14 /* ch */
            bipush 37
            if_icmpne 52
        23: .line 650
            iload 15 /* ch2 */
            bipush 116
            if_icmpne 31
        24: .line 651
            ldc "java.io.tmpdir"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 16 /* tmpDir */
        start local 16 // java.lang.String tmpDir
        25: .line 652
            aload 16 /* tmpDir */
            ifnonnull 27
        26: .line 653
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 16 /* tmpDir */
        27: .line 655
      StackMap locals: java.lang.String
      StackMap stack:
            aload 16 /* tmpDir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* result */
        28: .line 656
            iinc 13 /* ix */ 1
        29: .line 657
            aload 8 /* word */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        30: .line 658
            goto 53
        end local 16 // java.lang.String tmpDir
        31: .line 659
      StackMap locals:
      StackMap stack:
            iload 15 /* ch2 */
            bipush 104
            if_icmpne 38
        32: .line 660
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* result */
        33: .line 661
            invokestatic jdk.internal.misc.VM.isSetUID:()Z
            ifeq 35
        34: .line 664
            new java.io.IOException
            dup
            ldc "can't use %h in set UID program"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 666
      StackMap locals:
      StackMap stack:
            iinc 13 /* ix */ 1
        36: .line 667
            aload 8 /* word */
            iconst_0
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        37: .line 668
            goto 53
        38: .line 669
      StackMap locals:
      StackMap stack:
            iload 15 /* ch2 */
            bipush 103
            if_icmpne 43
        39: .line 670
            aload 8 /* word */
            iload 2 /* generation */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            astore 8 /* word */
        40: .line 671
            iconst_1
            istore 6 /* sawg */
        41: .line 672
            iinc 13 /* ix */ 1
        42: .line 673
            goto 53
        43: .line 674
      StackMap locals:
      StackMap stack:
            iload 15 /* ch2 */
            bipush 117
            if_icmpne 48
        44: .line 675
            aload 8 /* word */
            iload 3 /* unique */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            astore 8 /* word */
        45: .line 676
            iconst_1
            istore 7 /* sawu */
        46: .line 677
            iinc 13 /* ix */ 1
        47: .line 678
            goto 53
        48: .line 679
      StackMap locals:
      StackMap stack:
            iload 15 /* ch2 */
            bipush 37
            if_icmpne 52
        49: .line 680
            aload 8 /* word */
            bipush 37
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            astore 8 /* word */
        50: .line 681
            iinc 13 /* ix */ 1
        51: .line 682
            goto 53
        52: .line 685
      StackMap locals:
      StackMap stack:
            aload 8 /* word */
            iload 14 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            astore 8 /* word */
        end local 15 // char ch2
        end local 14 // char ch
        53: .line 642
      StackMap locals:
      StackMap stack:
            iload 13 /* ix */
            aload 12 /* pattern */
            invokevirtual java.lang.String.length:()I
            if_icmplt 17
        54: .line 687
            aload 10 /* elem */
            astore 9 /* prev */
        end local 13 // int ix
        end local 12 // java.lang.String pattern
        end local 10 // java.nio.file.Path elem
        55: .line 634
      StackMap locals: java.lang.String int int int java.nio.file.Path java.nio.file.Path int int java.lang.StringBuilder java.nio.file.Path top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        56: .line 690
            iload 1 /* count */
            iconst_1
            if_icmple 58
            iload 6 /* sawg */
            ifne 58
        57: .line 691
            aload 8 /* word */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 2 /* generation */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            astore 8 /* word */
        58: .line 693
      StackMap locals: java.lang.String int int int java.nio.file.Path java.nio.file.Path int int java.lang.StringBuilder java.nio.file.Path
      StackMap stack:
            iload 3 /* unique */
            ifle 60
            iload 7 /* sawu */
            ifne 60
        59: .line 694
            aload 8 /* word */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 3 /* unique */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            astore 8 /* word */
        60: .line 696
      StackMap locals:
      StackMap stack:
            aload 8 /* word */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 69
        61: .line 697
            aload 8 /* word */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* n */
        start local 10 // java.lang.String n
        62: .line 698
            aload 9 /* prev */
            ifnonnull 63
            aload 10 /* n */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            goto 64
      StackMap locals: java.lang.String
      StackMap stack:
        63: aload 9 /* prev */
            aload 10 /* n */
            invokeinterface java.nio.file.Path.resolveSibling:(Ljava/lang/String;)Ljava/nio/file/Path;
      StackMap locals:
      StackMap stack: java.nio.file.Path
        64: astore 11 /* p */
        start local 11 // java.nio.file.Path p
        65: .line 699
            aload 5 /* result */
            ifnonnull 66
            aload 11 /* p */
            goto 67
      StackMap locals: java.nio.file.Path
      StackMap stack:
        66: aload 5 /* result */
            aload 11 /* p */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
      StackMap locals:
      StackMap stack: java.nio.file.Path
        67: astore 5 /* result */
        end local 11 // java.nio.file.Path p
        end local 10 // java.lang.String n
        68: .line 700
            goto 71
      StackMap locals:
      StackMap stack:
        69: aload 5 /* result */
            ifnonnull 71
        70: .line 701
            ldc ""
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            astore 5 /* result */
        71: .line 704
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            invokeinterface java.nio.file.Path.getRoot:()Ljava/nio/file/Path;
            ifnonnull 73
        72: .line 705
            aload 5 /* result */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            areturn
        73: .line 707
      StackMap locals:
      StackMap stack:
            aload 4 /* path */
            invokeinterface java.nio.file.Path.getRoot:()Ljava/nio/file/Path;
            aload 5 /* result */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            areturn
        end local 9 // java.nio.file.Path prev
        end local 8 // java.lang.StringBuilder word
        end local 7 // boolean sawu
        end local 6 // boolean sawg
        end local 5 // java.nio.file.Path result
        end local 4 // java.nio.file.Path path
        end local 3 // int unique
        end local 2 // int generation
        end local 1 // int count
        end local 0 // java.lang.String pat
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   74     0         pat  Ljava/lang/String;
            0   74     1       count  I
            0   74     2  generation  I
            0   74     3      unique  I
            1   74     4        path  Ljava/nio/file/Path;
            2   74     5      result  Ljava/nio/file/Path;
            3   74     6        sawg  Z
            4   74     7        sawu  Z
            5   74     8        word  Ljava/lang/StringBuilder;
            6   74     9        prev  Ljava/nio/file/Path;
            8   55    10        elem  Ljava/nio/file/Path;
           14   55    12     pattern  Ljava/lang/String;
           15   55    13          ix  I
           18   53    14          ch  C
           20   53    15         ch2  C
           25   31    16      tmpDir  Ljava/lang/String;
           62   68    10           n  Ljava/lang/String;
           65   68    11           p  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      pat         
      count       
      generation  
      unique      

  private synchronized void rotate();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.logging.FileHandler this
         0: .line 715
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.getLevel:()Ljava/util/logging/Level;
            astore 1 /* oldLevel */
        start local 1 // java.util.logging.Level oldLevel
         1: .line 716
            aload 0 /* this */
            getstatic java.util.logging.Level.OFF:Ljava/util/logging/Level;
            invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
         2: .line 718
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.close:()V
         3: .line 719
            aload 0 /* this */
            getfield java.util.logging.FileHandler.count:I
            iconst_2
            isub
            istore 2 /* i */
        start local 2 // int i
         4: goto 12
         5: .line 720
      StackMap locals: java.util.logging.Level int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.files:[Ljava/io/File;
            iload 2 /* i */
            aaload
            astore 3 /* f1 */
        start local 3 // java.io.File f1
         6: .line 721
            aload 0 /* this */
            getfield java.util.logging.FileHandler.files:[Ljava/io/File;
            iload 2 /* i */
            iconst_1
            iadd
            aaload
            astore 4 /* f2 */
        start local 4 // java.io.File f2
         7: .line 722
            aload 3 /* f1 */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         8: .line 723
            aload 4 /* f2 */
            invokevirtual java.io.File.exists:()Z
            ifeq 10
         9: .line 724
            aload 4 /* f2 */
            invokevirtual java.io.File.delete:()Z
            pop
        10: .line 726
      StackMap locals: java.io.File java.io.File
      StackMap stack:
            aload 3 /* f1 */
            aload 4 /* f2 */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            pop
        end local 4 // java.io.File f2
        end local 3 // java.io.File f1
        11: .line 719
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            ifge 5
        end local 2 // int i
        13: .line 730
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.FileHandler.files:[Ljava/io/File;
            iconst_0
            aaload
            iconst_0
            invokevirtual java.util.logging.FileHandler.open:(Ljava/io/File;Z)V
        14: .line 731
            goto 17
      StackMap locals: java.util.logging.FileHandler java.util.logging.Level
      StackMap stack: java.io.IOException
        15: astore 2 /* ix */
        start local 2 // java.io.IOException ix
        16: .line 734
            aload 0 /* this */
            aconst_null
            aload 2 /* ix */
            iconst_4
            invokevirtual java.util.logging.FileHandler.reportError:(Ljava/lang/String;Ljava/lang/Exception;I)V
        end local 2 // java.io.IOException ix
        17: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* oldLevel */
            invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
        18: .line 738
            return
        end local 1 // java.util.logging.Level oldLevel
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Ljava/util/logging/FileHandler;
            1   19     1  oldLevel  Ljava/util/logging/Level;
            4   13     2         i  I
            6   11     3        f1  Ljava/io/File;
            7   11     4        f2  Ljava/io/File;
           16   17     2        ix  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    14      15  Class java.io.IOException

  public synchronized void publish(java.util.logging.LogRecord);
    descriptor: (Ljava/util/logging/LogRecord;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.logging.FileHandler this
        start local 1 // java.util.logging.LogRecord record
         0: .line 748
            aload 0 /* this */
            aload 1 /* record */
            invokevirtual java.util.logging.FileHandler.isLoggable:(Ljava/util/logging/LogRecord;)Z
            ifne 2
         1: .line 749
            return
         2: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* record */
            invokespecial java.util.logging.StreamHandler.publish:(Ljava/util/logging/LogRecord;)V
         3: .line 752
            aload 0 /* this */
            invokevirtual java.util.logging.FileHandler.flush:()V
         4: .line 753
            aload 0 /* this */
            getfield java.util.logging.FileHandler.limit:J
            lconst_0
            lcmp
            ifle 6
            aload 0 /* this */
            getfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
            getfield java.util.logging.FileHandler$MeteredStream.written:J
            aload 0 /* this */
            getfield java.util.logging.FileHandler.limit:J
            lcmp
            ifge 5
            aload 0 /* this */
            getfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
            getfield java.util.logging.FileHandler$MeteredStream.written:J
            lconst_0
            lcmp
            ifge 6
         5: .line 759
      StackMap locals:
      StackMap stack:
            new java.util.logging.FileHandler$1
            dup
            aload 0 /* this */
            invokespecial java.util.logging.FileHandler$1.<init>:(Ljava/util/logging/FileHandler;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         6: .line 767
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.logging.LogRecord record
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/util/logging/FileHandler;
            0    7     1  record  Ljava/util/logging/LogRecord;
    MethodParameters:
        Name  Flags
      record  

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.logging.FileHandler this
         0: .line 777
            aload 0 /* this */
            invokespecial java.util.logging.StreamHandler.close:()V
         1: .line 779
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            ifnonnull 3
         2: .line 780
            return
         3: .line 784
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.close:()V
         4: .line 785
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: pop
         6: .line 788
      StackMap locals:
      StackMap stack:
            getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            dup
            astore 1
            monitorenter
         7: .line 789
            getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         8: .line 788
            aload 1
            monitorexit
         9: goto 12
      StackMap locals: java.util.logging.FileHandler java.util.Set
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 791
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.delete:()Z
            pop
        13: .line 792
            aload 0 /* this */
            aconst_null
            putfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
        14: .line 793
            aload 0 /* this */
            aconst_null
            putfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
        15: .line 794
            return
        end local 0 // java.util.logging.FileHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljava/util/logging/FileHandler;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
           7     9      10  any
          10    11      10  any
    Exceptions:
      throws java.lang.SecurityException
}
SourceFile: "FileHandler.java"
NestMembers:
  java.util.logging.FileHandler$1  java.util.logging.FileHandler$InitializationErrorManager  java.util.logging.FileHandler$MeteredStream
InnerClasses:
  java.util.logging.FileHandler$1
  private InitializationErrorManager = java.util.logging.FileHandler$InitializationErrorManager of java.util.logging.FileHandler
  private final MeteredStream = java.util.logging.FileHandler$MeteredStream of java.util.logging.FileHandler