public class org.springframework.remoting.rmi.RmiServiceExporter extends org.springframework.remoting.rmi.RmiBasedExporter implements org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.remoting.rmi.RmiServiceExporter
super_class: org.springframework.remoting.rmi.RmiBasedExporter
{
private java.lang.String serviceName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int servicePort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.rmi.server.RMIClientSocketFactory clientSocketFactory;
descriptor: Ljava/rmi/server/RMIClientSocketFactory;
flags: (0x0002) ACC_PRIVATE
private java.rmi.server.RMIServerSocketFactory serverSocketFactory;
descriptor: Ljava/rmi/server/RMIServerSocketFactory;
flags: (0x0002) ACC_PRIVATE
private java.rmi.registry.Registry registry;
descriptor: Ljava/rmi/registry/Registry;
flags: (0x0002) ACC_PRIVATE
private java.lang.String registryHost;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int registryPort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.rmi.server.RMIClientSocketFactory registryClientSocketFactory;
descriptor: Ljava/rmi/server/RMIClientSocketFactory;
flags: (0x0002) ACC_PRIVATE
private java.rmi.server.RMIServerSocketFactory registryServerSocketFactory;
descriptor: Ljava/rmi/server/RMIServerSocketFactory;
flags: (0x0002) ACC_PRIVATE
private boolean alwaysCreateRegistry;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean replaceExistingBinding;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.rmi.Remote exportedObject;
descriptor: Ljava/rmi/Remote;
flags: (0x0002) ACC_PRIVATE
private boolean createdRegistry;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.remoting.rmi.RmiBasedExporter.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.remoting.rmi.RmiServiceExporter.servicePort:I
2: aload 0
sipush 1099
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryPort:I
3: aload 0
iconst_0
putfield org.springframework.remoting.rmi.RmiServiceExporter.alwaysCreateRegistry:Z
4: aload 0
iconst_1
putfield org.springframework.remoting.rmi.RmiServiceExporter.replaceExistingBinding:Z
5: aload 0
iconst_0
putfield org.springframework.remoting.rmi.RmiServiceExporter.createdRegistry:Z
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
public void setServiceName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 serviceName Ljava/lang/String;
MethodParameters:
Name Flags
serviceName
public void setServicePort(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.servicePort:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 servicePort I
MethodParameters:
Name Flags
servicePort
public void setClientSocketFactory(java.rmi.server.RMIClientSocketFactory);
descriptor: (Ljava/rmi/server/RMIClientSocketFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 clientSocketFactory Ljava/rmi/server/RMIClientSocketFactory;
MethodParameters:
Name Flags
clientSocketFactory
public void setServerSocketFactory(java.rmi.server.RMIServerSocketFactory);
descriptor: (Ljava/rmi/server/RMIServerSocketFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.serverSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 serverSocketFactory Ljava/rmi/server/RMIServerSocketFactory;
MethodParameters:
Name Flags
serverSocketFactory
public void setRegistry(java.rmi.registry.Registry);
descriptor: (Ljava/rmi/registry/Registry;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registry Ljava/rmi/registry/Registry;
MethodParameters:
Name Flags
registry
public void setRegistryHost(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryHost:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registryHost Ljava/lang/String;
MethodParameters:
Name Flags
registryHost
public void setRegistryPort(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryPort:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registryPort I
MethodParameters:
Name Flags
registryPort
public void setRegistryClientSocketFactory(java.rmi.server.RMIClientSocketFactory);
descriptor: (Ljava/rmi/server/RMIClientSocketFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryClientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registryClientSocketFactory Ljava/rmi/server/RMIClientSocketFactory;
MethodParameters:
Name Flags
registryClientSocketFactory
public void setRegistryServerSocketFactory(java.rmi.server.RMIServerSocketFactory);
descriptor: (Ljava/rmi/server/RMIServerSocketFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryServerSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registryServerSocketFactory Ljava/rmi/server/RMIServerSocketFactory;
MethodParameters:
Name Flags
registryServerSocketFactory
public void setAlwaysCreateRegistry(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.alwaysCreateRegistry:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 alwaysCreateRegistry Z
MethodParameters:
Name Flags
alwaysCreateRegistry
public void setReplaceExistingBinding(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.remoting.rmi.RmiServiceExporter.replaceExistingBinding:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 replaceExistingBinding Z
MethodParameters:
Name Flags
replaceExistingBinding
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.prepare:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
Exceptions:
throws java.rmi.RemoteException
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.checkService:()V
1: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Property 'serviceName' is required"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
instanceof java.rmi.server.RMIServerSocketFactory
ifeq 5
4: aload 0
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
checkcast java.rmi.server.RMIServerSocketFactory
putfield org.springframework.remoting.rmi.RmiServiceExporter.serverSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
ifnull 6
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serverSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
ifnull 7
6: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
ifnonnull 10
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serverSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
ifnull 10
7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
8: ldc "Both RMIClientSocketFactory and RMIServerSocketFactory or none required"
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryClientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
instanceof java.rmi.server.RMIServerSocketFactory
ifeq 12
11: aload 0
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryClientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
checkcast java.rmi.server.RMIServerSocketFactory
putfield org.springframework.remoting.rmi.RmiServiceExporter.registryServerSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
12: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryClientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
ifnonnull 16
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryServerSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
ifnull 16
13: new java.lang.IllegalArgumentException
dup
14: ldc "RMIServerSocketFactory without RMIClientSocketFactory for registry not supported"
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.springframework.remoting.rmi.RmiServiceExporter.createdRegistry:Z
17: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
ifnonnull 22
18: aload 0
aload 0
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryHost:Ljava/lang/String;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryPort:I
19: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryClientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryServerSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
20: invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.getRegistry:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
putfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
21: aload 0
iconst_1
putfield org.springframework.remoting.rmi.RmiServiceExporter.createdRegistry:Z
22: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.getObjectToExport:()Ljava/rmi/Remote;
putfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
23: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 25
24: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Binding service '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' to RMI registry: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
25: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
ifnull 29
26: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.servicePort:I
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.clientSocketFactory:Ljava/rmi/server/RMIClientSocketFactory;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serverSocketFactory:Ljava/rmi/server/RMIServerSocketFactory;
27: invokestatic java.rmi.server.UnicastRemoteObject.exportObject:(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/Remote;
pop
28: goto 30
29: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.servicePort:I
invokestatic java.rmi.server.UnicastRemoteObject.exportObject:(Ljava/rmi/Remote;I)Ljava/rmi/Remote;
pop
30: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.replaceExistingBinding:Z
ifeq 33
31: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
invokeinterface java.rmi.registry.Registry.rebind:(Ljava/lang/String;Ljava/rmi/Remote;)V
32: goto 43
33: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
invokeinterface java.rmi.registry.Registry.bind:(Ljava/lang/String;Ljava/rmi/Remote;)V
34: goto 43
35: StackMap locals:
StackMap stack: java.rmi.AlreadyBoundException
astore 1
start local 1 36: aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.unexportObjectSilently:()V
37: new java.lang.IllegalStateException
dup
38: new java.lang.StringBuilder
dup
ldc "Already an RMI object bound for name '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "': "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.rmi.AlreadyBoundException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 1 40: StackMap locals:
StackMap stack: java.rmi.RemoteException
astore 1
start local 1 41: aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.unexportObjectSilently:()V
42: aload 1
athrow
end local 1 43: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
36 40 1 ex Ljava/rmi/AlreadyBoundException;
41 43 1 ex Ljava/rmi/RemoteException;
Exception table:
from to target type
30 34 35 Class java.rmi.AlreadyBoundException
30 34 40 Class java.rmi.RemoteException
Exceptions:
throws java.rmi.RemoteException
protected java.rmi.registry.Registry getRegistry(java.lang.String, int, java.rmi.server.RMIClientSocketFactory, java.rmi.server.RMIServerSocketFactory);
descriptor: (Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
flags: (0x0004) ACC_PROTECTED
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 1
ifnull 6
1: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 3
2: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Looking for RMI registry at port '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "' of host ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 3
invokestatic java.rmi.registry.LocateRegistry.getRegistry:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;)Ljava/rmi/registry/Registry;
astore 5
start local 5 4: aload 0
aload 5
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.testRegistry:(Ljava/rmi/registry/Registry;)V
5: aload 5
areturn
end local 5 6: StackMap locals:
StackMap stack:
aload 0
iload 2
aload 3
aload 4
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.getRegistry:(ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 7 1 registryHost Ljava/lang/String;
0 7 2 registryPort I
0 7 3 clientSocketFactory Ljava/rmi/server/RMIClientSocketFactory;
0 7 4 serverSocketFactory Ljava/rmi/server/RMIServerSocketFactory;
4 6 5 reg Ljava/rmi/registry/Registry;
Exceptions:
throws java.rmi.RemoteException
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
3:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
registryHost
registryPort
clientSocketFactory
serverSocketFactory
protected java.rmi.registry.Registry getRegistry(int, java.rmi.server.RMIClientSocketFactory, java.rmi.server.RMIServerSocketFactory);
descriptor: (ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnull 19
1: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.alwaysCreateRegistry:Z
ifeq 4
2: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "Creating new RMI registry"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
3: iload 1
aload 2
aload 3
invokestatic java.rmi.registry.LocateRegistry.createRegistry:(ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 6
5: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Looking for RMI registry at port '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "', using custom socket factory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
ldc Ljava/rmi/registry/LocateRegistry;
dup
astore 4
monitorenter
7: aconst_null
iload 1
aload 2
invokestatic java.rmi.registry.LocateRegistry.getRegistry:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;)Ljava/rmi/registry/Registry;
astore 5
start local 5 8: aload 0
aload 5
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.testRegistry:(Ljava/rmi/registry/Registry;)V
9: aload 5
10: aload 4
monitorexit
11: areturn
end local 5 12: StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter int java.rmi.server.RMIClientSocketFactory java.rmi.server.RMIServerSocketFactory java.lang.Class
StackMap stack: java.rmi.RemoteException
astore 5
start local 5 13: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "RMI registry access threw exception"
aload 5
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
14: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "Could not detect RMI registry - creating new one"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
15: iload 1
aload 2
aload 3
invokestatic java.rmi.registry.LocateRegistry.createRegistry:(ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)Ljava/rmi/registry/Registry;
aload 4
monitorexit
16: areturn
end local 5 17: StackMap locals:
StackMap stack: java.lang.Throwable
aload 4
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.getRegistry:(I)Ljava/rmi/registry/Registry;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 20 1 registryPort I
0 20 2 clientSocketFactory Ljava/rmi/server/RMIClientSocketFactory;
0 20 3 serverSocketFactory Ljava/rmi/server/RMIServerSocketFactory;
8 12 5 reg Ljava/rmi/registry/Registry;
13 17 5 ex Ljava/rmi/RemoteException;
Exception table:
from to target type
7 10 12 Class java.rmi.RemoteException
7 11 17 any
12 16 17 any
17 18 17 any
Exceptions:
throws java.rmi.RemoteException
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
registryPort
clientSocketFactory
serverSocketFactory
protected java.rmi.registry.Registry getRegistry(int);
descriptor: (I)Ljava/rmi/registry/Registry;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.alwaysCreateRegistry:Z
ifeq 3
1: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "Creating new RMI registry"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
2: iload 1
invokestatic java.rmi.registry.LocateRegistry.createRegistry:(I)Ljava/rmi/registry/Registry;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
4: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Looking for RMI registry at port '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
ldc Ljava/rmi/registry/LocateRegistry;
dup
astore 2
monitorenter
6: iload 1
invokestatic java.rmi.registry.LocateRegistry.getRegistry:(I)Ljava/rmi/registry/Registry;
astore 3
start local 3 7: aload 0
aload 3
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.testRegistry:(Ljava/rmi/registry/Registry;)V
8: aload 3
9: aload 2
monitorexit
10: areturn
end local 3 11: StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter int java.lang.Class
StackMap stack: java.rmi.RemoteException
astore 3
start local 3 12: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "RMI registry access threw exception"
aload 3
invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
13: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
ldc "Could not detect RMI registry - creating new one"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
14: iload 1
invokestatic java.rmi.registry.LocateRegistry.createRegistry:(I)Ljava/rmi/registry/Registry;
aload 2
monitorexit
15: areturn
end local 3 16: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
17: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 18 1 registryPort I
7 11 3 reg Ljava/rmi/registry/Registry;
12 16 3 ex Ljava/rmi/RemoteException;
Exception table:
from to target type
6 9 11 Class java.rmi.RemoteException
6 10 16 any
11 15 16 any
16 17 16 any
Exceptions:
throws java.rmi.RemoteException
MethodParameters:
Name Flags
registryPort
protected void testRegistry(java.rmi.registry.Registry);
descriptor: (Ljava/rmi/registry/Registry;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.rmi.registry.Registry.list:()[Ljava/lang/String;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
0 2 1 registry Ljava/rmi/registry/Registry;
Exceptions:
throws java.rmi.RemoteException
MethodParameters:
Name Flags
registry
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 6
1: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Unbinding RMI service '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "' from registry"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.createdRegistry:Z
ifeq 3
new java.lang.StringBuilder
dup
ldc " at port '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryPort:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 4
StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
3: ldc ""
StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registry:Ljava/rmi/registry/Registry;
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokeinterface java.rmi.registry.Registry.unbind:(Ljava/lang/String;)V
7: goto 19
8: StackMap locals:
StackMap stack: java.rmi.NotBoundException
astore 1
start local 1 9: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 15
10: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "RMI service '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not bound to registry"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.createdRegistry:Z
ifeq 12
new java.lang.StringBuilder
dup
ldc " at port '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.registryPort:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "' anymore"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 13
StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter java.rmi.NotBoundException
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
12: ldc ""
StackMap locals: org.springframework.remoting.rmi.RmiServiceExporter java.rmi.NotBoundException
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
14: invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.unexportObjectSilently:()V
goto 20
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
17: aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.unexportObjectSilently:()V
18: aload 2
athrow
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.remoting.rmi.RmiServiceExporter.unexportObjectSilently:()V
20: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
9 15 1 ex Ljava/rmi/NotBoundException;
Exception table:
from to target type
6 7 8 Class java.rmi.NotBoundException
6 15 16 any
Exceptions:
throws java.rmi.RemoteException
private void unexportObjectSilently();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.exportedObject:Ljava/rmi/Remote;
iconst_1
invokestatic java.rmi.server.UnicastRemoteObject.unexportObject:(Ljava/rmi/Remote;Z)Z
pop
1: goto 5
2: StackMap locals:
StackMap stack: java.rmi.NoSuchObjectException
astore 1
start local 1 3: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 5
4: aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "RMI object for service '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.remoting.rmi.RmiServiceExporter.serviceName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not exported anymore"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/remoting/rmi/RmiServiceExporter;
3 5 1 ex Ljava/rmi/NoSuchObjectException;
Exception table:
from to target type
0 1 2 Class java.rmi.NoSuchObjectException
}
SourceFile: "RmiServiceExporter.java"