public class java.util.logging.MemoryHandler extends java.util.logging.Handler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.logging.MemoryHandler
  super_class: java.util.logging.Handler
{
  private static final int DEFAULT_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private volatile java.util.logging.Level pushLevel;
    descriptor: Ljava/util/logging/Level;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private java.util.logging.Handler target;
    descriptor: Ljava/util/logging/Handler;
    flags: (0x0002) ACC_PRIVATE

  private java.util.logging.LogRecord[] buffer;
    descriptor: [Ljava/util/logging/LogRecord;
    flags: (0x0002) ACC_PRIVATE

  int start;
    descriptor: I
    flags: (0x0000) 

  int count;
    descriptor: I
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 103
            aload 0 /* this */
            getstatic java.util.logging.Level.ALL:Ljava/util/logging/Level;
            new java.util.logging.SimpleFormatter
            dup
            invokespecial java.util.logging.SimpleFormatter.<init>:()V
            aconst_null
            invokespecial java.util.logging.Handler.<init>:(Ljava/util/logging/Level;Ljava/util/logging/Formatter;Ljava/util/logging/Formatter;)V
         1: .line 105
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 1 /* manager */
        start local 1 // java.util.logging.LogManager manager
         2: .line 106
            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
         3: .line 107
            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 ".push"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.LogManager.getLevelProperty:(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
            putfield java.util.logging.MemoryHandler.pushLevel:Ljava/util/logging/Level;
         4: .line 108
            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 ".size"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            sipush 1000
            invokevirtual java.util.logging.LogManager.getIntProperty:(Ljava/lang/String;I)I
            putfield java.util.logging.MemoryHandler.size:I
         5: .line 109
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.size:I
            ifgt 7
         6: .line 110
            aload 0 /* this */
            sipush 1000
            putfield java.util.logging.MemoryHandler.size:I
         7: .line 112
      StackMap locals: java.util.logging.MemoryHandler java.util.logging.LogManager java.lang.String
      StackMap stack:
            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 ".target"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.LogManager.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* targetName */
        start local 3 // java.lang.String targetName
         8: .line 113
            aload 3 /* targetName */
            ifnonnull 12
         9: .line 114
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The handler "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* cname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 115
            ldc " does not specify a target"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 114
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 119
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            aload 3 /* targetName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clz */
        start local 4 // java.lang.Class clz
        13: .line 121
            aload 4 /* clz */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            astore 5 /* o */
        start local 5 // java.lang.Object o
        14: .line 122
            aload 0 /* this */
            aload 5 /* o */
            checkcast java.util.logging.Handler
            putfield java.util.logging.MemoryHandler.target:Ljava/util/logging/Handler;
        end local 5 // java.lang.Object o
        15: .line 123
            goto 18
        end local 4 // java.lang.Class clz
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
        16: astore 5 /* e */
        start local 5 // java.lang.ReflectiveOperationException e
        17: .line 124
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "MemoryHandler can't load handler target \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* targetName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.ReflectiveOperationException e
        start local 4 // java.lang.Class clz
        18: .line 126
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.MemoryHandler.init:()V
        19: .line 127
            return
        end local 4 // java.lang.Class clz
        end local 3 // java.lang.String targetName
        end local 2 // java.lang.String cname
        end local 1 // java.util.logging.LogManager manager
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Ljava/util/logging/MemoryHandler;
            2   20     1     manager  Ljava/util/logging/LogManager;
            3   20     2       cname  Ljava/lang/String;
            8   20     3  targetName  Ljava/lang/String;
           13   16     4         clz  Ljava/lang/Class<*>;
           18   20     4         clz  Ljava/lang/Class<*>;
           14   15     5           o  Ljava/lang/Object;
           17   18     5           e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
          12    15      16  Class java.lang.ClassNotFoundException
          12    15      16  Class java.lang.InstantiationException
          12    15      16  Class java.lang.IllegalAccessException

  private void init();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 131
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.size:I
            anewarray java.util.logging.LogRecord
            putfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
         1: .line 132
            aload 0 /* this */
            iconst_0
            putfield java.util.logging.MemoryHandler.start:I
         2: .line 133
            aload 0 /* this */
            iconst_0
            putfield java.util.logging.MemoryHandler.count:I
         3: .line 134
            return
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/util/logging/MemoryHandler;

  public void <init>(java.util.logging.Handler, int, java.util.logging.Level);
    descriptor: (Ljava/util/logging/Handler;ILjava/util/logging/Level;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.util.logging.MemoryHandler this
        start local 1 // java.util.logging.Handler target
        start local 2 // int size
        start local 3 // java.util.logging.Level pushLevel
         0: .line 151
            aload 0 /* this */
            getstatic java.util.logging.Level.ALL:Ljava/util/logging/Level;
            new java.util.logging.SimpleFormatter
            dup
            invokespecial java.util.logging.SimpleFormatter.<init>:()V
            aconst_null
            invokespecial java.util.logging.Handler.<init>:(Ljava/util/logging/Level;Ljava/util/logging/Formatter;Ljava/util/logging/Formatter;)V
         1: .line 153
            aload 1 /* target */
            ifnull 2
            aload 3 /* pushLevel */
            ifnonnull 3
         2: .line 154
      StackMap locals: java.util.logging.MemoryHandler java.util.logging.Handler int java.util.logging.Level
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 156
      StackMap locals:
      StackMap stack:
            iload 2 /* size */
            ifgt 5
         4: .line 157
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         5: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* target */
            putfield java.util.logging.MemoryHandler.target:Ljava/util/logging/Handler;
         6: .line 160
            aload 0 /* this */
            aload 3 /* pushLevel */
            putfield java.util.logging.MemoryHandler.pushLevel:Ljava/util/logging/Level;
         7: .line 161
            aload 0 /* this */
            iload 2 /* size */
            putfield java.util.logging.MemoryHandler.size:I
         8: .line 162
            aload 0 /* this */
            invokevirtual java.util.logging.MemoryHandler.init:()V
         9: .line 163
            return
        end local 3 // java.util.logging.Level pushLevel
        end local 2 // int size
        end local 1 // java.util.logging.Handler target
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljava/util/logging/MemoryHandler;
            0   10     1     target  Ljava/util/logging/Handler;
            0   10     2       size  I
            0   10     3  pushLevel  Ljava/util/logging/Level;
    MethodParameters:
           Name  Flags
      target     
      size       
      pushLevel  

  public synchronized void publish(java.util.logging.LogRecord);
    descriptor: (Ljava/util/logging/LogRecord;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.logging.MemoryHandler this
        start local 1 // java.util.logging.LogRecord record
         0: .line 182
            aload 0 /* this */
            aload 1 /* record */
            invokevirtual java.util.logging.MemoryHandler.isLoggable:(Ljava/util/logging/LogRecord;)Z
            ifne 2
         1: .line 183
            return
         2: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.start:I
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.count:I
            iadd
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            arraylength
            irem
            istore 2 /* ix */
        start local 2 // int ix
         3: .line 186
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            iload 2 /* ix */
            aload 1 /* record */
            aastore
         4: .line 187
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.count:I
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            arraylength
            if_icmpge 7
         5: .line 188
            aload 0 /* this */
            dup
            getfield java.util.logging.MemoryHandler.count:I
            iconst_1
            iadd
            putfield java.util.logging.MemoryHandler.count:I
         6: .line 189
            goto 9
         7: .line 190
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield java.util.logging.MemoryHandler.start:I
            iconst_1
            iadd
            putfield java.util.logging.MemoryHandler.start:I
         8: .line 191
            aload 0 /* this */
            dup
            getfield java.util.logging.MemoryHandler.start:I
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            arraylength
            irem
            putfield java.util.logging.MemoryHandler.start:I
         9: .line 193
      StackMap locals:
      StackMap stack:
            aload 1 /* record */
            invokevirtual java.util.logging.LogRecord.getLevel:()Ljava/util/logging/Level;
            invokevirtual java.util.logging.Level.intValue:()I
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.pushLevel:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Level.intValue:()I
            if_icmplt 11
        10: .line 194
            aload 0 /* this */
            invokevirtual java.util.logging.MemoryHandler.push:()V
        11: .line 196
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int ix
        end local 1 // java.util.logging.LogRecord record
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Ljava/util/logging/MemoryHandler;
            0   12     1  record  Ljava/util/logging/LogRecord;
            3   12     2      ix  I
    MethodParameters:
        Name  Flags
      record  

  public synchronized void push();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 204
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 205
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.start:I
            iload 1 /* i */
            iadd
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            arraylength
            irem
            istore 2 /* ix */
        start local 2 // int ix
         3: .line 206
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.buffer:[Ljava/util/logging/LogRecord;
            iload 2 /* ix */
            aaload
            astore 3 /* record */
        start local 3 // java.util.logging.LogRecord record
         4: .line 207
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.target:Ljava/util/logging/Handler;
            aload 3 /* record */
            invokevirtual java.util.logging.Handler.publish:(Ljava/util/logging/LogRecord;)V
        end local 3 // java.util.logging.LogRecord record
        end local 2 // int ix
         5: .line 204
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.count:I
            if_icmplt 2
        end local 1 // int i
         7: .line 210
            aload 0 /* this */
            iconst_0
            putfield java.util.logging.MemoryHandler.start:I
         8: .line 211
            aload 0 /* this */
            iconst_0
            putfield java.util.logging.MemoryHandler.count:I
         9: .line 212
            return
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Ljava/util/logging/MemoryHandler;
            1    7     1       i  I
            3    5     2      ix  I
            4    5     3  record  Ljava/util/logging/LogRecord;

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 222
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.target:Ljava/util/logging/Handler;
            invokevirtual java.util.logging.Handler.flush:()V
         1: .line 223
            return
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/logging/MemoryHandler;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 234
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.target:Ljava/util/logging/Handler;
            invokevirtual java.util.logging.Handler.close:()V
         1: .line 235
            aload 0 /* this */
            getstatic java.util.logging.Level.OFF:Ljava/util/logging/Level;
            invokevirtual java.util.logging.MemoryHandler.setLevel:(Ljava/util/logging/Level;)V
         2: .line 236
            return
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/logging/MemoryHandler;
    Exceptions:
      throws java.lang.SecurityException

  public synchronized void setPushLevel(java.util.logging.Level);
    descriptor: (Ljava/util/logging/Level;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.logging.MemoryHandler this
        start local 1 // java.util.logging.Level newLevel
         0: .line 248
            aload 1 /* newLevel */
            ifnonnull 2
         1: .line 249
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.logging.MemoryHandler.checkPermission:()V
         3: .line 252
            aload 0 /* this */
            aload 1 /* newLevel */
            putfield java.util.logging.MemoryHandler.pushLevel:Ljava/util/logging/Level;
         4: .line 253
            return
        end local 1 // java.util.logging.Level newLevel
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/util/logging/MemoryHandler;
            0    5     1  newLevel  Ljava/util/logging/Level;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
          Name  Flags
      newLevel  

  public java.util.logging.Level getPushLevel();
    descriptor: ()Ljava/util/logging/Level;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.logging.MemoryHandler this
         0: .line 261
            aload 0 /* this */
            getfield java.util.logging.MemoryHandler.pushLevel:Ljava/util/logging/Level;
            areturn
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/logging/MemoryHandler;

  public boolean isLoggable(java.util.logging.LogRecord);
    descriptor: (Ljava/util/logging/LogRecord;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.logging.MemoryHandler this
        start local 1 // java.util.logging.LogRecord record
         0: .line 279
            aload 0 /* this */
            aload 1 /* record */
            invokespecial java.util.logging.Handler.isLoggable:(Ljava/util/logging/LogRecord;)Z
            ireturn
        end local 1 // java.util.logging.LogRecord record
        end local 0 // java.util.logging.MemoryHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/util/logging/MemoryHandler;
            0    1     1  record  Ljava/util/logging/LogRecord;
    MethodParameters:
        Name  Flags
      record  
}
SourceFile: "MemoryHandler.java"