public class com.sun.jmx.remote.internal.ArrayNotificationBuffer implements com.sun.jmx.remote.internal.NotificationBuffer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.jmx.remote.internal.ArrayNotificationBuffer
  super_class: java.lang.Object
{
  private boolean disposed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.Object globalLock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.HashMap<javax.management.MBeanServer, com.sun.jmx.remote.internal.ArrayNotificationBuffer> mbsToBuffer;
    descriptor: Ljava/util/HashMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljavax/management/MBeanServer;Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;>;

  private final java.util.Collection<com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer> sharers;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;>;

  private final javax.management.NotificationListener bufferListener;
    descriptor: Ljavax/management/NotificationListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final javax.management.QueryExp broadcasterQuery;
    descriptor: Ljavax/management/QueryExp;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.management.NotificationFilter creationFilter;
    descriptor: Ljavax/management/NotificationFilter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final javax.management.NotificationListener creationListener;
    descriptor: Ljavax/management/NotificationListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final com.sun.jmx.remote.util.ClassLogger logger;
    descriptor: Lcom/sun/jmx/remote/util/ClassLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final javax.management.MBeanServer mBeanServer;
    descriptor: Ljavax/management/MBeanServer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.remote.internal.ArrayQueue<com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification> queue;
    descriptor: Lcom/sun/jmx/remote/internal/ArrayQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/jmx/remote/internal/ArrayQueue<Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;>;

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

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

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

  private java.util.Set<javax.management.ObjectName> createdDuringQuery;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljavax/management/ObjectName;>;

  static final java.lang.String broadcasterClass;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 116
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
         1: .line 119
            new java.util.HashMap
            dup
            iconst_1
            invokespecial java.util.HashMap.<init>:(I)V
         2: .line 118
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.mbsToBuffer:Ljava/util/HashMap;
         3: .line 786
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$BroadcasterQuery
            dup
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$BroadcasterQuery.<init>:()V
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterQuery:Ljavax/management/QueryExp;
         4: .line 790
            new javax.management.NotificationFilterSupport
            dup
            invokespecial javax.management.NotificationFilterSupport.<init>:()V
            astore 0 /* nfs */
        start local 0 // javax.management.NotificationFilterSupport nfs
         5: .line 791
            aload 0 /* nfs */
            ldc "JMX.mbean.registered"
            invokevirtual javax.management.NotificationFilterSupport.enableType:(Ljava/lang/String;)V
         6: .line 792
            aload 0 /* nfs */
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationFilter:Ljavax/management/NotificationFilter;
        end local 0 // javax.management.NotificationFilterSupport nfs
         7: .line 840
            new com.sun.jmx.remote.util.ClassLogger
            dup
            ldc "javax.management.remote.misc"
         8: .line 841
            ldc "ArrayNotificationBuffer"
         9: .line 840
            invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 839
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
        11: .line 851
            ldc Ljavax/management/NotificationBroadcaster;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        12: .line 850
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterClass:Ljava/lang/String;
        13: .line 851
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    7     0   nfs  Ljavax/management/NotificationFilterSupport;

  public static com.sun.jmx.remote.internal.NotificationBuffer getNotificationBuffer(javax.management.MBeanServer, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/management/MBeanServer;Ljava/util/Map;)Lcom/sun/jmx/remote/internal/NotificationBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // javax.management.MBeanServer mbs
        start local 1 // java.util.Map env
         0: .line 125
            aload 1 /* env */
            ifnonnull 2
         1: .line 126
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            astore 1 /* env */
         2: .line 129
      StackMap locals:
      StackMap stack:
            aload 1 /* env */
            invokestatic com.sun.jmx.remote.util.EnvHelp.getNotifBufferSize:(Ljava/util/Map;)I
            istore 2 /* queueSize */
        start local 2 // int queueSize
         3: .line 134
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         4: .line 135
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.mbsToBuffer:Ljava/util/HashMap;
            aload 0 /* mbs */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.internal.ArrayNotificationBuffer
            astore 3 /* buf */
        start local 3 // com.sun.jmx.remote.internal.ArrayNotificationBuffer buf
         5: .line 136
            aload 3 /* buf */
            ifnonnull 6
            iconst_1
            goto 7
      StackMap locals: javax.management.MBeanServer java.util.Map int com.sun.jmx.remote.internal.ArrayNotificationBuffer top top java.lang.Object
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* create */
        start local 4 // boolean create
         8: .line 137
            iload 4 /* create */
            ifeq 11
         9: .line 138
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer
            dup
            aload 0 /* mbs */
            iload 2 /* queueSize */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer.<init>:(Ljavax/management/MBeanServer;I)V
            astore 3 /* buf */
        10: .line 139
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.mbsToBuffer:Ljava/util/HashMap;
            aload 0 /* mbs */
            aload 3 /* buf */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 141
      StackMap locals: javax.management.MBeanServer java.util.Map int com.sun.jmx.remote.internal.ArrayNotificationBuffer int top java.lang.Object
      StackMap stack:
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer
            dup
            aload 3 /* buf */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            iload 2 /* queueSize */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;I)V
            astore 5 /* sharer */
        start local 5 // com.sun.jmx.remote.internal.NotificationBuffer sharer
        12: .line 134
            aload 6
            monitorexit
        13: goto 16
        end local 5 // com.sun.jmx.remote.internal.NotificationBuffer sharer
        end local 4 // boolean create
        end local 3 // com.sun.jmx.remote.internal.ArrayNotificationBuffer buf
      StackMap locals: javax.management.MBeanServer java.util.Map int top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        14: aload 6
            monitorexit
        15: athrow
        start local 3 // com.sun.jmx.remote.internal.ArrayNotificationBuffer buf
        start local 4 // boolean create
        start local 5 // com.sun.jmx.remote.internal.NotificationBuffer sharer
        16: .line 152
      StackMap locals: javax.management.MBeanServer java.util.Map int com.sun.jmx.remote.internal.ArrayNotificationBuffer int com.sun.jmx.remote.internal.NotificationBuffer
      StackMap stack:
            iload 4 /* create */
            ifeq 18
        17: .line 153
            aload 3 /* buf */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.createListeners:()V
        18: .line 154
      StackMap locals:
      StackMap stack:
            aload 5 /* sharer */
            areturn
        end local 5 // com.sun.jmx.remote.internal.NotificationBuffer sharer
        end local 4 // boolean create
        end local 3 // com.sun.jmx.remote.internal.ArrayNotificationBuffer buf
        end local 2 // int queueSize
        end local 1 // java.util.Map env
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0        mbs  Ljavax/management/MBeanServer;
            0   19     1        env  Ljava/util/Map<Ljava/lang/String;*>;
            3   19     2  queueSize  I
            5   14     3        buf  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
           16   19     3        buf  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            8   14     4     create  Z
           16   19     4     create  Z
           12   14     5     sharer  Lcom/sun/jmx/remote/internal/NotificationBuffer;
           16   19     5     sharer  Lcom/sun/jmx/remote/internal/NotificationBuffer;
      Exception table:
        from    to  target  type
           4    13      14  any
          14    15      14  any
    Signature: (Ljavax/management/MBeanServer;Ljava/util/Map<Ljava/lang/String;*>;)Lcom/sun/jmx/remote/internal/NotificationBuffer;
    MethodParameters:
      Name  Flags
      mbs   
      env   

  static void removeNotificationBuffer(javax.management.MBeanServer);
    descriptor: (Ljavax/management/MBeanServer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.management.MBeanServer mbs
         0: .line 162
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 163
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.mbsToBuffer:Ljava/util/HashMap;
            aload 0 /* mbs */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 162
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: javax.management.MBeanServer java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   mbs  Ljavax/management/MBeanServer;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
      Name  Flags
      mbs   

  void addSharer(com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer);
    descriptor: (Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer sharer
         0: .line 168
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 169
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         2: .line 170
            aload 1 /* sharer */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.getSize:()I
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
            if_icmple 4
         3: .line 171
            aload 0 /* this */
            aload 1 /* sharer */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.getSize:()I
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.resize:(I)V
         4: .line 169
      StackMap locals: java.lang.Object com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.sharers:Ljava/util/Collection;
            aload 1 /* sharer */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         9: .line 168
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 175
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer sharer
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0   14     1  sharer  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
           1    10      11  any
          11    12      11  any
    MethodParameters:
        Name  Flags
      sharer  

  private void removeSharer(com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer);
    descriptor: (Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer sharer
         0: .line 179
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 180
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.sharers:Ljava/util/Collection;
            aload 1 /* sharer */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 181
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.sharers:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            istore 2 /* empty */
        start local 2 // boolean empty
         3: .line 182
            iload 2 /* empty */
            ifeq 5
         4: .line 183
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.mBeanServer:Ljavax/management/MBeanServer;
            invokestatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeNotificationBuffer:(Ljavax/management/MBeanServer;)V
            goto 14
         5: .line 185
      StackMap locals: int java.lang.Object
      StackMap stack:
            iconst_0
            istore 4 /* max */
        start local 4 // int max
         6: .line 186
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.sharers:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer int java.lang.Object int top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer
            astore 5 /* buf */
        start local 5 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer buf
         8: .line 187
            aload 5 /* buf */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.getSize:()I
            istore 7 /* bufsize */
        start local 7 // int bufsize
         9: .line 188
            iload 7 /* bufsize */
            iload 4 /* max */
            if_icmple 11
        10: .line 189
            iload 7 /* bufsize */
            istore 4 /* max */
        end local 7 // int bufsize
        end local 5 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer buf
        11: .line 186
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 191
            iload 4 /* max */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
            if_icmpge 14
        13: .line 192
            aload 0 /* this */
            iload 4 /* max */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.resize:(I)V
        end local 4 // int max
        14: .line 179
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer int java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
        15: goto 18
        end local 2 // boolean empty
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer top java.lang.Object
      StackMap stack: java.lang.Throwable
        16: aload 3
            monitorexit
        17: athrow
        start local 2 // boolean empty
        18: .line 195
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer int
      StackMap stack:
            iload 2 /* empty */
            ifeq 27
        19: .line 196
            aload 0 /* this */
            dup
            astore 3
            monitorenter
        20: .line 197
            aload 0 /* this */
            iconst_1
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.disposed:Z
        21: .line 199
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        22: .line 196
            aload 3
            monitorexit
        23: goto 26
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer int com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Throwable
        24: aload 3
            monitorexit
        25: athrow
        26: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.destroyListeners:()V
        27: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean empty
        end local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer sharer
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0   28     1   sharer  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;
            3   16     2    empty  Z
           18   28     2    empty  Z
            6   14     4      max  I
            8   11     5      buf  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$ShareBuffer;
            9   11     7  bufsize  I
      Exception table:
        from    to  target  type
           1    15      16  any
          16    17      16  any
          20    23      24  any
          24    25      24  any
    MethodParameters:
        Name  Flags
      sharer  

  private synchronized void resize(int);
    descriptor: (I)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // int newSize
         0: .line 206
            iload 1 /* newSize */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
            if_icmpne 3
         1: .line 207
            return
         2: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.dropNotification:()V
         3: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.size:()I
            iload 1 /* newSize */
            if_icmpgt 2
         4: .line 210
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            iload 1 /* newSize */
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.resize:(I)V
         5: .line 211
            aload 0 /* this */
            iload 1 /* newSize */
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
         6: .line 212
            return
        end local 1 // int newSize
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    7     1  newSize  I
    MethodParameters:
         Name  Flags
      newSize  

  private void <init>(javax.management.MBeanServer, int);
    descriptor: (Ljavax/management/MBeanServer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.MBeanServer mbs
        start local 2 // int queueSize
         0: .line 245
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 112
            aload 0 /* this */
            iconst_0
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.disposed:Z
         2: .line 120
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_1
            invokespecial java.util.HashSet.<init>:(I)V
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.sharers:Ljava/util/Collection;
         3: .line 775
            aload 0 /* this */
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$BufferListener
            dup
            aload 0 /* this */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$BufferListener.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;)V
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.bufferListener:Ljavax/management/NotificationListener;
         4: .line 795
            aload 0 /* this */
         5: .line 796
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$1
            dup
            aload 0 /* this */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$1.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;)V
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationListener:Ljavax/management/NotificationListener;
         6: .line 246
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
            ifeq 8
         7: .line 247
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "Constructor"
            new java.lang.StringBuilder
            dup
            ldc "queueSize="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* queueSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         8: .line 249
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer javax.management.MBeanServer int
      StackMap stack:
            aload 1 /* mbs */
            ifnull 9
            iload 2 /* queueSize */
            iconst_1
            if_icmpge 10
         9: .line 250
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Bad args"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mbs */
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.mBeanServer:Ljavax/management/MBeanServer;
        11: .line 253
            aload 0 /* this */
            iload 2 /* queueSize */
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
        12: .line 254
            aload 0 /* this */
            new com.sun.jmx.remote.internal.ArrayQueue
            dup
            iload 2 /* queueSize */
            invokespecial com.sun.jmx.remote.internal.ArrayQueue.<init>:(I)V
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
        13: .line 255
            aload 0 /* this */
            invokestatic java.lang.System.currentTimeMillis:()J
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
        14: .line 256
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:J
        15: .line 258
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "Constructor"
            ldc "ends"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 259
            return
        end local 2 // int queueSize
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0   17     1        mbs  Ljavax/management/MBeanServer;
            0   17     2  queueSize  I
    MethodParameters:
           Name  Flags
      mbs        
      queueSize  

  private synchronized boolean isDisposed();
    descriptor: ()Z
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 262
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.disposed:Z
            ireturn
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 269
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  public javax.management.remote.NotificationResult fetchNotifications(com.sun.jmx.remote.internal.NotificationBufferFilter, long, long, int);
    descriptor: (Lcom/sun/jmx/remote/internal/NotificationBufferFilter;JJI)Ljavax/management/remote/NotificationResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=18, args_size=5
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // com.sun.jmx.remote.internal.NotificationBufferFilter filter
        start local 2 // long startSequenceNumber
        start local 4 // long timeout
        start local 6 // int maxNotifications
         0: .line 306
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            ldc "starts"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 308
            lload 2 /* startSequenceNumber */
            lconst_0
            lcmp
            iflt 2
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.isDisposed:()Z
            ifeq 10
         2: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
         3: .line 310
            new javax.management.remote.NotificationResult
            dup
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:()J
         4: .line 311
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
         5: .line 312
            iconst_0
            anewarray javax.management.remote.TargetedNotification
         6: .line 310
            invokespecial javax.management.remote.NotificationResult.<init>:(JJ[Ljavax/management/remote/TargetedNotification;)V
            aload 7
            monitorexit
         7: areturn
         8: .line 309
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
         9: athrow
        10: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            ifnull 13
        11: .line 318
            lload 2 /* startSequenceNumber */
            lconst_0
            lcmp
            iflt 13
            lload 4 /* timeout */
            lconst_0
            lcmp
            iflt 13
        12: .line 319
            iload 6 /* maxNotifications */
            ifge 15
        13: .line 320
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            ldc "Bad args"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        14: .line 321
            new java.lang.IllegalArgumentException
            dup
            ldc "Bad args to fetch"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 324
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 22
        16: .line 325
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        17: .line 326
            new java.lang.StringBuilder
            dup
            ldc "filter="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filter */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "; startSeq="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 327
            lload 2 /* startSequenceNumber */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "; timeout="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        19: .line 328
            ldc "; max="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* maxNotifications */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        20: .line 326
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 325
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        22: .line 331
      StackMap locals:
      StackMap stack:
            lload 2 /* startSequenceNumber */
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
            lcmp
            ifle 28
        23: .line 332
            new java.lang.StringBuilder
            dup
            ldc "Start sequence number too big: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 333
            lload 2 /* startSequenceNumber */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " > "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        25: .line 332
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        26: .line 334
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            aload 7 /* msg */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        27: .line 335
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
        28: .line 343
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 4 /* timeout */
            ladd
            lstore 7 /* endTime */
        start local 7 // long endTime
        29: .line 344
            lload 7 /* endTime */
            lconst_0
            lcmp
            ifge 31
        30: .line 345
            ldc 9223372036854775807
            lstore 7 /* endTime */
        31: .line 347
      StackMap locals: long
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 33
        32: .line 348
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            new java.lang.StringBuilder
            dup
            ldc "endTime="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 7 /* endTime */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        33: .line 354
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 9 /* earliestSeq */
        start local 9 // long earliestSeq
        34: .line 355
            lload 2 /* startSequenceNumber */
            lstore 11 /* nextSeq */
        start local 11 // long nextSeq
        35: .line 357
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
        36: .line 356
            astore 13 /* notifs */
        start local 13 // java.util.List notifs
        37: .line 362
      StackMap locals: long long java.util.List
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            ldc "main loop starts"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        38: .line 368
            aload 0 /* this */
            dup
            astore 15
            monitorenter
        39: .line 372
            lload 9 /* earliestSeq */
            lconst_0
            lcmp
            ifge 51
        40: .line 373
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:()J
            lstore 9 /* earliestSeq */
        41: .line 374
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 45
        42: .line 375
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        43: .line 376
            new java.lang.StringBuilder
            dup
            ldc "earliestSeq="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 9 /* earliestSeq */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 375
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        45: .line 378
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List top com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack:
            lload 11 /* nextSeq */
            lload 9 /* earliestSeq */
            lcmp
            ifge 52
        46: .line 379
            lload 9 /* earliestSeq */
            lstore 11 /* nextSeq */
        47: .line 380
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        48: .line 381
            ldc "nextSeq=earliestSeq"
        49: .line 380
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        50: .line 383
            goto 52
        51: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:()J
            lstore 9 /* earliestSeq */
        52: .line 391
      StackMap locals:
      StackMap stack:
            lload 11 /* nextSeq */
            lload 9 /* earliestSeq */
            lcmp
            ifge 60
        53: .line 392
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        54: .line 393
            new java.lang.StringBuilder
            dup
            ldc "nextSeq="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 11 /* nextSeq */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " < "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "earliestSeq="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 394
            lload 9 /* earliestSeq */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " so may have lost notifs"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        56: .line 393
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        57: .line 392
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
        58: .line 395
            aload 15
            monitorexit
        59: goto 135
        60: .line 398
      StackMap locals:
      StackMap stack:
            lload 11 /* nextSeq */
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
            lcmp
            ifge 81
        61: .line 399
            aload 0 /* this */
            lload 11 /* nextSeq */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.notificationAt:(J)Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
            astore 14 /* candidate */
        start local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
        62: .line 401
            aload 1 /* filter */
            instanceof com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter
            ifne 73
        63: .line 403
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.mBeanServer:Ljavax/management/MBeanServer;
        64: .line 404
            aload 14 /* candidate */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification.getObjectName:()Ljavax/management/ObjectName;
            ldc "addNotificationListener"
        65: .line 403
            invokestatic com.sun.jmx.remote.internal.ServerNotifForwarder.checkMBeanPermission:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)V
        66: .line 405
            goto 73
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Exception
        67: astore 16 /* e */
        start local 16 // java.lang.Exception e
        68: .line 406
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 70
        69: .line 407
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            new java.lang.StringBuilder
            dup
            ldc "candidate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* candidate */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " skipped. exception "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        70: .line 409
      StackMap locals: java.lang.Exception
      StackMap stack:
            lload 11 /* nextSeq */
            lconst_1
            ladd
            lstore 11 /* nextSeq */
        71: .line 410
            aload 15
            monitorexit
        72: goto 37
        end local 16 // java.lang.Exception e
        73: .line 414
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 109
        74: .line 415
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            new java.lang.StringBuilder
            dup
            ldc "candidate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        75: .line 416
            aload 14 /* candidate */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        76: .line 415
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        77: .line 417
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            new java.lang.StringBuilder
            dup
            ldc "nextSeq now "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        78: .line 418
            lload 11 /* nextSeq */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        79: .line 417
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        80: .line 420
            goto 109
        end local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
        81: .line 425
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List top com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack:
            aload 13 /* notifs */
            invokeinterface java.util.List.size:()I
            ifle 87
        82: .line 426
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        83: .line 427
            ldc "no more notifs but have some so don't wait"
        84: .line 426
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        85: .line 428
            aload 15
            monitorexit
        86: goto 135
        87: .line 430
      StackMap locals:
      StackMap stack:
            lload 7 /* endTime */
            invokestatic java.lang.System.currentTimeMillis:()J
            lsub
            lstore 16 /* toWait */
        start local 16 // long toWait
        88: .line 431
            lload 16 /* toWait */
            lconst_0
            lcmp
            ifgt 92
        89: .line 432
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            ldc "timeout"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        90: .line 433
            aload 15
            monitorexit
        91: goto 135
        92: .line 437
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.isDisposed:()Z
            ifeq 102
        93: .line 438
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 97
        94: .line 439
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        95: .line 440
            ldc "dispose callled, no wait"
        96: .line 439
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        97: .line 441
      StackMap locals:
      StackMap stack:
            new javax.management.remote.NotificationResult
            dup
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:()J
        98: .line 442
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
        99: .line 443
            iconst_0
            anewarray javax.management.remote.TargetedNotification
       100: .line 441
            invokespecial javax.management.remote.NotificationResult.<init>:(JJ[Ljavax/management/remote/TargetedNotification;)V
            aload 15
            monitorexit
       101: areturn
       102: .line 446
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 106
       103: .line 447
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       104: .line 448
            new java.lang.StringBuilder
            dup
            ldc "wait("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 16 /* toWait */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       105: .line 447
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       106: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 16 /* toWait */
            invokevirtual java.lang.Object.wait:(J)V
       107: .line 451
            aload 15
            monitorexit
       108: goto 37
        end local 16 // long toWait
        start local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
       109: .line 368
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack:
            aload 15
            monitorexit
       110: goto 113
        end local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List top com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Throwable
       111: aload 15
            monitorexit
       112: athrow
        start local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
       113: .line 460
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification
      StackMap stack:
            aload 14 /* candidate */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification.getObjectName:()Ljavax/management/ObjectName;
            astore 15 /* name */
        start local 15 // javax.management.ObjectName name
       114: .line 461
            aload 14 /* candidate */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification.getNotification:()Ljavax/management/Notification;
            astore 16 /* notif */
        start local 16 // javax.management.Notification notif
       115: .line 463
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
       116: .line 462
            astore 17 /* matchedNotifs */
        start local 17 // java.util.List matchedNotifs
       117: .line 464
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       118: .line 465
            ldc "applying filter to candidate"
       119: .line 464
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       120: .line 466
            aload 1 /* filter */
            aload 17 /* matchedNotifs */
            aload 15 /* name */
            aload 16 /* notif */
            invokeinterface com.sun.jmx.remote.internal.NotificationBufferFilter.apply:(Ljava/util/List;Ljavax/management/ObjectName;Ljavax/management/Notification;)V
       121: .line 468
            aload 17 /* matchedNotifs */
            invokeinterface java.util.List.size:()I
            ifle 133
       122: .line 474
            iload 6 /* maxNotifications */
            ifgt 127
       123: .line 475
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       124: .line 476
            ldc "reached maxNotifications"
       125: .line 475
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       126: .line 477
            goto 135
       127: .line 479
      StackMap locals: javax.management.ObjectName javax.management.Notification java.util.List
      StackMap stack:
            iinc 6 /* maxNotifications */ -1
       128: .line 480
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 132
       129: .line 481
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            new java.lang.StringBuilder
            dup
            ldc "add: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       130: .line 482
            aload 17 /* matchedNotifs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       131: .line 481
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       132: .line 483
      StackMap locals:
      StackMap stack:
            aload 13 /* notifs */
            aload 17 /* matchedNotifs */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
       133: .line 486
      StackMap locals:
      StackMap stack:
            lload 11 /* nextSeq */
            lconst_1
            ladd
            lstore 11 /* nextSeq */
        end local 17 // java.util.List matchedNotifs
        end local 16 // javax.management.Notification notif
        end local 15 // javax.management.ObjectName name
        end local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
       134: .line 361
            goto 37
       135: .line 490
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.NotificationBufferFilter long long int long long long java.util.List
      StackMap stack:
            aload 13 /* notifs */
            invokeinterface java.util.List.size:()I
            istore 14 /* nnotifs */
        start local 14 // int nnotifs
       136: .line 492
            iload 14 /* nnotifs */
            anewarray javax.management.remote.TargetedNotification
       137: .line 491
            astore 15 /* resultNotifs */
        start local 15 // javax.management.remote.TargetedNotification[] resultNotifs
       138: .line 493
            aload 13 /* notifs */
            aload 15 /* resultNotifs */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
       139: .line 495
            new javax.management.remote.NotificationResult
            dup
            lload 9 /* earliestSeq */
            lload 11 /* nextSeq */
            aload 15 /* resultNotifs */
            invokespecial javax.management.remote.NotificationResult.<init>:(JJ[Ljavax/management/remote/TargetedNotification;)V
       140: .line 494
            astore 16 /* nr */
        start local 16 // javax.management.remote.NotificationResult nr
       141: .line 496
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 143
       142: .line 497
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            aload 16 /* nr */
            invokevirtual javax.management.remote.NotificationResult.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       143: .line 498
      StackMap locals: int javax.management.remote.TargetedNotification[] javax.management.remote.NotificationResult
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
            ldc "ends"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
       144: .line 500
            aload 16 /* nr */
            areturn
        end local 16 // javax.management.remote.NotificationResult nr
        end local 15 // javax.management.remote.TargetedNotification[] resultNotifs
        end local 14 // int nnotifs
        end local 13 // java.util.List notifs
        end local 11 // long nextSeq
        end local 9 // long earliestSeq
        end local 7 // long endTime
        end local 6 // int maxNotifications
        end local 4 // long timeout
        end local 2 // long startSequenceNumber
        end local 1 // com.sun.jmx.remote.internal.NotificationBufferFilter filter
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  145     0                 this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0  145     1               filter  Lcom/sun/jmx/remote/internal/NotificationBufferFilter;
            0  145     2  startSequenceNumber  J
            0  145     4              timeout  J
            0  145     6     maxNotifications  I
           26   28     7                  msg  Ljava/lang/String;
           29  145     7              endTime  J
           34  145     9          earliestSeq  J
           35  145    11              nextSeq  J
           37  145    13               notifs  Ljava/util/List<Ljavax/management/remote/TargetedNotification;>;
           62   81    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
          109  111    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
          113  134    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
           68   73    16                    e  Ljava/lang/Exception;
           88  109    16               toWait  J
          114  134    15                 name  Ljavax/management/ObjectName;
          115  134    16                notif  Ljavax/management/Notification;
          117  134    17        matchedNotifs  Ljava/util/List<Ljavax/management/remote/TargetedNotification;>;
          136  145    14              nnotifs  I
          138  145    15         resultNotifs  [Ljavax/management/remote/TargetedNotification;
          141  145    16                   nr  Ljavax/management/remote/NotificationResult;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          63    66      67  Class javax.management.InstanceNotFoundException
          63    66      67  Class java.lang.SecurityException
          39    59     111  any
          60    72     111  any
          73    86     111  any
          87    91     111  any
          92   101     111  any
         102   108     111  any
         109   110     111  any
         111   112     111  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
                     Name  Flags
      filter               
      startSequenceNumber  
      timeout              
      maxNotifications     

  synchronized long earliestSequenceNumber();
    descriptor: ()J
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 504
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            lreturn
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  synchronized long nextSequenceNumber();
    descriptor: ()J
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 508
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:J
            lreturn
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  synchronized void addNotification(com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification);
    descriptor: (Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification notif
         0: .line 512
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
            ifeq 10
         1: .line 513
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addNotification"
            aload 1 /* notif */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 515
            goto 10
         3: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.dropNotification:()V
         4: .line 517
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 10
         5: .line 518
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addNotification"
         6: .line 519
            new java.lang.StringBuilder
            dup
            ldc "dropped oldest notif, earliestSeq="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 520
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         8: .line 519
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 518
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.size:()I
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queueSize:I
            if_icmpge 3
        11: .line 523
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            aload 1 /* notif */
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.add:(Ljava/lang/Object;)Z
            pop
        12: .line 524
            aload 0 /* this */
            dup
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:J
            lconst_1
            ladd
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:J
        13: .line 525
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 15
        14: .line 526
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addNotification"
            new java.lang.StringBuilder
            dup
            ldc "nextSeq="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        15: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        16: .line 528
            return
        end local 1 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification notif
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0   17     1  notif  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
    MethodParameters:
       Name  Flags
      notif  

  private void dropNotification();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 531
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            iconst_0
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.remove:(I)Ljava/lang/Object;
            pop
         1: .line 532
            aload 0 /* this */
            dup
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            lconst_1
            ladd
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
         2: .line 533
            return
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  synchronized com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification notificationAt(long);
    descriptor: (J)Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // long seqNo
         0: .line 536
            lload 1 /* seqNo */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            lsub
            lstore 3 /* index */
        start local 3 // long index
         1: .line 537
            lload 3 /* index */
            lconst_0
            lcmp
            iflt 2
            lload 3 /* index */
            ldc 2147483647
            lcmp
            ifle 7
         2: .line 538
      StackMap locals: long
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Bad sequence number: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* seqNo */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " (earliest "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 539
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 538
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         5: .line 540
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "notificationAt"
            aload 5 /* msg */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 541
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
         7: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.queue:Lcom/sun/jmx/remote/internal/ArrayQueue;
            lload 3 /* index */
            l2i
            invokevirtual com.sun.jmx.remote.internal.ArrayQueue.get:(I)Ljava/lang/Object;
            checkcast com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification
            areturn
        end local 3 // long index
        end local 1 // long seqNo
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    8     1  seqNo  J
            1    8     3  index  J
            5    7     5    msg  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      seqNo  

  private void createListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 601
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createListeners"
            ldc "starts"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 603
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 604
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
         3: .line 603
            aload 1
            monitorexit
         4: goto 7
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
         8: .line 609
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationListener:Ljavax/management/NotificationListener;
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationFilter:Ljavax/management/NotificationFilter;
            aconst_null
         9: .line 608
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        10: .line 610
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createListeners"
            ldc "added creationListener"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 611
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 1 /* e */
        start local 1 // java.lang.Exception e
        13: .line 613
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can't add listener to MBean server delegate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 2 /* re */
        start local 2 // java.lang.RuntimeException re
        14: .line 614
            aload 2 /* re */
            aload 1 /* e */
            invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        15: .line 615
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createListeners"
            new java.lang.StringBuilder
            dup
            ldc "Can't add listener to MBean server delegate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.fine:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 616
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createListeners"
            aload 1 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        17: .line 617
            aload 2 /* re */
            athrow
        end local 2 // java.lang.RuntimeException re
        end local 1 // java.lang.Exception e
        18: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterQuery:Ljavax/management/QueryExp;
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
            astore 1 /* names */
        start local 1 // java.util.Set names
        19: .line 623
            new java.util.HashSet
            dup
            aload 1 /* names */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 1 /* names */
        20: .line 625
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        21: .line 626
            aload 1 /* names */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        22: .line 627
            aload 0 /* this */
            aconst_null
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
        23: .line 625
            aload 2
            monitorexit
        24: goto 27
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer java.util.Set com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack: java.lang.Throwable
        25: aload 2
            monitorexit
        26: athrow
        27: .line 630
      StackMap locals:
      StackMap stack:
            aload 1 /* names */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 30
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer java.util.Set top java.util.Iterator
      StackMap stack:
        28: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 2 /* name */
        start local 2 // javax.management.ObjectName name
        29: .line 631
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addBufferListener:(Ljavax/management/ObjectName;)V
        end local 2 // javax.management.ObjectName name
        30: .line 630
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        31: .line 632
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createListeners"
            ldc "ends"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        32: .line 633
            return
        end local 1 // java.util.Set names
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0   this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
           13   18     1      e  Ljava/lang/Exception;
           14   18     2     re  Ljava/lang/RuntimeException;
           19   33     1  names  Ljava/util/Set<Ljavax/management/ObjectName;>;
           29   30     2   name  Ljavax/management/ObjectName;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
           7    11      12  Class java.lang.Exception
          21    24      25  any
          25    26      25  any

  private void addBufferListener(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.ObjectName name
         0: .line 636
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 637
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 3
         2: .line 638
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addBufferListener"
            aload 1 /* name */
            invokevirtual javax.management.ObjectName.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.bufferListener:Ljavax/management/NotificationListener;
            aconst_null
            aload 1 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
         4: .line 641
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 642
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addBufferListener"
            aload 2 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception e
         7: .line 647
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.ObjectName name
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    8     1  name  Ljavax/management/ObjectName;
            6    7     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  private void removeBufferListener(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.ObjectName name
         0: .line 650
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 651
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 3
         2: .line 652
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "removeBufferListener"
            aload 1 /* name */
            invokevirtual javax.management.ObjectName.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.bufferListener:Ljavax/management/NotificationListener;
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)V
         4: .line 655
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 656
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "removeBufferListener"
            aload 2 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception e
         7: .line 658
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.ObjectName name
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    8     1  name  Ljavax/management/ObjectName;
            6    7     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  private void addNotificationListener(javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object);
    descriptor: (Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.ObjectName name
        start local 2 // javax.management.NotificationListener listener
        start local 3 // javax.management.NotificationFilter filter
        start local 4 // java.lang.Object handback
         0: .line 666
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$2
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* listener */
            aload 3 /* filter */
            aload 4 /* handback */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$2.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         1: .line 675
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 5 /* e */
        start local 5 // java.lang.Exception e
         3: .line 676
            aload 5 /* e */
            invokestatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.extractException:(Ljava/lang/Exception;)Ljava/lang/Exception;
            athrow
        end local 5 // java.lang.Exception e
         4: .line 678
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object handback
        end local 3 // javax.management.NotificationFilter filter
        end local 2 // javax.management.NotificationListener listener
        end local 1 // javax.management.ObjectName name
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    5     1      name  Ljavax/management/ObjectName;
            0    5     2  listener  Ljavax/management/NotificationListener;
            0    5     3    filter  Ljavax/management/NotificationFilter;
            0    5     4  handback  Ljava/lang/Object;
            3    4     5         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      name      final
      listener  final
      filter    final
      handback  final

  private void removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener);
    descriptor: (Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.ObjectName name
        start local 2 // javax.management.NotificationListener listener
         0: .line 684
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$3
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* listener */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$3.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         1: .line 690
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 3 /* e */
        start local 3 // java.lang.Exception e
         3: .line 691
            aload 3 /* e */
            invokestatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.extractException:(Ljava/lang/Exception;)Ljava/lang/Exception;
            athrow
        end local 3 // java.lang.Exception e
         4: .line 693
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.management.NotificationListener listener
        end local 1 // javax.management.ObjectName name
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    5     1      name  Ljavax/management/ObjectName;
            0    5     2  listener  Ljavax/management/NotificationListener;
            3    4     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      name      final
      listener  final

  private java.util.Set<javax.management.ObjectName> queryNames(javax.management.ObjectName, javax.management.QueryExp);
    descriptor: (Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.ObjectName name
        start local 2 // javax.management.QueryExp query
         0: .line 698
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$4
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* query */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$4.<init>:(Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;Ljavax/management/ObjectName;Ljavax/management/QueryExp;)V
         1: .line 697
            astore 3 /* act */
        start local 3 // java.security.PrivilegedAction act
         2: .line 704
            aload 3 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.Set
         3: areturn
         4: .line 705
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer javax.management.ObjectName javax.management.QueryExp java.security.PrivilegedAction
      StackMap stack: java.lang.RuntimeException
            astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
         5: .line 706
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "queryNames"
            new java.lang.StringBuilder
            dup
            ldc "Failed to query names: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.fine:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 707
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "queryNames"
            aload 4 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
         7: .line 708
            aload 4 /* e */
            athrow
        end local 4 // java.lang.RuntimeException e
        end local 3 // java.security.PrivilegedAction act
        end local 2 // javax.management.QueryExp query
        end local 1 // javax.management.ObjectName name
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0    8     1   name  Ljavax/management/ObjectName;
            0    8     2  query  Ljavax/management/QueryExp;
            2    8     3    act  Ljava/security/PrivilegedAction<Ljava/util/Set<Ljavax/management/ObjectName;>;>;
            5    8     4      e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException
    Signature: (Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set<Ljavax/management/ObjectName;>;
    MethodParameters:
       Name  Flags
      name   final
      query  final

  private static boolean isInstanceOf(javax.management.MBeanServer, javax.management.ObjectName, java.lang.String);
    descriptor: (Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // javax.management.MBeanServer mbs
        start local 1 // javax.management.ObjectName name
        start local 2 // java.lang.String className
         0: .line 716
            new com.sun.jmx.remote.internal.ArrayNotificationBuffer$5
            dup
            aload 0 /* mbs */
            aload 1 /* name */
            aload 2 /* className */
            invokespecial com.sun.jmx.remote.internal.ArrayNotificationBuffer$5.<init>:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)V
         1: .line 715
            astore 3 /* act */
        start local 3 // java.security.PrivilegedExceptionAction act
         2: .line 722
            aload 3 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
         3: ireturn
         4: .line 723
      StackMap locals: javax.management.MBeanServer javax.management.ObjectName java.lang.String java.security.PrivilegedExceptionAction
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         5: .line 724
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "isInstanceOf"
            new java.lang.StringBuilder
            dup
            ldc "failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.fine:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 725
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "isInstanceOf"
            aload 4 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
         7: .line 726
            iconst_0
            ireturn
        end local 4 // java.lang.Exception e
        end local 3 // java.security.PrivilegedExceptionAction act
        end local 2 // java.lang.String className
        end local 1 // javax.management.ObjectName name
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0        mbs  Ljavax/management/MBeanServer;
            0    8     1       name  Ljavax/management/ObjectName;
            0    8     2  className  Ljava/lang/String;
            2    8     3        act  Ljava/security/PrivilegedExceptionAction<Ljava/lang/Boolean;>;
            5    8     4          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      mbs        final
      name       final
      className  final

  private void createdNotification(javax.management.MBeanServerNotification);
    descriptor: (Ljavax/management/MBeanServerNotification;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
        start local 1 // javax.management.MBeanServerNotification n
         0: .line 741
            aload 1 /* n */
            invokevirtual javax.management.MBeanServerNotification.getType:()Ljava/lang/String;
            ldc "JMX.mbean.registered"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 742
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createNotification"
            new java.lang.StringBuilder
            dup
            ldc "bad type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* n */
            invokevirtual javax.management.MBeanServerNotification.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.warning:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 743
            return
         3: .line 746
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            invokevirtual javax.management.MBeanServerNotification.getMBeanName:()Ljavax/management/ObjectName;
            astore 2 /* name */
        start local 2 // javax.management.ObjectName name
         4: .line 747
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 6
         5: .line 748
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "createdNotification"
            new java.lang.StringBuilder
            dup
            ldc "for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 750
      StackMap locals: javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         7: .line 751
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
            ifnull 11
         8: .line 752
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
            aload 2 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 753
            aload 3
            monitorexit
        10: return
        11: .line 750
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer
      StackMap stack:
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 757
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.mBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* name */
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterClass:Ljava/lang/String;
            invokestatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.isInstanceOf:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)Z
            ifeq 19
        16: .line 758
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addBufferListener:(Ljavax/management/ObjectName;)V
        17: .line 759
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.isDisposed:()Z
            ifeq 19
        18: .line 760
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeBufferListener:(Ljavax/management/ObjectName;)V
        19: .line 762
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.management.ObjectName name
        end local 1 // javax.management.MBeanServerNotification n
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0   20     1     n  Ljavax/management/MBeanServerNotification;
            4   20     2  name  Ljavax/management/ObjectName;
      Exception table:
        from    to  target  type
           7    10      13  any
          11    12      13  any
          13    14      13  any
    MethodParameters:
      Name  Flags
      n     

  private void destroyListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 805
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 806
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "destroyListeners"
            ldc "starts"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 808
            aload 0 /* this */
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
         3: .line 809
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationListener:Ljavax/management/NotificationListener;
         4: .line 808
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)V
         5: .line 810
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 811
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "remove listener from MBeanServer delegate"
            aload 1 /* e */
            invokevirtual com.sun.jmx.remote.util.ClassLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         8: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterQuery:Ljavax/management/QueryExp;
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
            astore 1 /* names */
        start local 1 // java.util.Set names
         9: .line 814
            aload 1 /* names */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 16
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer java.util.Set top java.util.Iterator
      StackMap stack:
        10: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 2 /* name */
        start local 2 // javax.management.ObjectName name
        11: .line 815
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 15
        12: .line 816
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "destroyListeners"
        13: .line 817
            new java.lang.StringBuilder
            dup
            ldc "remove listener from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 816
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        15: .line 818
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer java.util.Set javax.management.ObjectName java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeBufferListener:(Ljavax/management/ObjectName;)V
        end local 2 // javax.management.ObjectName name
        16: .line 814
      StackMap locals: com.sun.jmx.remote.internal.ArrayNotificationBuffer java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        17: .line 820
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "destroyListeners"
            ldc "ends"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        18: .line 821
            return
        end local 1 // java.util.Set names
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            7    8     1      e  Ljava/lang/Exception;
            9   19     1  names  Ljava/util/Set<Ljavax/management/ObjectName;>;
           11   16     2   name  Ljavax/management/ObjectName;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.Exception

  private void checkNoLocks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
         0: .line 824
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.globalLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 825
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "checkNoLocks"
            ldc "lock protocol violation"
            invokevirtual com.sun.jmx.remote.util.ClassLogger.warning:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 826
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jmx.remote.internal.ArrayNotificationBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;

  private static java.lang.Exception extractException(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)Ljava/lang/Exception;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Exception e
         0: .line 833
            goto 2
         1: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            checkcast java.security.PrivilegedActionException
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 0 /* e */
         2: .line 833
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof java.security.PrivilegedActionException
            ifne 1
         3: .line 836
            aload 0 /* e */
            areturn
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     
}
SourceFile: "ArrayNotificationBuffer.java"
NestMembers:
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$1  com.sun.jmx.remote.internal.ArrayNotificationBuffer$2  com.sun.jmx.remote.internal.ArrayNotificationBuffer$3  com.sun.jmx.remote.internal.ArrayNotificationBuffer$4  com.sun.jmx.remote.internal.ArrayNotificationBuffer$5  com.sun.jmx.remote.internal.ArrayNotificationBuffer$BroadcasterQuery  com.sun.jmx.remote.internal.ArrayNotificationBuffer$BufferListener  com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification  com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer
InnerClasses:
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$1
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$2
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$3
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$4
  com.sun.jmx.remote.internal.ArrayNotificationBuffer$5
  private BroadcasterQuery = com.sun.jmx.remote.internal.ArrayNotificationBuffer$BroadcasterQuery of com.sun.jmx.remote.internal.ArrayNotificationBuffer
  private BufferListener = com.sun.jmx.remote.internal.ArrayNotificationBuffer$BufferListener of com.sun.jmx.remote.internal.ArrayNotificationBuffer
  private NamedNotification = com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification of com.sun.jmx.remote.internal.ArrayNotificationBuffer
  private ShareBuffer = com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer of com.sun.jmx.remote.internal.ArrayNotificationBuffer
  final NotifForwarderBufferFilter = com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter of com.sun.jmx.remote.internal.ServerNotifForwarder