public abstract class com.sun.jmx.remote.internal.ClientNotifForwarder
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.jmx.remote.internal.ClientNotifForwarder
super_class: java.lang.Object
{
private final java.security.AccessControlContext acc;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static int threadId;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private final java.lang.ClassLoader defaultClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.Integer, com.sun.jmx.remote.internal.ClientListenerInfo> infoList;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/sun/jmx/remote/internal/ClientListenerInfo;>;
private long clientSequenceNumber;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final int maxNotifications;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long timeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Integer mbeanRemovedNotifID;
descriptor: Ljava/lang/Integer;
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread currentFetchThread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private static final int STARTING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int STARTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int STOPPING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int STOPPED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int TERMINATED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean beingReconnected;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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 com.sun.jmx.remote.util.ClassLogger
dup
ldc "javax.management.remote.misc"
1: ldc "ClientNotifForwarder"
2: invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
3: putstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
aload 1
invokespecial com.sun.jmx.remote.internal.ClientNotifForwarder.<init>:(Ljava/lang/ClassLoader;Ljava/util/Map;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 2 1 env Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
env
public void <init>(java.lang.ClassLoader, java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, 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.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
3: aload 0
ldc -1
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.clientSequenceNumber:J
4: aload 0
aconst_null
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.mbeanRemovedNotifID:Ljava/lang/Integer;
5: aload 0
iconst_3
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
6: aload 0
iconst_0
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
7: aload 0
aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.getMaxFetchNotifNumber:(Ljava/util/Map;)I
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.maxNotifications:I
8: aload 0
aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.getFetchTimeout:(Ljava/util/Map;)J
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.timeout:J
9: aload 2
ldc "jmx.remote.x.fetch.notifications.executor"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.concurrent.Executor
10: astore 3
start local 3 11: aload 3
ifnonnull 13
12: new com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor
dup
invokespecial com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor.<init>:()V
astore 3
goto 15
13: StackMap locals: com.sun.jmx.remote.internal.ClientNotifForwarder java.lang.ClassLoader java.util.Map java.util.concurrent.Executor
StackMap stack:
getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 15
14: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "ClientNotifForwarder"
new java.lang.StringBuilder
dup
ldc "executor is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
15: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.defaultClassLoader:Ljava/lang/ClassLoader;
16: aload 0
aload 3
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.executor:Ljava/util/concurrent/Executor;
17: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.acc:Ljava/security/AccessControlContext;
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 19 1 defaultClassLoader Ljava/lang/ClassLoader;
0 19 2 env Ljava/util/Map<Ljava/lang/String;*>;
11 19 3 ex Ljava/util/concurrent/Executor;
Signature: (Ljava/lang/ClassLoader;Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
defaultClassLoader
env
protected abstract javax.management.remote.NotificationResult fetchNotifs(long, int, long);
descriptor: (JIJ)Ljavax/management/remote/NotificationResult;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
clientSequenceNumber
maxNotifications
timeout
protected abstract java.lang.Integer addListenerForMBeanRemovedNotif();
descriptor: ()Ljava/lang/Integer;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException, javax.management.InstanceNotFoundException
protected abstract void removeListenerForMBeanRemovedNotif(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException, javax.management.InstanceNotFoundException, javax.management.ListenerNotFoundException
MethodParameters:
Name Flags
id
protected abstract void lostNotifs(java.lang.String, long);
descriptor: (Ljava/lang/String;J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
message
number
public synchronized void addNotificationListener(java.lang.Integer, javax.management.ObjectName, javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object, javax.security.auth.Subject);
descriptor: (Ljava/lang/Integer;Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;Ljavax/security/auth/Subject;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=10, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.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.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "addNotificationListener"
2: new java.lang.StringBuilder
dup
ldc "Add the listener "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " at "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
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
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
aload 1
5: new com.sun.jmx.remote.internal.ClientListenerInfo
dup
aload 1
6: aload 2
7: aload 3
8: aload 4
9: aload 5
10: aload 6
11: invokespecial com.sun.jmx.remote.internal.ClientListenerInfo.<init>:(Ljava/lang/Integer;Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;Ljavax/security/auth/Subject;)V
12: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 0
iconst_0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.init:(Z)V
14: return
end local 6 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 15 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 15 1 listenerID Ljava/lang/Integer;
0 15 2 name Ljavax/management/ObjectName;
0 15 3 listener Ljavax/management/NotificationListener;
0 15 4 filter Ljavax/management/NotificationFilter;
0 15 5 handback Ljava/lang/Object;
0 15 6 delegationSubject Ljavax/security/auth/Subject;
Exceptions:
throws java.io.IOException, javax.management.InstanceNotFoundException
MethodParameters:
Name Flags
listenerID
name
listener
filter
handback
delegationSubject
public synchronized java.lang.Integer[] removeNotificationListener(javax.management.ObjectName, javax.management.NotificationListener);
descriptor: (Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)[Ljava/lang/Integer;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.beforeRemove:()V
1: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 5
2: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "removeNotificationListener"
3: 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;
4: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 6: new java.util.ArrayList
dup
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
7: astore 4
start local 4 8: aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 5
start local 5 9: goto 15
10: StackMap locals: java.util.List java.util.List int
StackMap stack:
aload 4
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.sun.jmx.remote.internal.ClientListenerInfo
astore 6
start local 6 11: aload 6
aload 1
aload 2
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.sameAs:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;)Z
ifeq 14
12: aload 3
aload 6
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
aload 6
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 14: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
15: iload 5
ifge 10
end local 5 16: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 18
17: new javax.management.ListenerNotFoundException
dup
ldc "Listener not found"
invokespecial javax.management.ListenerNotFoundException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 3
iconst_0
anewarray java.lang.Integer
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Integer[]
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 19 1 name Ljavax/management/ObjectName;
0 19 2 listener Ljavax/management/NotificationListener;
6 19 3 ids Ljava/util/List<Ljava/lang/Integer;>;
8 19 4 values Ljava/util/List<Lcom/sun/jmx/remote/internal/ClientListenerInfo;>;
9 16 5 i I
11 14 6 li Lcom/sun/jmx/remote/internal/ClientListenerInfo;
Exceptions:
throws javax.management.ListenerNotFoundException, java.io.IOException
MethodParameters:
Name Flags
name
listener
public synchronized java.lang.Integer removeNotificationListener(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;)Ljava/lang/Integer;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.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.ClientNotifForwarder.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.ClientNotifForwarder.beforeRemove:()V
5: aconst_null
astore 5
start local 5 6: new java.util.ArrayList
dup
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
7: astore 6
start local 6 8: aload 6
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 7
start local 7 9: goto 16
10: StackMap locals: java.lang.Integer java.util.List int
StackMap stack:
aload 6
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.sun.jmx.remote.internal.ClientListenerInfo
astore 8
start local 8 11: aload 8
aload 1
aload 2
aload 3
aload 4
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.sameAs:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)Z
ifeq 15
12: aload 8
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
astore 5
13: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
14: goto 17
end local 8 15: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
16: iload 7
ifge 10
end local 7 17: StackMap locals:
StackMap stack:
aload 5
ifnonnull 19
18: new javax.management.ListenerNotFoundException
dup
ldc "Listener not found"
invokespecial javax.management.ListenerNotFoundException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 5
areturn
end local 6 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 20 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 20 1 name Ljavax/management/ObjectName;
0 20 2 listener Ljavax/management/NotificationListener;
0 20 3 filter Ljavax/management/NotificationFilter;
0 20 4 handback Ljava/lang/Object;
6 20 5 id Ljava/lang/Integer;
8 20 6 values Ljava/util/List<Lcom/sun/jmx/remote/internal/ClientListenerInfo;>;
9 17 7 i I
11 15 8 li Lcom/sun/jmx/remote/internal/ClientListenerInfo;
Exceptions:
throws javax.management.ListenerNotFoundException, java.io.IOException
MethodParameters:
Name Flags
name
listener
filter
handback
public synchronized java.lang.Integer[] removeNotificationListener(javax.management.ObjectName);
descriptor: (Ljavax/management/ObjectName;)[Ljava/lang/Integer;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.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.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "removeNotificationListener"
2: new java.lang.StringBuilder
dup
ldc "Remove all listeners registered 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:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 5: new java.util.ArrayList
dup
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
6: astore 3
start local 3 7: aload 3
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 4
start local 4 8: goto 14
9: StackMap locals: java.util.List java.util.List int
StackMap stack:
aload 3
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.sun.jmx.remote.internal.ClientListenerInfo
astore 5
start local 5 10: aload 5
aload 1
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.sameAs:(Ljavax/management/ObjectName;)Z
ifeq 13
11: aload 2
aload 5
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
aload 5
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 13: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
14: iload 4
ifge 9
end local 4 15: aload 2
iconst_0
anewarray java.lang.Integer
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Integer[]
areturn
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/ClientNotifForwarder;
0 16 1 name Ljavax/management/ObjectName;
5 16 2 ids Ljava/util/List<Ljava/lang/Integer;>;
7 16 3 values Ljava/util/List<Lcom/sun/jmx/remote/internal/ClientListenerInfo;>;
8 15 4 i I
10 13 5 li Lcom/sun/jmx/remote/internal/ClientListenerInfo;
MethodParameters:
Name Flags
name
public synchronized com.sun.jmx.remote.internal.ClientListenerInfo[] preReconnection();
descriptor: ()[Lcom/sun/jmx/remote/internal/ClientListenerInfo;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpeq 1
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
ifeq 2
1: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Illegal state."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
iconst_0
anewarray com.sun.jmx.remote.internal.ClientListenerInfo
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.sun.jmx.remote.internal.ClientListenerInfo[]
3: astore 1
start local 1 4: aload 0
iconst_1
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
5: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
4 7 1 tmp [Lcom/sun/jmx/remote/internal/ClientListenerInfo;
Exceptions:
throws java.io.IOException
public synchronized void postReconnection(com.sun.jmx.remote.internal.ClientListenerInfo[]);
descriptor: ([Lcom/sun/jmx/remote/internal/ClientListenerInfo;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpne 8
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
3: goto 8
StackMap locals:
StackMap stack: java.lang.InterruptedException
4: astore 2
start local 2 5: new java.io.IOException
dup
aload 2
invokevirtual java.lang.InterruptedException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 6: aload 3
aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
7: aload 3
athrow
end local 3 end local 2 8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_2
if_icmpeq 2
9: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
istore 2
start local 2 10: aload 1
arraylength
istore 3
start local 3 11: iconst_0
istore 4
start local 4 12: goto 21
13: StackMap locals: int int int
StackMap stack:
iload 2
ifeq 19
14: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "addNotificationListeners"
15: new java.lang.StringBuilder
dup
ldc "Add a listener at "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: aload 1
iload 4
aaload
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
aload 1
iload 4
aaload
invokevirtual com.sun.jmx.remote.internal.ClientListenerInfo.getListenerID:()Ljava/lang/Integer;
aload 1
iload 4
aaload
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
iload 3
if_icmplt 13
end local 4 22: aload 0
iconst_0
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
23: aload 0
invokevirtual java.lang.Object.notifyAll:()V
24: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.currentFetchThread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 26
25: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
ifeq 26
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_1
if_icmpne 38
26: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.addListenerForMBeanRemovedNotif:()Ljava/lang/Integer;
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.mbeanRemovedNotifID:Ljava/lang/Integer;
27: goto 44
StackMap locals:
StackMap stack: java.lang.Exception
28: astore 4
start local 4 29: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 44
30: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "init"
ldc "Failed to register a listener to the mbean server: the client will not do clean when an MBean is unregistered"
aload 4
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 31: goto 44
32: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
33: goto 38
StackMap locals:
StackMap stack: java.lang.InterruptedException
34: astore 4
start local 4 35: new java.io.IOException
dup
aload 4
invokevirtual java.lang.InterruptedException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 5
start local 5 36: aload 5
aload 4
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
37: aload 5
athrow
end local 5 end local 4 38: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_2
if_icmpeq 32
39: aload 1
arraylength
ifle 42
40: aload 0
iconst_1
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.init:(Z)V
41: goto 44
StackMap locals:
StackMap stack:
42: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ifle 44
43: aload 0
iconst_0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.init:(Z)V
44: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 45 1 listenerInfos [Lcom/sun/jmx/remote/internal/ClientListenerInfo;
5 8 2 ire Ljava/lang/InterruptedException;
6 8 3 ioe Ljava/io/IOException;
10 45 2 trace Z
11 45 3 len I
12 22 4 i I
29 31 4 e Ljava/lang/Exception;
35 38 4 ire Ljava/lang/InterruptedException;
36 38 5 ioe Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.lang.InterruptedException
26 27 28 Class java.lang.Exception
32 33 34 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
listenerInfos
public synchronized void terminate();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 4
3: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "terminate"
ldc "Terminating..."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_1
if_icmpne 6
5: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.infoList:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
6: StackMap locals:
StackMap stack:
aload 0
iconst_4
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.setState:(I)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
private synchronized void setState(int);
descriptor: (I)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
3: aload 0
invokevirtual java.lang.Object.notifyAll:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 5 1 newState I
MethodParameters:
Name Flags
newState
private synchronized void init(boolean);
descriptor: (Z)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
tableswitch { // 0 - 4
0: 2
1: 1
2: 4
3: 15
4: 3
default: 36
}
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "The ClientNotifForwarder has been terminated."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
ifeq 12
5: return
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
7: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: astore 2
start local 2 9: new java.io.IOException
dup
aload 2
invokevirtual java.lang.InterruptedException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 10: aload 3
aload 2
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
11: aload 3
athrow
end local 3 end local 2 12: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_2
if_icmpeq 6
13: aload 0
iload 1
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.init:(Z)V
14: return
15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
ifeq 17
16: return
17: StackMap locals:
StackMap stack:
getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.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.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "init"
ldc "Initializing..."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
iload 1
ifne 28
20: aload 0
ldc -1
iconst_0
lconst_0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.fetchNotifs:(JIJ)Ljavax/management/remote/NotificationResult;
astore 2
start local 2 21: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_3
if_icmpeq 23
22: return
23: StackMap locals: javax.management.remote.NotificationResult
StackMap stack:
aload 0
aload 2
invokevirtual javax.management.remote.NotificationResult.getNextSequenceNumber:()J
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.clientSequenceNumber:J
end local 2 24: goto 28
StackMap locals: com.sun.jmx.remote.internal.ClientNotifForwarder int
StackMap stack: java.lang.ClassNotFoundException
25: astore 2
start local 2 26: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "init"
new java.lang.StringBuilder
dup
ldc "Impossible exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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.warning:(Ljava/lang/String;Ljava/lang/String;)V
27: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "init"
aload 2
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 28: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.addListenerForMBeanRemovedNotif:()Ljava/lang/Integer;
putfield com.sun.jmx.remote.internal.ClientNotifForwarder.mbeanRemovedNotifID:Ljava/lang/Integer;
29: goto 33
StackMap locals:
StackMap stack: java.lang.Exception
30: astore 2
start local 2 31: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 33
32: getstatic com.sun.jmx.remote.internal.ClientNotifForwarder.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "init"
ldc "Failed to register a listener to the mbean server: the client will not do clean when an MBean is unregistered"
aload 2
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 33: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.sun.jmx.remote.internal.ClientNotifForwarder.setState:(I)V
34: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.executor:Ljava/util/concurrent/Executor;
new com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher
dup
aload 0
invokespecial com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher.<init>:(Lcom/sun/jmx/remote/internal/ClientNotifForwarder;)V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
35: return
36: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Unknown state."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
0 37 1 reconnected Z
9 12 2 ire Ljava/lang/InterruptedException;
10 12 3 ioe Ljava/io/IOException;
21 24 2 nr Ljavax/management/remote/NotificationResult;
26 28 2 e Ljava/lang/ClassNotFoundException;
31 33 2 e Ljava/lang/Exception;
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
20 22 25 Class java.lang.ClassNotFoundException
23 24 25 Class java.lang.ClassNotFoundException
28 29 30 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reconnected
private synchronized void beforeRemove();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: goto 9
1: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpne 3
2: new java.io.IOException
dup
ldc "Terminated."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
4: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: astore 1
start local 1 6: new java.io.IOException
dup
aload 1
invokevirtual java.lang.InterruptedException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: aload 2
aload 1
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
8: aload 2
athrow
end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.beingReconnected:Z
ifne 1
10: aload 0
getfield com.sun.jmx.remote.internal.ClientNotifForwarder.state:I
iconst_4
if_icmpne 12
11: new java.io.IOException
dup
ldc "Terminated."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/jmx/remote/internal/ClientNotifForwarder;
6 9 1 ire Ljava/lang/InterruptedException;
7 9 2 ioe Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
}
SourceFile: "ClientNotifForwarder.java"
NestMembers:
com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher$1
InnerClasses:
private LinearExecutor = com.sun.jmx.remote.internal.ClientNotifForwarder$LinearExecutor of com.sun.jmx.remote.internal.ClientNotifForwarder
private NotifFetcher = com.sun.jmx.remote.internal.ClientNotifForwarder$NotifFetcher of com.sun.jmx.remote.internal.ClientNotifForwarder