public class org.apache.tomcat.util.modeler.BaseNotificationBroadcaster implements javax.management.NotificationBroadcaster
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster
  super_class: java.lang.Object
{
  protected java.util.ArrayList<org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry> entries;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/ArrayList<Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 55
            aload 0 /* this */
         2: .line 56
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
         3: .line 42
            return
        end local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcaster;

  public void addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object);
    descriptor: (Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=15, args_size=4
        start local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
        start local 1 // javax.management.NotificationListener listener
        start local 2 // javax.management.NotificationFilter filter
        start local 3 // java.lang.Object handback
         0: .line 79
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            dup
            astore 4
            monitorenter
         1: .line 82
            aload 2 /* filter */
            instanceof org.apache.tomcat.util.modeler.BaseAttributeFilter
            ifeq 25
         2: .line 83
            aload 2 /* filter */
            checkcast org.apache.tomcat.util.modeler.BaseAttributeFilter
            astore 5 /* newFilter */
        start local 5 // org.apache.tomcat.util.modeler.BaseAttributeFilter newFilter
         3: .line 84
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 24
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList org.apache.tomcat.util.modeler.BaseAttributeFilter top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry
            astore 6 /* item */
        start local 6 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
         5: .line 85
            aload 6 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.listener:Ljavax/management/NotificationListener;
            aload 1 /* listener */
            if_acmpne 24
         6: .line 86
            aload 6 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.filter:Ljavax/management/NotificationFilter;
            ifnull 24
         7: .line 87
            aload 6 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.filter:Ljavax/management/NotificationFilter;
            instanceof org.apache.tomcat.util.modeler.BaseAttributeFilter
            ifeq 24
         8: .line 88
            aload 6 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.handback:Ljava/lang/Object;
            aload 3 /* handback */
            if_acmpne 24
         9: .line 90
            aload 6 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.filter:Ljavax/management/NotificationFilter;
            checkcast org.apache.tomcat.util.modeler.BaseAttributeFilter
        10: .line 89
            astore 8 /* oldFilter */
        start local 8 // org.apache.tomcat.util.modeler.BaseAttributeFilter oldFilter
        11: .line 91
            aload 5 /* newFilter */
            invokevirtual org.apache.tomcat.util.modeler.BaseAttributeFilter.getNames:()[Ljava/lang/String;
            astore 9 /* newNames */
        start local 9 // java.lang.String[] newNames
        12: .line 92
            aload 8 /* oldFilter */
            invokevirtual org.apache.tomcat.util.modeler.BaseAttributeFilter.getNames:()[Ljava/lang/String;
            astore 10 /* oldNames */
        start local 10 // java.lang.String[] oldNames
        13: .line 93
            aload 9 /* newNames */
            arraylength
            ifne 16
        14: .line 94
            aload 8 /* oldFilter */
            invokevirtual org.apache.tomcat.util.modeler.BaseAttributeFilter.clear:()V
        15: .line 95
            goto 22
        16: .line 96
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList org.apache.tomcat.util.modeler.BaseAttributeFilter org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry java.util.Iterator org.apache.tomcat.util.modeler.BaseAttributeFilter java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 10 /* oldNames */
            arraylength
            ifeq 22
        17: .line 97
            aload 9 /* newNames */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 21
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList org.apache.tomcat.util.modeler.BaseAttributeFilter org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry java.util.Iterator org.apache.tomcat.util.modeler.BaseAttributeFilter java.lang.String[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        18: aload 14
            iload 12
            aaload
            astore 11 /* newName */
        start local 11 // java.lang.String newName
        19: aload 8 /* oldFilter */
            aload 11 /* newName */
            invokevirtual org.apache.tomcat.util.modeler.BaseAttributeFilter.addAttribute:(Ljava/lang/String;)V
        end local 11 // java.lang.String newName
        20: iinc 12 1
      StackMap locals:
      StackMap stack:
        21: iload 12
            iload 13
            if_icmplt 18
        22: .line 100
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList org.apache.tomcat.util.modeler.BaseAttributeFilter org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry java.util.Iterator org.apache.tomcat.util.modeler.BaseAttributeFilter java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 4
            monitorexit
        23: return
        end local 10 // java.lang.String[] oldNames
        end local 9 // java.lang.String[] newNames
        end local 8 // org.apache.tomcat.util.modeler.BaseAttributeFilter oldFilter
        end local 6 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
        24: .line 84
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList org.apache.tomcat.util.modeler.BaseAttributeFilter top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // org.apache.tomcat.util.modeler.BaseAttributeFilter newFilter
        25: .line 106
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener javax.management.NotificationFilter java.lang.Object java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            new org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry
            dup
        26: .line 107
            aload 1 /* listener */
            aload 2 /* filter */
            aload 3 /* handback */
            invokespecial org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.<init>:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        27: .line 106
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        28: .line 79
            aload 4
            monitorexit
        29: goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: aload 4
            monitorexit
        31: athrow
        32: .line 110
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object handback
        end local 2 // javax.management.NotificationFilter filter
        end local 1 // javax.management.NotificationListener listener
        end local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcaster;
            0   33     1   listener  Ljavax/management/NotificationListener;
            0   33     2     filter  Ljavax/management/NotificationFilter;
            0   33     3   handback  Ljava/lang/Object;
            3   25     5  newFilter  Lorg/apache/tomcat/util/modeler/BaseAttributeFilter;
            5   24     6       item  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;
           11   24     8  oldFilter  Lorg/apache/tomcat/util/modeler/BaseAttributeFilter;
           12   24     9   newNames  [Ljava/lang/String;
           13   24    10   oldNames  [Ljava/lang/String;
           19   20    11    newName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1    23      30  any
          24    29      30  any
          30    31      30  any
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
          Name  Flags
      listener  
      filter    
      handback  

  public javax.management.MBeanNotificationInfo[] getNotificationInfo();
    descriptor: ()[Ljavax/management/MBeanNotificationInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
         0: .line 119
            iconst_0
            anewarray javax.management.MBeanNotificationInfo
            areturn
        end local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcaster;

  public void removeNotificationListener(javax.management.NotificationListener);
    descriptor: (Ljavax/management/NotificationListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
        start local 1 // javax.management.NotificationListener listener
         0: .line 136
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 137
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            aload 1 /* listener */
            invokedynamic test(Ljavax/management/NotificationListener;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.lambda$0(Ljavax/management/NotificationListener;Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;)Z (6)
                  (Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;)Z
            invokevirtual java.util.ArrayList.removeIf:(Ljava/util/function/Predicate;)Z
            pop
         2: .line 136
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.NotificationListener java.util.ArrayList
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.NotificationListener listener
        end local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcaster;
            0    7     1  listener  Ljavax/management/NotificationListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws javax.management.ListenerNotFoundException
    MethodParameters:
          Name  Flags
      listener  

  public void sendNotification(javax.management.Notification);
    descriptor: (Ljavax/management/Notification;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
        start local 1 // javax.management.Notification notification
         0: .line 150
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 151
            aload 0 /* this */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcaster.entries:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.Notification java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry
            astore 3 /* item */
        start local 3 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
         3: .line 152
            aload 3 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.filter:Ljavax/management/NotificationFilter;
            ifnull 6
         4: .line 153
            aload 3 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.filter:Ljavax/management/NotificationFilter;
            aload 1 /* notification */
            invokeinterface javax.management.NotificationFilter.isNotificationEnabled:(Ljavax/management/Notification;)Z
            ifne 6
         5: .line 154
            goto 7
         6: .line 155
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.Notification java.util.ArrayList org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry java.util.Iterator
      StackMap stack:
            aload 3 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.listener:Ljavax/management/NotificationListener;
            aload 1 /* notification */
            aload 3 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.handback:Ljava/lang/Object;
            invokeinterface javax.management.NotificationListener.handleNotification:(Ljavax/management/Notification;Ljava/lang/Object;)V
        end local 3 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
         7: .line 151
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.Notification java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 150
            aload 2
            monitorexit
         9: goto 12
      StackMap locals: org.apache.tomcat.util.modeler.BaseNotificationBroadcaster javax.management.Notification java.util.ArrayList
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 159
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.Notification notification
        end local 0 // org.apache.tomcat.util.modeler.BaseNotificationBroadcaster this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcaster;
            0   13     1  notification  Ljavax/management/Notification;
            3    7     3          item  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any
    MethodParameters:
              Name  Flags
      notification  

  private static boolean lambda$0(javax.management.NotificationListener, org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry);
    descriptor: (Ljavax/management/NotificationListener;Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
         0: .line 137
            aload 1 /* item */
            getfield org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry.listener:Ljavax/management/NotificationListener;
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.apache.tomcat.util.modeler.BaseNotificationBroadcasterEntry item
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  item  Lorg/apache/tomcat/util/modeler/BaseNotificationBroadcasterEntry;
}
SourceFile: "BaseNotificationBroadcaster.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles