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 792
            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 796
            new javax.management.NotificationFilterSupport
            dup
            invokespecial javax.management.NotificationFilterSupport.<init>:()V
            astore 0 /* nfs */
        start local 0 // javax.management.NotificationFilterSupport nfs
         5: .line 797
            aload 0 /* nfs */
            ldc "JMX.mbean.registered"
            invokevirtual javax.management.NotificationFilterSupport.enableType:(Ljava/lang/String;)V
         6: .line 798
            aload 0 /* nfs */
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationFilter:Ljavax/management/NotificationFilter;
        end local 0 // javax.management.NotificationFilterSupport nfs
         7: .line 846
            new com.sun.jmx.remote.util.ClassLogger
            dup
            ldc "javax.management.remote.misc"
         8: .line 847
            ldc "ArrayNotificationBuffer"
         9: .line 846
            invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 845
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
        11: .line 857
            ldc Ljavax/management/NotificationBroadcaster;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        12: .line 856
            putstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.broadcasterClass:Ljava/lang/String;
        13: .line 857
            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);
    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;
            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
    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 781
            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 801
            aload 0 /* this */
         5: .line 802
            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 141
        60: .line 398
      StackMap locals:
      StackMap stack:
            lload 11 /* nextSeq */
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
            lcmp
            ifge 87
        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 79
        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 79
      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: javax.management.InstanceNotFoundException
        67: astore 16 /* e */
        start local 16 // javax.management.InstanceNotFoundException 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: javax.management.InstanceNotFoundException
      StackMap stack:
            lload 11 /* nextSeq */
            lconst_1
            ladd
            lstore 11 /* nextSeq */
        71: .line 410
            aload 15
            monitorexit
        72: goto 37
        end local 16 // javax.management.InstanceNotFoundException e
        73: .line 411
      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.SecurityException
            astore 16 /* e */
        start local 16 // java.lang.SecurityException e
        74: .line 412
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 76
        75: .line 413
            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
        76: .line 415
      StackMap locals: java.lang.SecurityException
      StackMap stack:
            lload 11 /* nextSeq */
            lconst_1
            ladd
            lstore 11 /* nextSeq */
        77: .line 416
            aload 15
            monitorexit
        78: goto 37
        end local 16 // java.lang.SecurityException e
        79: .line 420
      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 115
        80: .line 421
            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
        81: .line 422
            aload 14 /* candidate */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        82: .line 421
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        83: .line 423
            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
        84: .line 424
            lload 11 /* nextSeq */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        85: .line 423
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        86: .line 426
            goto 115
        end local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
        87: .line 431
      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 93
        88: .line 432
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
        89: .line 433
            ldc "no more notifs but have some so don't wait"
        90: .line 432
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        91: .line 434
            aload 15
            monitorexit
        92: goto 141
        93: .line 436
      StackMap locals:
      StackMap stack:
            lload 7 /* endTime */
            invokestatic java.lang.System.currentTimeMillis:()J
            lsub
            lstore 16 /* toWait */
        start local 16 // long toWait
        94: .line 437
            lload 16 /* toWait */
            lconst_0
            lcmp
            ifgt 98
        95: .line 438
            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
        96: .line 439
            aload 15
            monitorexit
        97: goto 141
        98: .line 443
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.isDisposed:()Z
            ifeq 108
        99: .line 444
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 103
       100: .line 445
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       101: .line 446
            ldc "dispose callled, no wait"
       102: .line 445
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       103: .line 447
      StackMap locals:
      StackMap stack:
            new javax.management.remote.NotificationResult
            dup
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:()J
       104: .line 448
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.nextSequenceNumber:()J
       105: .line 449
            iconst_0
            anewarray javax.management.remote.TargetedNotification
       106: .line 447
            invokespecial javax.management.remote.NotificationResult.<init>:(JJ[Ljavax/management/remote/TargetedNotification;)V
            aload 15
            monitorexit
       107: areturn
       108: .line 452
      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 112
       109: .line 453
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       110: .line 454
            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;
       111: .line 453
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       112: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 16 /* toWait */
            invokevirtual java.lang.Object.wait:(J)V
       113: .line 457
            aload 15
            monitorexit
       114: goto 37
        end local 16 // long toWait
        start local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
       115: .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
       116: goto 119
        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
       117: aload 15
            monitorexit
       118: athrow
        start local 14 // com.sun.jmx.remote.internal.ArrayNotificationBuffer$NamedNotification candidate
       119: .line 466
      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
       120: .line 467
            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
       121: .line 469
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
       122: .line 468
            astore 17 /* matchedNotifs */
        start local 17 // java.util.List matchedNotifs
       123: .line 470
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       124: .line 471
            ldc "applying filter to candidate"
       125: .line 470
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       126: .line 472
            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
       127: .line 474
            aload 17 /* matchedNotifs */
            invokeinterface java.util.List.size:()I
            ifle 139
       128: .line 480
            iload 6 /* maxNotifications */
            ifgt 133
       129: .line 481
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "fetchNotifications"
       130: .line 482
            ldc "reached maxNotifications"
       131: .line 481
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       132: .line 483
            goto 141
       133: .line 485
      StackMap locals: javax.management.ObjectName javax.management.Notification java.util.List
      StackMap stack:
            iinc 6 /* maxNotifications */ -1
       134: .line 486
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 138
       135: .line 487
            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
       136: .line 488
            aload 17 /* matchedNotifs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       137: .line 487
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
       138: .line 489
      StackMap locals:
      StackMap stack:
            aload 13 /* notifs */
            aload 17 /* matchedNotifs */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
       139: .line 492
      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
       140: .line 361
            goto 37
       141: .line 496
      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
       142: .line 498
            iload 14 /* nnotifs */
            anewarray javax.management.remote.TargetedNotification
       143: .line 497
            astore 15 /* resultNotifs */
        start local 15 // javax.management.remote.TargetedNotification[] resultNotifs
       144: .line 499
            aload 13 /* notifs */
            aload 15 /* resultNotifs */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
       145: .line 501
            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
       146: .line 500
            astore 16 /* nr */
        start local 16 // javax.management.remote.NotificationResult nr
       147: .line 502
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
            ifeq 149
       148: .line 503
            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
       149: .line 504
      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
       150: .line 506
            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  151     0                 this  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer;
            0  151     1               filter  Lcom/sun/jmx/remote/internal/NotificationBufferFilter;
            0  151     2  startSequenceNumber  J
            0  151     4              timeout  J
            0  151     6     maxNotifications  I
           26   28     7                  msg  Ljava/lang/String;
           29  151     7              endTime  J
           34  151     9          earliestSeq  J
           35  151    11              nextSeq  J
           37  151    13               notifs  Ljava/util/List<Ljavax/management/remote/TargetedNotification;>;
           62   87    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
          115  117    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
          119  140    14            candidate  Lcom/sun/jmx/remote/internal/ArrayNotificationBuffer$NamedNotification;
           68   73    16                    e  Ljavax/management/InstanceNotFoundException;
           74   79    16                    e  Ljava/lang/SecurityException;
           94  115    16               toWait  J
          120  140    15                 name  Ljavax/management/ObjectName;
          121  140    16                notif  Ljavax/management/Notification;
          123  140    17        matchedNotifs  Ljava/util/List<Ljavax/management/remote/TargetedNotification;>;
          142  151    14              nnotifs  I
          144  151    15         resultNotifs  [Ljavax/management/remote/TargetedNotification;
          147  151    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      73  Class java.lang.SecurityException
          39    59     117  any
          60    72     117  any
          73    78     117  any
          79    92     117  any
          93    97     117  any
          98   107     117  any
         108   114     117  any
         115   116     117  any
         117   118     117  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 510
            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 514
            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 518
            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 519
            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 521
            goto 10
         3: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.dropNotification:()V
         4: .line 523
            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 524
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "addNotification"
         6: .line 525
            new java.lang.StringBuilder
            dup
            ldc "dropped oldest notif, earliestSeq="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 526
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.earliestSequenceNumber:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         8: .line 525
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 524
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 521
      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 529
            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 530
            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 531
            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 532
            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 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.notifyAll:()V
        16: .line 534
            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 537
            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 538
            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 539
            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 542
            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 543
            lload 3 /* index */
            lconst_0
            lcmp
            iflt 2
            lload 3 /* index */
            ldc 2147483647
            lcmp
            ifle 7
         2: .line 544
      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 545
            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 544
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         5: .line 546
            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 547
            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 549
      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 607
            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 609
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 610
            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 609
            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 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
         8: .line 615
            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 614
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        10: .line 616
            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 617
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 1 /* e */
        start local 1 // java.lang.Exception e
        13: .line 619
            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 620
            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 621
            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 622
            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 623
            aload 2 /* re */
            athrow
        end local 2 // java.lang.RuntimeException re
        end local 1 // java.lang.Exception e
        18: .line 628
      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 629
            new java.util.HashSet
            dup
            aload 1 /* names */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 1 /* names */
        20: .line 631
            aload 0 /* this */
            dup
            astore 2
            monitorenter
        21: .line 632
            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 633
            aload 0 /* this */
            aconst_null
            putfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
        23: .line 631
            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 636
      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 637
            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 636
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        31: .line 638
            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 639
            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 642
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 643
            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 644
            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 646
      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 647
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 648
            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 653
      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 656
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 657
            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 658
            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 660
      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 661
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 662
            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 664
      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 672
            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 681
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 5 /* e */
        start local 5 // java.lang.Exception e
         3: .line 682
            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 684
      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 690
            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 696
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 3 /* e */
        start local 3 // java.lang.Exception e
         3: .line 697
            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 699
      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 704
            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 703
            astore 3 /* act */
        start local 3 // java.security.PrivilegedAction act
         2: .line 710
            aload 3 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.util.Set
         3: areturn
         4: .line 711
      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 712
            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 713
            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 714
            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 722
            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 721
            astore 3 /* act */
        start local 3 // java.security.PrivilegedExceptionAction act
         2: .line 728
            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 729
      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 730
            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 731
            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 732
            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 747
            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 748
            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 749
            return
         3: .line 752
      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 753
            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 754
            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 756
      StackMap locals: javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         7: .line 757
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.createdDuringQuery:Ljava/util/Set;
            ifnull 11
         8: .line 758
            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 759
            aload 3
            monitorexit
        10: return
        11: .line 756
      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 763
      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 764
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.addBufferListener:(Ljavax/management/ObjectName;)V
        17: .line 765
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.isDisposed:()Z
            ifeq 19
        18: .line 766
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeBufferListener:(Ljavax/management/ObjectName;)V
        19: .line 768
      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 811
            aload 0 /* this */
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.checkNoLocks:()V
         1: .line 812
            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 814
            aload 0 /* this */
            getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
         3: .line 815
            aload 0 /* this */
            getfield com.sun.jmx.remote.internal.ArrayNotificationBuffer.creationListener:Ljavax/management/NotificationListener;
         4: .line 814
            invokevirtual com.sun.jmx.remote.internal.ArrayNotificationBuffer.removeNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)V
         5: .line 816
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 817
            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 819
      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 820
            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 821
            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 822
            getstatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.logger:Lcom/sun/jmx/remote/util/ClassLogger;
            ldc "destroyListeners"
        13: .line 823
            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 822
            invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
        15: .line 824
      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 820
      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 826
            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 827
            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 830
            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 831
      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 832
      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 839
            goto 2
         1: .line 840
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            checkcast java.security.PrivilegedActionException
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 0 /* e */
         2: .line 839
      StackMap locals:
      StackMap stack:
            aload 0 /* e */
            instanceof java.security.PrivilegedActionException
            ifne 1
         3: .line 842
            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