public abstract class javax.management.remote.rmi.RMIServerImpl implements java.io.Closeable, javax.management.remote.rmi.RMIServer
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: javax.management.remote.rmi.RMIServerImpl
super_class: java.lang.Object
{
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
private final java.util.List<java.lang.ref.WeakReference<javax.management.remote.rmi.RMIConnection>> clientList;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/ref/WeakReference<Ljavax/management/remote/rmi/RMIConnection;>;>;
private java.lang.ClassLoader cl;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
private javax.management.MBeanServer mbeanServer;
descriptor: Ljavax/management/MBeanServer;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map env;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.management.remote.rmi.RMIConnectorServer connServer;
descriptor: Ljavax/management/remote/rmi/RMIConnectorServer;
flags: (0x0002) ACC_PRIVATE
private static int connectionIdNumber;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private com.sun.jmx.remote.internal.NotificationBuffer notifBuffer;
descriptor: Lcom/sun/jmx/remote/internal/NotificationBuffer;
flags: (0x0002) ACC_PRIVATE
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.rmi"
ldc "RMIServerImpl"
invokespecial com.sun.jmx.remote.util.ClassLogger.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: putstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
2: 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
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
3: aload 0
aload 1
ifnonnull 4
getstatic java.util.Collections.EMPTY_MAP:Ljava/util/Map;
goto 5
StackMap locals: javax.management.remote.rmi.RMIServerImpl java.util.Map
StackMap stack: javax.management.remote.rmi.RMIServerImpl
4: aload 1
StackMap locals: javax.management.remote.rmi.RMIServerImpl java.util.Map
StackMap stack: javax.management.remote.rmi.RMIServerImpl java.util.Map
5: putfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 7 1 env Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
env
void setRMIConnectorServer(javax.management.remote.rmi.RMIConnectorServer);
descriptor: (Ljavax/management/remote/rmi/RMIConnectorServer;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield javax.management.remote.rmi.RMIServerImpl.connServer:Ljavax/management/remote/rmi/RMIConnectorServer;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 2 1 connServer Ljavax/management/remote/rmi/RMIConnectorServer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connServer
protected abstract void export();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
public abstract java.rmi.Remote toStub();
descriptor: ()Ljava/rmi/Remote;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
public synchronized void setDefaultClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield javax.management.remote.rmi.RMIServerImpl.cl:Ljava/lang/ClassLoader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 2 1 cl Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
cl
public synchronized java.lang.ClassLoader getDefaultClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.cl:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/management/remote/rmi/RMIServerImpl;
public synchronized void setMBeanServer(javax.management.MBeanServer);
descriptor: (Ljavax/management/MBeanServer;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield javax.management.remote.rmi.RMIServerImpl.mbeanServer:Ljavax/management/MBeanServer;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 2 1 mbs Ljavax/management/MBeanServer;
MethodParameters:
Name Flags
mbs
public synchronized javax.management.MBeanServer getMBeanServer();
descriptor: ()Ljavax/management/MBeanServer;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.mbeanServer:Ljavax/management/MBeanServer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/management/remote/rmi/RMIServerImpl;
public java.lang.String getVersion();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "1.0 java_runtime_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: ldc "java.runtime.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: areturn
4: StackMap locals:
StackMap stack: java.lang.SecurityException
pop
5: ldc "1.0 "
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/management/remote/rmi/RMIServerImpl;
Exception table:
from to target type
0 3 4 Class java.lang.SecurityException
public javax.management.remote.rmi.RMIConnection newClient(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljavax/management/remote/rmi/RMIConnection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual javax.management.remote.rmi.RMIServerImpl.doNewClient:(Ljava/lang/Object;)Ljavax/management/remote/rmi/RMIConnection;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 1 1 credentials Ljava/lang/Object;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
credentials
javax.management.remote.rmi.RMIConnection doNewClient(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljavax/management/remote/rmi/RMIConnection;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
istore 2
start local 2 1: iload 2
ifeq 2
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
ldc "making new client"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
2: StackMap locals: int
StackMap stack:
aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.getMBeanServer:()Ljavax/management/MBeanServer;
ifnonnull 4
3: new java.lang.IllegalStateException
dup
ldc "Not attached to an MBean server"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 5: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
ldc "jmx.remote.authenticator"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.management.remote.JMXAuthenticator
6: astore 4
start local 4 7: aload 4
ifnonnull 11
8: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
ldc "jmx.remote.x.password.file"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 10
9: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
ldc "jmx.remote.x.login.config"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 11
10: StackMap locals: javax.security.auth.Subject javax.management.remote.JMXAuthenticator
StackMap stack:
new com.sun.jmx.remote.security.JMXPluggableAuthenticator
dup
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
invokespecial com.sun.jmx.remote.security.JMXPluggableAuthenticator.<init>:(Ljava/util/Map;)V
astore 4
11: StackMap locals:
StackMap stack:
aload 4
ifnull 20
12: iload 2
ifeq 15
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
new java.lang.StringBuilder
dup
ldc "got authenticator: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
aload 4
aload 1
invokeinterface javax.management.remote.JMXAuthenticator.authenticate:(Ljava/lang/Object;)Ljavax/security/auth/Subject;
astore 3
16: goto 20
StackMap locals:
StackMap stack: java.lang.SecurityException
17: astore 5
start local 5 18: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
new java.lang.StringBuilder
dup
ldc "Authentication failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
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
19: aload 5
athrow
end local 5 20: StackMap locals:
StackMap stack:
iload 2
ifeq 24
21: aload 3
ifnull 23
22: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
ldc "subject is not null"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
goto 24
23: StackMap locals:
StackMap stack:
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
ldc "no subject"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.getProtocol:()Ljava/lang/String;
aload 3
invokestatic javax.management.remote.rmi.RMIServerImpl.makeConnectionId:(Ljava/lang/String;Ljavax/security/auth/Subject;)Ljava/lang/String;
astore 5
start local 5 25: iload 2
ifeq 27
26: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
new java.lang.StringBuilder
dup
ldc "making new connection: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
27: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 5
aload 3
invokevirtual javax.management.remote.rmi.RMIServerImpl.makeClient:(Ljava/lang/String;Ljavax/security/auth/Subject;)Ljavax/management/remote/rmi/RMIConnection;
astore 6
start local 6 28: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.connServer:Ljavax/management/remote/rmi/RMIConnectorServer;
aload 5
ldc "Connection opened"
aconst_null
invokevirtual javax.management.remote.rmi.RMIConnectorServer.connectionOpened:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
29: aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.dropDeadReferences:()V
30: new java.lang.ref.WeakReference
dup
aload 6
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
astore 7
start local 7 31: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
dup
astore 8
monitorenter
32: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
33: aload 8
monitorexit
34: goto 37
StackMap locals: javax.management.remote.rmi.RMIServerImpl java.lang.Object int javax.security.auth.Subject javax.management.remote.JMXAuthenticator java.lang.String javax.management.remote.rmi.RMIConnection java.lang.ref.WeakReference java.util.List
StackMap stack: java.lang.Throwable
35: aload 8
monitorexit
36: athrow
37: StackMap locals:
StackMap stack:
iload 2
ifeq 39
38: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newClient"
new java.lang.StringBuilder
dup
ldc "new connection done: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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
39: StackMap locals:
StackMap stack:
aload 6
areturn
end local 7 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 40 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 40 1 credentials Ljava/lang/Object;
1 40 2 tracing Z
5 40 3 subject Ljavax/security/auth/Subject;
7 40 4 authenticator Ljavax/management/remote/JMXAuthenticator;
18 20 5 e Ljava/lang/SecurityException;
25 40 5 connectionId Ljava/lang/String;
28 40 6 client Ljavax/management/remote/rmi/RMIConnection;
31 40 7 wr Ljava/lang/ref/WeakReference<Ljavax/management/remote/rmi/RMIConnection;>;
Exception table:
from to target type
15 16 17 Class java.lang.SecurityException
32 34 35 any
35 36 35 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
credentials
protected abstract javax.management.remote.rmi.RMIConnection makeClient(java.lang.String, javax.security.auth.Subject);
descriptor: (Ljava/lang/String;Ljavax/security/auth/Subject;)Ljavax/management/remote/rmi/RMIConnection;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connectionId
subject
protected abstract void closeClient(javax.management.remote.rmi.RMIConnection);
descriptor: (Ljavax/management/remote/rmi/RMIConnection;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
client
protected abstract java.lang.String getProtocol();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected void clientClosed(javax.management.remote.rmi.RMIConnection);
descriptor: (Ljavax/management/remote/rmi/RMIConnection;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
istore 2
start local 2 1: iload 2
ifeq 2
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "clientClosed"
new java.lang.StringBuilder
dup
ldc "client="
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;
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
2: StackMap locals: int
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "Null client"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
dup
astore 3
monitorenter
5: aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.dropDeadReferences:()V
6: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 7: goto 12
8: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 5
start local 5 9: aload 5
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
aload 1
if_acmpne 12
10: aload 4
invokeinterface java.util.Iterator.remove:()V
11: goto 13
end local 5 12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 4 13: StackMap locals:
StackMap stack:
aload 3
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 3
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
iload 2
ifeq 18
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "clientClosed"
ldc "closing client."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual javax.management.remote.rmi.RMIServerImpl.closeClient:(Ljavax/management/remote/rmi/RMIConnection;)V
19: iload 2
ifeq 20
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "clientClosed"
ldc "sending notif"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
20: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.connServer:Ljavax/management/remote/rmi/RMIConnectorServer;
aload 1
invokeinterface javax.management.remote.rmi.RMIConnection.getConnectionId:()Ljava/lang/String;
21: ldc "Client connection closed"
aconst_null
22: invokevirtual javax.management.remote.rmi.RMIConnectorServer.connectionClosed:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
23: iload 2
ifeq 24
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "clientClosed"
ldc "done"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljavax/management/remote/rmi/RMIServerImpl;
0 25 1 client Ljavax/management/remote/rmi/RMIConnection;
1 25 2 debug Z
7 13 4 it Ljava/util/Iterator;
9 12 5 wr Ljava/lang/ref/WeakReference;
Exception table:
from to target type
5 14 15 any
15 16 15 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
client
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=9, args_size=1
start local 0 0: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
istore 1
start local 1 1: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debugOn:()Z
istore 2
start local 2 2: iload 1
ifeq 3
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "closing"
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
3: StackMap locals: int int
StackMap stack:
aconst_null
astore 3
start local 3 4: iload 2
ifeq 5
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "closing Server"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
5: StackMap locals: java.io.IOException
StackMap stack:
aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.closeServer:()V
6: goto 11
StackMap locals:
StackMap stack: java.io.IOException
7: astore 4
start local 4 8: iload 1
ifeq 9
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
new java.lang.StringBuilder
dup
ldc "Failed to close server: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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
9: StackMap locals: java.io.IOException
StackMap stack:
iload 2
ifeq 10
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
aload 4
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
10: StackMap locals:
StackMap stack:
aload 4
astore 3
end local 4 11: StackMap locals:
StackMap stack:
iload 2
ifeq 12
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "closing Clients"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
dup
astore 4
monitorenter
13: iload 2
ifeq 14
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "droping dead references"
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
14: StackMap locals: java.util.List
StackMap stack:
aload 0
invokevirtual javax.management.remote.rmi.RMIServerImpl.dropDeadReferences:()V
15: iload 2
ifeq 16
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
new java.lang.StringBuilder
dup
ldc "client count: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifne 19
17: aload 4
monitorexit
18: goto 39
19: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 20: goto 34
21: StackMap locals: java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 6
start local 6 22: aload 6
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast javax.management.remote.rmi.RMIConnection
astore 7
start local 7 23: aload 5
invokeinterface java.util.Iterator.remove:()V
24: aload 7
ifnull 34
25: aload 7
invokeinterface javax.management.remote.rmi.RMIConnection.close:()V
26: goto 35
StackMap locals: javax.management.remote.rmi.RMIServerImpl int int java.io.IOException java.util.List java.util.Iterator java.lang.ref.WeakReference javax.management.remote.rmi.RMIConnection
StackMap stack: java.io.IOException
27: astore 8
start local 8 28: iload 1
ifeq 30
29: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
new java.lang.StringBuilder
dup
ldc "Failed to close client: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
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
30: StackMap locals: java.io.IOException
StackMap stack:
iload 2
ifeq 31
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
aload 8
invokevirtual com.sun.jmx.remote.util.ClassLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
31: StackMap locals:
StackMap stack:
aload 3
ifnonnull 35
32: aload 8
astore 3
end local 8 33: goto 35
end local 7 end local 6 34: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
end local 5 35: StackMap locals:
StackMap stack:
aload 4
monitorexit
36: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 4
monitorexit
38: athrow
39: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
ifnull 41
40: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
invokeinterface com.sun.jmx.remote.internal.NotificationBuffer.dispose:()V
41: StackMap locals:
StackMap stack:
aload 3
ifnull 44
42: iload 1
ifeq 43
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "close failed."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
aload 3
athrow
44: StackMap locals:
StackMap stack:
iload 1
ifeq 45
getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "close"
ldc "closed."
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Ljavax/management/remote/rmi/RMIServerImpl;
1 46 1 tracing Z
2 46 2 debug Z
4 46 3 ioException Ljava/io/IOException;
8 11 4 e Ljava/io/IOException;
20 35 5 it Ljava/util/Iterator;
22 34 6 wr Ljava/lang/ref/WeakReference;
23 34 7 client Ljavax/management/remote/rmi/RMIConnection;
28 33 8 e Ljava/io/IOException;
Exception table:
from to target type
4 6 7 Class java.io.IOException
25 26 27 Class java.io.IOException
13 18 37 any
19 36 37 any
37 38 37 any
Exceptions:
throws java.io.IOException
protected abstract void closeServer();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.io.IOException
private static synchronized java.lang.String makeConnectionId(java.lang.String, javax.security.auth.Subject);
descriptor: (Ljava/lang/String;Ljavax/security/auth/Subject;)Ljava/lang/String;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: getstatic javax.management.remote.rmi.RMIServerImpl.connectionIdNumber:I
iconst_1
iadd
putstatic javax.management.remote.rmi.RMIServerImpl.connectionIdNumber:I
1: ldc ""
astore 2
start local 2 2: invokestatic java.rmi.server.RemoteServer.getClientHost:()Ljava/lang/String;
astore 2
3: goto 6
StackMap locals: java.lang.String javax.security.auth.Subject java.lang.String
StackMap stack: java.rmi.server.ServerNotActiveException
4: astore 3
start local 3 5: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "makeConnectionId"
ldc "getClientHost"
aload 3
invokevirtual com.sun.jmx.remote.util.ClassLogger.trace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 7: aload 3
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 2
invokevirtual java.lang.String.length:()I
ifle 10
9: aload 3
ldc "//"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 3
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 1
ifnull 21
12: aload 1
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
astore 4
start local 4 13: ldc ""
astore 5
start local 5 14: aload 4
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
start local 6 15: goto 20
16: StackMap locals: java.util.Set java.lang.String java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Principal
astore 7
start local 7 17: aload 7
invokeinterface java.security.Principal.getName:()Ljava/lang/String;
bipush 32
bipush 95
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
bipush 59
bipush 58
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 8
start local 8 18: aload 3
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: ldc ";"
astore 5
end local 8 end local 7 20: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 6 end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 3
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic javax.management.remote.rmi.RMIServerImpl.connectionIdNumber:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
22: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
invokevirtual com.sun.jmx.remote.util.ClassLogger.traceOn:()Z
ifeq 24
23: getstatic javax.management.remote.rmi.RMIServerImpl.logger:Lcom/sun/jmx/remote/util/ClassLogger;
ldc "newConnectionId"
new java.lang.StringBuilder
dup
ldc "connectionId="
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
24: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 protocol Ljava/lang/String;
0 25 1 subject Ljavax/security/auth/Subject;
2 25 2 clientHost Ljava/lang/String;
5 6 3 e Ljava/rmi/server/ServerNotActiveException;
7 25 3 buf Ljava/lang/StringBuilder;
13 21 4 principals Ljava/util/Set;
14 21 5 sep Ljava/lang/String;
15 21 6 it Ljava/util/Iterator;
17 20 7 p Ljava/security/Principal;
18 20 8 name Ljava/lang/String;
Exception table:
from to target type
2 3 4 Class java.rmi.server.ServerNotActiveException
MethodParameters:
Name Flags
protocol
subject
private void dropDeadReferences();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
dup
astore 1
monitorenter
1: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.clientList:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 6
3: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 3
start local 3 4: aload 3
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
ifnonnull 6
5: aload 2
invokeinterface java.util.Iterator.remove:()V
end local 3 6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 7: aload 1
monitorexit
8: goto 11
StackMap locals: javax.management.remote.rmi.RMIServerImpl java.util.List
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljavax/management/remote/rmi/RMIServerImpl;
2 7 2 it Ljava/util/Iterator;
4 6 3 wr Ljava/lang/ref/WeakReference;
Exception table:
from to target type
1 8 9 any
9 10 9 any
synchronized com.sun.jmx.remote.internal.NotificationBuffer getNotifBuffer();
descriptor: ()Lcom/sun/jmx/remote/internal/NotificationBuffer;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
ifnonnull 6
1: aload 0
2: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.mbeanServer:Ljavax/management/MBeanServer;
3: aload 0
getfield javax.management.remote.rmi.RMIServerImpl.env:Ljava/util/Map;
4: invokestatic com.sun.jmx.remote.internal.ArrayNotificationBuffer.getNotificationBuffer:(Ljavax/management/MBeanServer;Ljava/util/Map;)Lcom/sun/jmx/remote/internal/NotificationBuffer;
5: putfield javax.management.remote.rmi.RMIServerImpl.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
6: StackMap locals:
StackMap stack:
aload 0
getfield javax.management.remote.rmi.RMIServerImpl.notifBuffer:Lcom/sun/jmx/remote/internal/NotificationBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljavax/management/remote/rmi/RMIServerImpl;
}
SourceFile: "RMIServerImpl.java"