public class com.sun.jmx.remote.internal.ServerNotifForwarder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.jmx.remote.internal.ServerNotifForwarder
super_class: java.lang.Object
{
private final com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter bufferFilter;
descriptor: Lcom/sun/jmx/remote/internal/ServerNotifForwarder$NotifForwarderBufferFilter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.management.MBeanServer mbeanServer;
descriptor: Ljavax/management/MBeanServer;
flags: (0x0002) ACC_PRIVATE
private final java.lang.String connectionId;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long connectionTimeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static int listenerCounter;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final int[] listenerCounterLock;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private com.sun.jmx.remote.internal.NotificationBuffer notifBuffer;
descriptor: Lcom/sun/jmx/remote/internal/NotificationBuffer;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<javax.management.ObjectName, java.util.Set<com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter>> listenerMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljavax/management/ObjectName;Ljava/util/Set<Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;>;>;
private boolean terminated;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final int[] terminationLock;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final java.lang.String broadcasterClass;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private final boolean checkNotificationEmission;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.jmx.remote.security.NotificationAccessController notificationAccessController;
descriptor: Lcom/sun/jmx/remote/security/NotificationAccessController;
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
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_0
putstatic com.sun.jmx.remote.internal.ServerNotifForwarder.listenerCounter:I
1: iconst_0
newarray 10
putstatic com.sun.jmx.remote.internal.ServerNotifForwarder.listenerCounterLock:[I
2: ldc Ljavax/management/NotificationBroadcaster;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
3: putstatic com.sun.jmx.remote.internal.ServerNotifForwarder.broadcasterClass:Ljava/lang/String;
4: new com.sun.jmx.remote.util.ClassLogger
dup
ldc "javax.management.remote.misc"
ldc "ServerNotifForwarder"
invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
5: putstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
6: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(javax.management.MBeanServer, java.util.Map<java.lang.String, ?>, com.sun.jmx.remote.internal.NotificationBuffer, java.lang.String);
descriptor: (Ljavax/management/MBeanServer;Ljava/util/Map;Lcom/sun/jmx/remote/internal/NotificationBuffer;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter
dup
aload 0
invokespecial com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter.<init>:(Lcom/sun/jmx/remote/internal/ServerNotifForwarder;)V
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.bufferFilter:Lcom/sun/jmx/remote/internal/ServerNotifForwarder$NotifForwarderBufferFilter;
2: aload 0
3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
4: aload 0
iconst_0
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminated:Z
5: aload 0
iconst_0
newarray 10
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminationLock:[I
6: aload 0
aload 1
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.mbeanServer:Ljavax/management/MBeanServer;
7: aload 0
aload 3
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
8: aload 0
aload 4
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionId:Ljava/lang/String;
9: aload 0
aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.getServerConnectionTimeout:(Ljava/util/Map;)J
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionTimeout:J
10: aload 2
ldc "jmx.remote.x.check.notification.emission"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 11: aload 0
aload 5
invokestatic com.sun.jmx.remote.util.EnvHelp.computeBooleanFromString:(Ljava/lang/String;)Z
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.checkNotificationEmission:Z
12: aload 0
13: aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.getNotificationAccessController:(Ljava/util/Map;)Lcom/sun/jmx/remote/security/NotificationAccessController;
14: putfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
15: 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 16 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 16 1 mbeanServer Ljavax/management/MBeanServer;
0 16 2 env Ljava/util/Map<Ljava/lang/String;*>;
0 16 3 notifBuffer Lcom/sun/jmx/remote/internal/NotificationBuffer;
0 16 4 connectionId Ljava/lang/String;
11 16 5 stringBoolean Ljava/lang/String;
Signature: (Ljavax/management/MBeanServer;Ljava/util/Map<Ljava/lang/String;*>;Lcom/sun/jmx/remote/internal/NotificationBuffer;Ljava/lang/String;)V
MethodParameters:
Name Flags
mbeanServer
env
notifBuffer
connectionId
public java.lang.Integer addNotificationListener(javax.management.ObjectName, javax.management.NotificationFilter);
descriptor: (Ljavax/management/ObjectName;Ljavax/management/NotificationFilter;)Ljava/lang/Integer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 4
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "addNotificationListener"
2: new java.lang.StringBuilder
dup
ldc "Add a listener at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkState:()V
5: aload 0
aload 1
ldc "addNotificationListener"
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkMBeanPermission:(Ljavax/management/ObjectName;Ljava/lang/String;)V
6: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
ifnull 10
7: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
8: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionId:Ljava/lang/String;
aload 1
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.getSubject:()Ljavax/security/auth/Subject;
9: invokeinterface com.sun.jmx.remote.security.NotificationAccessController.addNotificationListener:(Ljava/lang/String;Ljavax/management/ObjectName;Ljavax/security/auth/Subject;)V
10: StackMap locals:
StackMap stack:
new com.sun.jmx.remote.internal.ServerNotifForwarder$1
dup
aload 0
aload 1
invokespecial com.sun.jmx.remote.internal.ServerNotifForwarder$1.<init>:(Lcom/sun/jmx/remote/internal/ServerNotifForwarder;Ljavax/management/ObjectName;)V
11: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
12: istore 3
start local 3 13: iload 3
ifne 21
14: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "The specified MBean ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] is not a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc "NotificationBroadcaster "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc "object."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 19: StackMap locals:
StackMap stack: java.security.PrivilegedActionException
astore 3
start local 3 20: aload 3
invokestatic com.sun.jmx.remote.internal.ServerNotifForwarder.extractException:(Ljava/lang/Exception;)Ljava/lang/Exception;
checkcast javax.management.InstanceNotFoundException
athrow
end local 3 21: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.getListenerID:()Ljava/lang/Integer;
astore 3
start local 3 22: aload 1
astore 4
start local 4 23: aload 1
invokevirtual javax.management.ObjectName.getDomain:()Ljava/lang/String;
ifnull 24
aload 1
invokevirtual javax.management.ObjectName.getDomain:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 32
24: StackMap locals: java.lang.Integer javax.management.ObjectName
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.mbeanServer:Ljavax/management/MBeanServer;
invokeinterface javax.management.MBeanServer.getDefaultDomain:()Ljava/lang/String;
25: aload 1
invokevirtual javax.management.ObjectName.getKeyPropertyList:()Ljava/util/Hashtable;
26: invokestatic javax.management.ObjectName.getInstance:(Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/management/ObjectName;
astore 4
27: goto 32
StackMap locals:
StackMap stack: javax.management.MalformedObjectNameException
28: astore 5
start local 5 29: new java.io.IOException
dup
aload 5
invokevirtual javax.management.MalformedObjectNameException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 30: aload 6
aload 5
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
31: aload 6
athrow
end local 6 end local 5 32: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
dup
astore 5
monitorenter
33: new com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter
dup
aload 3
aload 2
invokespecial com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter.<init>:(Ljava/lang/Integer;Ljavax/management/NotificationFilter;)V
astore 6
start local 6 34: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 7
start local 7 35: aload 7
ifnonnull 37
36: aload 6
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
astore 7
goto 40
37: StackMap locals: java.util.Map com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter java.util.Set
StackMap stack:
aload 7
invokeinterface java.util.Set.size:()I
iconst_1
if_icmpne 39
38: new java.util.HashSet
dup
aload 7
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 7
39: StackMap locals:
StackMap stack:
aload 7
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
40: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
aload 4
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 41: aload 5
monitorexit
42: goto 45
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.ObjectName javax.management.NotificationFilter java.lang.Integer javax.management.ObjectName java.util.Map
StackMap stack: java.lang.Throwable
43: aload 5
monitorexit
44: athrow
45: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 46 1 name Ljavax/management/ObjectName;
0 46 2 filter Ljavax/management/NotificationFilter;
13 19 3 instanceOf Z
20 21 3 e Ljava/security/PrivilegedActionException;
22 46 3 id Ljava/lang/Integer;
23 46 4 nn Ljavax/management/ObjectName;
29 32 5 mfoe Ljavax/management/MalformedObjectNameException;
30 32 6 ioe Ljava/io/IOException;
34 41 6 idaf Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;
35 41 7 set Ljava/util/Set<Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;>;
Exception table:
from to target type
10 19 19 Class java.security.PrivilegedActionException
24 27 28 Class javax.management.MalformedObjectNameException
33 42 43 any
43 44 43 any
Exceptions:
throws javax.management.InstanceNotFoundException, java.io.IOException
MethodParameters:
Name Flags
name final
filter final
public void removeNotificationListener(javax.management.ObjectName, java.lang.Integer[]);
descriptor: (Ljavax/management/ObjectName;[Ljava/lang/Integer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 4
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "removeNotificationListener"
2: new java.lang.StringBuilder
dup
ldc "Remove some listeners from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkState:()V
5: aload 0
aload 1
ldc "removeNotificationListener"
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkMBeanPermission:(Ljavax/management/ObjectName;Ljava/lang/String;)V
6: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
ifnull 10
7: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
8: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionId:Ljava/lang/String;
aload 1
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.getSubject:()Ljavax/security/auth/Subject;
9: invokeinterface com.sun.jmx.remote.security.NotificationAccessController.removeNotificationListener:(Ljava/lang/String;Ljavax/management/ObjectName;Ljavax/security/auth/Subject;)V
10: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 11: iconst_0
istore 4
start local 4 12: goto 19
13: StackMap locals: java.lang.Exception int
StackMap stack:
aload 0
aload 1
aload 2
iload 4
aaload
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.removeNotificationListener:(Ljavax/management/ObjectName;Ljava/lang/Integer;)V
14: goto 18
StackMap locals:
StackMap stack: java.lang.Exception
15: astore 5
start local 5 16: aload 3
ifnull 18
17: aload 5
astore 3
end local 5 18: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
aload 2
arraylength
if_icmplt 13
end local 4 20: aload 3
ifnull 22
21: aload 3
athrow
22: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 23 1 name Ljavax/management/ObjectName;
0 23 2 listenerIDs [Ljava/lang/Integer;
11 23 3 re Ljava/lang/Exception;
12 20 4 i I
16 18 5 e Ljava/lang/Exception;
Exception table:
from to target type
13 14 15 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
name
listenerIDs
public void removeNotificationListener(javax.management.ObjectName, java.lang.Integer);
descriptor: (Ljavax/management/ObjectName;Ljava/lang/Integer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 4
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "removeNotificationListener"
2: new java.lang.StringBuilder
dup
ldc "Remove the listener "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " from "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkState:()V
5: aload 1
ifnull 10
aload 1
invokevirtual javax.management.ObjectName.isPattern:()Z
ifne 10
6: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.mbeanServer:Ljavax/management/MBeanServer;
aload 1
invokeinterface javax.management.MBeanServer.isRegistered:(Ljavax/management/ObjectName;)Z
ifne 10
7: new javax.management.InstanceNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "The MBean "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: ldc " is not registered."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial javax.management.InstanceNotFoundException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
dup
astore 3
monitorenter
11: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 4
start local 4 12: new com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter
dup
aload 2
aconst_null
invokespecial com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter.<init>:(Ljava/lang/Integer;Ljavax/management/NotificationFilter;)V
astore 5
start local 5 13: aload 4
ifnull 14
aload 4
aload 5
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 15
14: StackMap locals: java.util.Map java.util.Set com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter
StackMap stack:
new javax.management.ListenerNotFoundException
dup
ldc "Listener not found"
invokespecial javax.management.ListenerNotFoundException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Set.size:()I
iconst_1
if_icmpne 17
16: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
goto 18
17: StackMap locals:
StackMap stack:
aload 4
aload 5
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 3
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 3
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 23 1 name Ljavax/management/ObjectName;
0 23 2 listenerID Ljava/lang/Integer;
12 18 4 set Ljava/util/Set<Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;>;
13 18 5 idaf Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;
Exception table:
from to target type
11 19 20 any
20 21 20 any
Exceptions:
throws javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException, java.io.IOException
MethodParameters:
Name Flags
name
listenerID
public javax.management.remote.NotificationResult fetchNotifs(long, long, int);
descriptor: (JJI)Ljavax/management/remote/NotificationResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 3 start local 5 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 6
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "fetchNotifs"
new java.lang.StringBuilder
dup
ldc "Fetching notifications, the startSequenceNumber is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
3: ldc ", the timeout is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
4: ldc ", the maxNotifications is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionTimeout:J
lload 3
invokestatic java.lang.Math.min:(JJ)J
lstore 7
start local 7 7: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.bufferFilter:Lcom/sun/jmx/remote/internal/ServerNotifForwarder$NotifForwarderBufferFilter;
8: lload 1
9: lload 7
iload 5
10: invokeinterface com.sun.jmx.remote.internal.NotificationBuffer.fetchNotifications:(Lcom/sun/jmx/remote/internal/NotificationBufferFilter;JJI)Ljavax/management/remote/NotificationResult;
astore 6
start local 6 11: aload 0
aload 6
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.snoopOnUnregister:(Ljavax/management/remote/NotificationResult;)V
12: goto 15
end local 6 StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder long long int top long
StackMap stack: java.lang.InterruptedException
13: pop
14: new javax.management.remote.NotificationResult
dup
lconst_0
lconst_0
iconst_0
anewarray javax.management.remote.TargetedNotification
invokespecial javax.management.remote.NotificationResult.<init>:(JJ[Ljavax/management/remote/TargetedNotification;)V
astore 6
start local 6 15: StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder long long int javax.management.remote.NotificationResult long
StackMap stack:
getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 17
16: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "fetchNotifs"
new java.lang.StringBuilder
dup
ldc "Forwarding the notifs: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
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.trace:(Ljava/lang/String;Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 6
areturn
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 18 1 startSequenceNumber J
0 18 3 timeout J
0 18 5 maxNotifications I
11 13 6 nr Ljavax/management/remote/NotificationResult;
15 18 6 nr Ljavax/management/remote/NotificationResult;
7 18 7 t J
Exception table:
from to target type
7 12 13 Class java.lang.InterruptedException
MethodParameters:
Name Flags
startSequenceNumber
timeout
maxNotifications
private void snoopOnUnregister(javax.management.remote.NotificationResult);
descriptor: (Ljavax/management/remote/NotificationResult;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=14, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
dup
astore 3
monitorenter
2: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
getstatic javax.management.MBeanServerDelegate.DELEGATE_NAME:Ljavax/management/ObjectName;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 4
start local 4 3: aload 4
ifnull 4
aload 4
invokeinterface java.util.Set.isEmpty:()Z
ifeq 6
4: StackMap locals: java.util.List java.util.Map java.util.Set
StackMap stack:
aload 3
monitorexit
5: return
6: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 4
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
end local 4 7: aload 3
monitorexit
8: goto 11
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List java.util.Map
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.management.remote.NotificationResult.getTargetedNotifications:()[Ljavax/management/remote/TargetedNotification;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 30
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List top int int javax.management.remote.TargetedNotification[]
StackMap stack:
12: aload 6
iload 4
aaload
astore 3
start local 3 13: aload 3
invokevirtual javax.management.remote.TargetedNotification.getListenerID:()Ljava/lang/Integer;
astore 7
start local 7 14: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 28
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List javax.management.remote.TargetedNotification int int javax.management.remote.TargetedNotification[] java.lang.Integer top java.util.Iterator
StackMap stack:
15: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter
astore 8
start local 8 16: aload 8
getfield com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter.id:Ljava/lang/Integer;
aload 7
if_acmpne 28
17: aload 3
invokevirtual javax.management.remote.TargetedNotification.getNotification:()Ljavax/management/Notification;
astore 10
start local 10 18: aload 10
instanceof javax.management.MBeanServerNotification
ifeq 28
19: aload 10
invokevirtual javax.management.Notification.getType:()Ljava/lang/String;
ldc "JMX.mbean.unregistered"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 28
20: aload 10
checkcast javax.management.MBeanServerNotification
astore 11
start local 11 21: aload 11
invokevirtual javax.management.MBeanServerNotification.getMBeanName:()Ljavax/management/ObjectName;
astore 12
start local 12 22: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
dup
astore 13
monitorenter
23: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
aload 12
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
24: aload 13
monitorexit
25: goto 28
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List javax.management.remote.TargetedNotification int int javax.management.remote.TargetedNotification[] java.lang.Integer com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter java.util.Iterator javax.management.Notification javax.management.MBeanServerNotification javax.management.ObjectName java.util.Map
StackMap stack: java.lang.Throwable
26: aload 13
monitorexit
27: athrow
end local 12 end local 11 end local 10 end local 8 28: StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List javax.management.remote.TargetedNotification int int javax.management.remote.TargetedNotification[] java.lang.Integer top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
end local 7 end local 3 29: iinc 4 1
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder javax.management.remote.NotificationResult java.util.List top int int javax.management.remote.TargetedNotification[]
StackMap stack:
30: iload 4
iload 5
if_icmplt 12
31: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 32 1 nr Ljavax/management/remote/NotificationResult;
1 32 2 copy Ljava/util/List<Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;>;
3 7 4 delegateSet Ljava/util/Set<Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;>;
13 29 3 tn Ljavax/management/remote/TargetedNotification;
14 29 7 id Ljava/lang/Integer;
16 28 8 idaf Lcom/sun/jmx/remote/internal/ServerNotifForwarder$IdAndFilter;
18 28 10 n Ljavax/management/Notification;
21 28 11 mbsn Ljavax/management/MBeanServerNotification;
22 28 12 gone Ljavax/management/ObjectName;
Exception table:
from to target type
2 5 9 any
6 8 9 any
9 10 9 any
23 25 26 any
26 27 26 any
MethodParameters:
Name Flags
nr
public void terminate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 2
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "terminate"
ldc "Be called."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminationLock:[I
dup
astore 1
monitorenter
3: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminated:Z
ifeq 6
4: aload 1
monitorexit
5: return
6: StackMap locals: int[]
StackMap stack:
aload 0
iconst_1
putfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminated:Z
7: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
dup
astore 2
monitorenter
8: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.listenerMap:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
9: aload 2
monitorexit
10: goto 13
StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder int[] java.util.Map
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 1
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 1
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 19
18: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "terminate"
ldc "Terminated."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
Exception table:
from to target type
8 10 11 any
11 12 11 any
3 5 15 any
6 14 15 any
15 16 15 any
private javax.security.auth.Subject getSubject();
descriptor: ()Ljavax/security/auth/Subject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
invokestatic javax.security.auth.Subject.getSubject:(Ljava/security/AccessControlContext;)Ljavax/security/auth/Subject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
private void checkState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminationLock:[I
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.terminated:Z
ifeq 3
2: new java.io.IOException
dup
ldc "The connection has been terminated."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int[]
StackMap stack:
aload 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
Exception table:
from to target type
1 4 5 any
5 6 5 any
Exceptions:
throws java.io.IOException
private java.lang.Integer getListenerID();
descriptor: ()Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.listenerCounterLock:[I
dup
astore 1
monitorenter
1: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.listenerCounter:I
dup
iconst_1
iadd
putstatic com.sun.jmx.remote.internal.ServerNotifForwarder.listenerCounter:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
monitorexit
2: areturn
3: StackMap locals: com.sun.jmx.remote.internal.ServerNotifForwarder int[]
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public final void checkMBeanPermission(javax.management.ObjectName, java.lang.String);
descriptor: (Ljavax/management/ObjectName;Ljava/lang/String;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.mbeanServer:Ljavax/management/MBeanServer;
aload 1
aload 2
invokestatic com.sun.jmx.remote.internal.ServerNotifForwarder.checkMBeanPermission:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 2 1 name Ljavax/management/ObjectName;
0 2 2 actions Ljava/lang/String;
Exceptions:
throws javax.management.InstanceNotFoundException, java.lang.SecurityException
MethodParameters:
Name Flags
name final
actions final
static void checkMBeanPermission(javax.management.MBeanServer, javax.management.ObjectName, java.lang.String);
descriptor: (Ljavax/management/MBeanServer;Ljavax/management/ObjectName;Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 1: aload 3
ifnull 16
2: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
astore 4
start local 4 3: new com.sun.jmx.remote.internal.ServerNotifForwarder$2
dup
aload 0
aload 1
invokespecial com.sun.jmx.remote.internal.ServerNotifForwarder$2.<init>:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast javax.management.ObjectInstance
astore 5
start local 5 5: goto 8
end local 5 StackMap locals: javax.management.MBeanServer javax.management.ObjectName java.lang.String java.lang.SecurityManager java.security.AccessControlContext
StackMap stack: java.security.PrivilegedActionException
6: astore 6
start local 6 7: aload 6
invokestatic com.sun.jmx.remote.internal.ServerNotifForwarder.extractException:(Ljava/lang/Exception;)Ljava/lang/Exception;
checkcast javax.management.InstanceNotFoundException
athrow
end local 6 start local 5 8: StackMap locals: javax.management.ObjectInstance
StackMap stack:
aload 5
invokevirtual javax.management.ObjectInstance.getClassName:()Ljava/lang/String;
astore 6
start local 6 9: new javax.management.MBeanPermission
dup
10: aload 6
11: aconst_null
12: aload 1
13: aload 2
14: invokespecial javax.management.MBeanPermission.<init>:(Ljava/lang/String;Ljava/lang/String;Ljavax/management/ObjectName;Ljava/lang/String;)V
astore 7
start local 7 15: aload 3
aload 7
aload 4
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
end local 7 end local 6 end local 5 end local 4 16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 mbs Ljavax/management/MBeanServer;
0 17 1 name Ljavax/management/ObjectName;
0 17 2 actions Ljava/lang/String;
1 17 3 sm Ljava/lang/SecurityManager;
3 16 4 acc Ljava/security/AccessControlContext;
5 6 5 oi Ljavax/management/ObjectInstance;
8 16 5 oi Ljavax/management/ObjectInstance;
7 8 6 e Ljava/security/PrivilegedActionException;
9 16 6 classname Ljava/lang/String;
15 16 7 perm Ljavax/management/MBeanPermission;
Exception table:
from to target type
3 5 6 Class java.security.PrivilegedActionException
Exceptions:
throws javax.management.InstanceNotFoundException, java.lang.SecurityException
MethodParameters:
Name Flags
mbs final
name final
actions final
private boolean allowNotificationEmission(javax.management.ObjectName, javax.management.remote.TargetedNotification);
descriptor: (Ljavax/management/ObjectName;Ljavax/management/remote/TargetedNotification;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.checkNotificationEmission:Z
ifeq 2
1: aload 0
aload 1
ldc "addNotificationListener"
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.checkMBeanPermission:(Ljavax/management/ObjectName;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
ifnull 6
3: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.notificationAccessController:Lcom/sun/jmx/remote/security/NotificationAccessController;
4: aload 0
getfield com.sun.jmx.remote.internal.ServerNotifForwarder.connectionId:Ljava/lang/String;
aload 1
aload 2
invokevirtual javax.management.remote.TargetedNotification.getNotification:()Ljavax/management/Notification;
aload 0
invokevirtual com.sun.jmx.remote.internal.ServerNotifForwarder.getSubject:()Ljavax/security/auth/Subject;
5: invokeinterface com.sun.jmx.remote.security.NotificationAccessController.fetchNotification:(Ljava/lang/String;Ljavax/management/ObjectName;Ljavax/management/Notification;Ljavax/security/auth/Subject;)V
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack: java.lang.SecurityException
pop
8: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 13
9: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "fetchNotifs"
new java.lang.StringBuilder
dup
ldc "Notification "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 2
invokevirtual javax.management.remote.TargetedNotification.getNotification:()Ljavax/management/Notification;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not forwarded: the "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc "caller didn't have the required access rights"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
iconst_0
ireturn
14: StackMap locals:
StackMap stack: java.lang.Exception
astore 3
start local 3 15: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
ifeq 20
16: getstatic com.sun.jmx.remote.internal.ServerNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "fetchNotifs"
new java.lang.StringBuilder
dup
ldc "Notification "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 2
invokevirtual javax.management.remote.TargetedNotification.getNotification:()Ljavax/management/Notification;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not forwarded: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: ldc "got an unexpected exception: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
20: StackMap locals: java.lang.Exception
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/jmx/remote/internal/ServerNotifForwarder;
0 21 1 name Ljavax/management/ObjectName;
0 21 2 tn Ljavax/management/remote/TargetedNotification;
15 21 3 e Ljava/lang/Exception;
Exception table:
from to target type
0 6 7 Class java.lang.SecurityException
0 6 14 Class java.lang.Exception
MethodParameters:
Name Flags
name
tn
private static java.lang.Exception (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 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
checkcast java.security.PrivilegedActionException
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
astore 0
2: StackMap locals:
StackMap stack:
aload 0
instanceof java.security.PrivilegedActionException
ifne 1
3: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 e Ljava/lang/Exception;
MethodParameters:
Name Flags
e
}
SourceFile: "ServerNotifForwarder.java"
NestMembers:
com.sun.jmx.remote.internal.ServerNotifForwarder$1 com.sun.jmx.remote.internal.ServerNotifForwarder$2 com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter
InnerClasses:
com.sun.jmx.remote.internal.ServerNotifForwarder$1
com.sun.jmx.remote.internal.ServerNotifForwarder$2
private IdAndFilter = com.sun.jmx.remote.internal.ServerNotifForwarder$IdAndFilter of com.sun.jmx.remote.internal.ServerNotifForwarder
final NotifForwarderBufferFilter = com.sun.jmx.remote.internal.ServerNotifForwarder$NotifForwarderBufferFilter of com.sun.jmx.remote.internal.ServerNotifForwarder