public class javax.management.NotificationBroadcasterSupport implements javax.management.NotificationEmitter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: javax.management.NotificationBroadcasterSupport
super_class: java.lang.Object
{
private java.util.List<javax.management.NotificationBroadcasterSupport$ListenerInfo> listenerList;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljavax/management/NotificationBroadcasterSupport$ListenerInfo;>;
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.management.MBeanNotificationInfo[] notifInfo;
descriptor: [Ljavax/management/MBeanNotificationInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.concurrent.Executor defaultExecutor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final javax.management.MBeanNotificationInfo[] NO_NOTIFICATION_INFO;
descriptor: [Ljavax/management/MBeanNotificationInfo;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, 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
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new javax.management.NotificationBroadcasterSupport$1
dup
invokespecial javax.management.NotificationBroadcasterSupport$1.<init>:()V
putstatic javax.management.NotificationBroadcasterSupport.defaultExecutor:Ljava/util/concurrent/Executor;
1: iconst_0
anewarray javax.management.MBeanNotificationInfo
2: putstatic javax.management.NotificationBroadcasterSupport.NO_NOTIFICATION_INFO:[Ljavax/management/MBeanNotificationInfo;
3: new com.sun.jmx.remote.util.ClassLogger
dup
ldc "javax.management"
ldc "NotificationBroadcasterSupport"
invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
4: putstatic javax.management.NotificationBroadcasterSupport.logger:Lcom/sun/jmx/remote/util/ClassLogger;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
aconst_null
invokespecial javax.management.NotificationBroadcasterSupport.<init>:(Ljava/util/concurrent/Executor;[Ljavax/management/MBeanNotificationInfo;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/NotificationBroadcasterSupport;
public void <init>(java.util.concurrent.Executor);
descriptor: (Ljava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial javax.management.NotificationBroadcasterSupport.<init>:(Ljava/util/concurrent/Executor;[Ljavax/management/MBeanNotificationInfo;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/NotificationBroadcasterSupport;
0 2 1 executor Ljava/util/concurrent/Executor;
MethodParameters:
Name Flags
executor
public void <init>(javax.management.MBeanNotificationInfo[]);
descriptor: ([Ljavax/management/MBeanNotificationInfo;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aload 1
invokespecial javax.management.NotificationBroadcasterSupport.<init>:(Ljava/util/concurrent/Executor;[Ljavax/management/MBeanNotificationInfo;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/NotificationBroadcasterSupport;
0 2 1 info [Ljavax/management/MBeanNotificationInfo;
MethodParameters:
Name Flags
info
public void <init>(java.util.concurrent.Executor, javax.management.MBeanNotificationInfo[]);
descriptor: (Ljava/util/concurrent/Executor;[Ljavax/management/MBeanNotificationInfo;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield javax.management.NotificationBroadcasterSupport.listenerList:Ljava/util/List;
3: aload 0
aload 1
ifnull 4
aload 1
goto 5
StackMap locals: javax.management.NotificationBroadcasterSupport java.util.concurrent.Executor javax.management.MBeanNotificationInfo[]
StackMap stack: javax.management.NotificationBroadcasterSupport
4: getstatic javax.management.NotificationBroadcasterSupport.defaultExecutor:Ljava/util/concurrent/Executor;
StackMap locals: javax.management.NotificationBroadcasterSupport java.util.concurrent.Executor javax.management.MBeanNotificationInfo[]
StackMap stack: javax.management.NotificationBroadcasterSupport java.util.concurrent.Executor
5: putfield javax.management.NotificationBroadcasterSupport.executor:Ljava/util/concurrent/Executor;
6: aload 0
aload 2
ifnonnull 7
getstatic javax.management.NotificationBroadcasterSupport.NO_NOTIFICATION_INFO:[Ljavax/management/MBeanNotificationInfo;
goto 8
StackMap locals:
StackMap stack: javax.management.NotificationBroadcasterSupport
7: aload 2
invokevirtual javax.management.MBeanNotificationInfo[].clone:()Ljava/lang/Object;
checkcast javax.management.MBeanNotificationInfo[]
StackMap locals: javax.management.NotificationBroadcasterSupport java.util.concurrent.Executor javax.management.MBeanNotificationInfo[]
StackMap stack: javax.management.NotificationBroadcasterSupport javax.management.MBeanNotificationInfo[]
8: putfield javax.management.NotificationBroadcasterSupport.notifInfo:[Ljavax/management/MBeanNotificationInfo;
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljavax/management/NotificationBroadcasterSupport;
0 10 1 executor Ljava/util/concurrent/Executor;
0 10 2 info [Ljavax/management/MBeanNotificationInfo;
MethodParameters:
Name Flags
executor
info
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=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Listener can't be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.NotificationBroadcasterSupport.listenerList:Ljava/util/List;
new javax.management.NotificationBroadcasterSupport$ListenerInfo
dup
aload 1
aload 2
aload 3
invokespecial javax.management.NotificationBroadcasterSupport$ListenerInfo.<init>:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljavax/management/NotificationBroadcasterSupport;
0 4 1 listener Ljavax/management/NotificationListener;
0 4 2 filter Ljavax/management/NotificationFilter;
0 4 3 handback Ljava/lang/Object;
MethodParameters:
Name Flags
listener
filter
handback
public void removeNotificationListener(javax.management.NotificationListener);
descriptor: (Ljavax/management/NotificationListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new javax.management.NotificationBroadcasterSupport$WildcardListenerInfo
dup
aload 1
invokespecial javax.management.NotificationBroadcasterSupport$WildcardListenerInfo.<init>:(Ljavax/management/NotificationListener;)V
astore 2
start local 2 1: aload 0
getfield javax.management.NotificationBroadcasterSupport.listenerList:Ljava/util/List;
aload 2
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
2: istore 3
start local 3 3: iload 3
ifne 5
4: new javax.management.ListenerNotFoundException
dup
ldc "Listener not registered"
invokespecial javax.management.ListenerNotFoundException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: javax.management.NotificationBroadcasterSupport$ListenerInfo int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/management/NotificationBroadcasterSupport;
0 6 1 listener Ljavax/management/NotificationListener;
1 6 2 wildcard Ljavax/management/NotificationBroadcasterSupport$ListenerInfo;
3 6 3 removed Z
Exceptions:
throws javax.management.ListenerNotFoundException
MethodParameters:
Name Flags
listener
public void removeNotificationListener(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=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new javax.management.NotificationBroadcasterSupport$ListenerInfo
dup
aload 1
aload 2
aload 3
invokespecial javax.management.NotificationBroadcasterSupport$ListenerInfo.<init>:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
astore 4
start local 4 1: aload 0
getfield javax.management.NotificationBroadcasterSupport.listenerList:Ljava/util/List;
aload 4
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
istore 5
start local 5 2: iload 5
ifne 4
3: new javax.management.ListenerNotFoundException
dup
ldc "Listener not registered (with this filter and handback)"
invokespecial javax.management.ListenerNotFoundException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: javax.management.NotificationBroadcasterSupport$ListenerInfo int
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljavax/management/NotificationBroadcasterSupport;
0 5 1 listener Ljavax/management/NotificationListener;
0 5 2 filter Ljavax/management/NotificationFilter;
0 5 3 handback Ljava/lang/Object;
1 5 4 li Ljavax/management/NotificationBroadcasterSupport$ListenerInfo;
2 5 5 removed Z
Exceptions:
throws javax.management.ListenerNotFoundException
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 0: aload 0
getfield javax.management.NotificationBroadcasterSupport.notifInfo:[Ljavax/management/MBeanNotificationInfo;
arraylength
ifne 2
1: aload 0
getfield javax.management.NotificationBroadcasterSupport.notifInfo:[Ljavax/management/MBeanNotificationInfo;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.NotificationBroadcasterSupport.notifInfo:[Ljavax/management/MBeanNotificationInfo;
invokevirtual javax.management.MBeanNotificationInfo[].clone:()Ljava/lang/Object;
checkcast javax.management.MBeanNotificationInfo[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljavax/management/NotificationBroadcasterSupport;
public void sendNotification(javax.management.Notification);
descriptor: (Ljavax/management/Notification;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.NotificationBroadcasterSupport.listenerList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals: javax.management.NotificationBroadcasterSupport javax.management.Notification top top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.management.NotificationBroadcasterSupport$ListenerInfo
astore 3
start local 3 4: aload 3
getfield javax.management.NotificationBroadcasterSupport$ListenerInfo.filter:Ljavax/management/NotificationFilter;
ifnull 7
5: aload 3
getfield javax.management.NotificationBroadcasterSupport$ListenerInfo.filter:Ljavax/management/NotificationFilter;
aload 1
invokeinterface javax.management.NotificationFilter.isNotificationEnabled:(Ljavax/management/Notification;)Z
ifne 7
6: iconst_0
goto 8
StackMap locals: javax.management.NotificationBroadcasterSupport javax.management.Notification top javax.management.NotificationBroadcasterSupport$ListenerInfo java.util.Iterator
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: istore 2
start local 2 9: goto 14
end local 2 StackMap locals:
StackMap stack: java.lang.Exception
10: astore 5
start local 5 11: getstatic javax.management.NotificationBroadcasterSupport.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 16
12: getstatic javax.management.NotificationBroadcasterSupport.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "sendNotification"
aload 5
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
13: goto 16
end local 5 start local 2 14: StackMap locals: javax.management.NotificationBroadcasterSupport javax.management.Notification int javax.management.NotificationBroadcasterSupport$ListenerInfo java.util.Iterator
StackMap stack:
iload 2
ifeq 16
15: aload 0
getfield javax.management.NotificationBroadcasterSupport.executor:Ljava/util/concurrent/Executor;
new javax.management.NotificationBroadcasterSupport$SendNotifJob
dup
aload 0
aload 1
aload 3
invokespecial javax.management.NotificationBroadcasterSupport$SendNotifJob.<init>:(Ljavax/management/NotificationBroadcasterSupport;Ljavax/management/Notification;Ljavax/management/NotificationBroadcasterSupport$ListenerInfo;)V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
end local 3 end local 2 16: StackMap locals: javax.management.NotificationBroadcasterSupport javax.management.Notification top top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljavax/management/NotificationBroadcasterSupport;
0 18 1 notification Ljavax/management/Notification;
9 10 2 enabled Z
14 16 2 enabled Z
4 16 3 li Ljavax/management/NotificationBroadcasterSupport$ListenerInfo;
11 14 5 e Ljava/lang/Exception;
Exception table:
from to target type
4 9 10 Class java.lang.Exception
MethodParameters:
Name Flags
notification
protected void handleNotification(javax.management.NotificationListener, javax.management.Notification, java.lang.Object);
descriptor: (Ljavax/management/NotificationListener;Ljavax/management/Notification;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
aload 3
invokeinterface javax.management.NotificationListener.handleNotification:(Ljavax/management/Notification;Ljava/lang/Object;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/NotificationBroadcasterSupport;
0 2 1 listener Ljavax/management/NotificationListener;
0 2 2 notif Ljavax/management/Notification;
0 2 3 handback Ljava/lang/Object;
MethodParameters:
Name Flags
listener
notif
handback
}
SourceFile: "NotificationBroadcasterSupport.java"
NestMembers:
javax.management.NotificationBroadcasterSupport$1 javax.management.NotificationBroadcasterSupport$ListenerInfo javax.management.NotificationBroadcasterSupport$SendNotifJob javax.management.NotificationBroadcasterSupport$WildcardListenerInfo
InnerClasses:
javax.management.NotificationBroadcasterSupport$1
private ListenerInfo = javax.management.NotificationBroadcasterSupport$ListenerInfo of javax.management.NotificationBroadcasterSupport
private SendNotifJob = javax.management.NotificationBroadcasterSupport$SendNotifJob of javax.management.NotificationBroadcasterSupport
private WildcardListenerInfo = javax.management.NotificationBroadcasterSupport$WildcardListenerInfo of javax.management.NotificationBroadcasterSupport