public abstract class com.sun.jmx.remote.internal.ClientCommunicatorAdmin
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.jmx.remote.internal.ClientCommunicatorAdmin
super_class: java.lang.Object
{
private static volatile long threadNo;
descriptor: J
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private final com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker checker;
descriptor: Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long period;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private static final int CONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int RE_CONNECTING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FAILED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int TERMINATED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int[] lock;
descriptor: [I
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: lconst_1
putstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.threadNo:J
1: new com.sun.jmx.remote.util.ClassLogger
dup
ldc "javax.management.remote.misc"
2: ldc "ClientCommunicatorAdmin"
3: invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
4: putstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.logger:Lcom/sun/jmx/remote/util/ClassLogger;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
2: aload 0
iconst_0
newarray 10
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
3: aload 0
lload 1
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.period:J
4: lload 1
lconst_0
lcmp
ifle 10
5: aload 0
new com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker
dup
aload 0
invokespecial com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.<init>:(Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;)V
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.checker:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
6: new java.lang.Thread
dup
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.checker:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
new java.lang.StringBuilder
dup
ldc "JMX client heartbeat "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.threadNo:J
lconst_1
ladd
dup2
putstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.threadNo:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
astore 3
start local 3 7: aload 3
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
8: aload 3
invokevirtual java.lang.Thread.start:()V
end local 3 9: goto 11
10: StackMap locals: com.sun.jmx.remote.internal.ClientCommunicatorAdmin long
StackMap stack:
aload 0
aconst_null
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.checker:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
0 12 1 period J
7 9 3 t Ljava/lang/Thread;
MethodParameters:
Name Flags
period
public void gotIOException(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.restart:(Ljava/io/IOException;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
0 2 1 ioe Ljava/io/IOException;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ioe
protected abstract void checkConnection();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
protected abstract void doStart();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
protected abstract void doStop();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public void terminate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_3
if_icmpne 4
2: aload 1
monitorexit
3: return
4: StackMap locals: int[]
StackMap stack:
aload 0
iconst_3
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
5: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
invokevirtual java.lang.Object.notifyAll:()V
6: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.checker:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
ifnull 8
7: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.checker:Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin$Checker;
invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.stop:()V
8: StackMap locals:
StackMap stack:
aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: 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/ClientCommunicatorAdmin;
Exception table:
from to target type
1 3 10 any
4 9 10 any
10 11 10 any
private void restart(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_3
if_icmpne 3
2: new java.io.IOException
dup
ldc "The client has been closed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int[]
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_2
if_icmpne 5
4: aload 1
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_1
if_icmpne 20
6: goto 13
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
invokevirtual java.lang.Object.wait:()V
8: goto 13
StackMap locals:
StackMap stack: java.lang.InterruptedException
9: astore 3
start local 3 10: new java.io.InterruptedIOException
dup
aload 3
invokevirtual java.lang.InterruptedException.toString:()Ljava/lang/String;
invokespecial java.io.InterruptedIOException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 11: aload 4
aload 3
invokestatic com.sun.jmx.remote.util.EnvHelp.initCause:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
12: aload 4
athrow
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_1
if_icmpeq 7
14: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_3
if_icmpne 16
15: new java.io.IOException
dup
ldc "The client has been closed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
ifeq 18
17: aload 1
athrow
18: StackMap locals:
StackMap stack:
aload 2
monitorexit
19: return
20: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
21: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
invokevirtual java.lang.Object.notifyAll:()V
22: aload 2
monitorexit
23: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
24: aload 2
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.doStart:()V
27: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
dup
astore 2
monitorenter
28: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_3
if_icmpne 30
29: new java.io.IOException
dup
ldc "The client has been closed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: int[]
StackMap stack:
aload 0
iconst_0
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
31: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
invokevirtual java.lang.Object.notifyAll:()V
32: aload 2
monitorexit
33: goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
34: aload 2
monitorexit
35: athrow
36: StackMap locals:
StackMap stack:
return
37: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 38: getstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "restart"
new java.lang.StringBuilder
dup
ldc "Failed to restart: "
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
39: getstatic com.sun.jmx.remote.internal.ClientCommunicatorAdmin.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "restart"
aload 2
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
40: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
dup
astore 3
monitorenter
41: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
iconst_3
if_icmpne 43
42: new java.io.IOException
dup
ldc "The client has been closed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals: java.lang.Exception int[]
StackMap stack:
aload 0
iconst_2
putfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.state:I
44: aload 0
getfield com.sun.jmx.remote.internal.ClientCommunicatorAdmin.lock:[I
invokevirtual java.lang.Object.notifyAll:()V
45: aload 3
monitorexit
46: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
47: aload 3
monitorexit
48: athrow
49: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.doStop:()V
50: goto 52
StackMap locals:
StackMap stack: java.lang.Exception
51: pop
52: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.jmx.remote.internal.ClientCommunicatorAdmin.terminate:()V
53: aload 1
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lcom/sun/jmx/remote/internal/ClientCommunicatorAdmin;
0 54 1 ioe Ljava/io/IOException;
10 13 3 ire Ljava/lang/InterruptedException;
11 13 4 iioe Ljava/io/InterruptedIOException;
38 54 2 e Ljava/lang/Exception;
Exception table:
from to target type
7 8 9 Class java.lang.InterruptedException
1 19 24 any
20 23 24 any
24 25 24 any
28 33 34 any
34 35 34 any
26 36 37 Class java.lang.Exception
41 46 47 any
47 48 47 any
49 50 51 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ioe
}
SourceFile: "ClientCommunicatorAdmin.java"
NestMembers:
com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker
InnerClasses:
private Checker = com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker of com.sun.jmx.remote.internal.ClientCommunicatorAdmin