public class org.springframework.remoting.rmi.JndiRmiClientInterceptor extends org.springframework.jndi.JndiObjectLocator implements org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.InitializingBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.remoting.rmi.JndiRmiClientInterceptor
super_class: org.springframework.jndi.JndiObjectLocator
{
private java.lang.Class<?> serviceInterface;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
private org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory;
descriptor: Lorg/springframework/remoting/support/RemoteInvocationFactory;
flags: (0x0002) ACC_PRIVATE
private boolean lookupStubOnStartup;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean cacheStub;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean refreshStubOnConnectFailure;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean exposeAccessContext;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Object cachedStub;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object stubMonitor;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.jndi.JndiObjectLocator.<init>:()V
1: aload 0
new org.springframework.remoting.support.DefaultRemoteInvocationFactory
dup
invokespecial org.springframework.remoting.support.DefaultRemoteInvocationFactory.<init>:()V
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.remoteInvocationFactory:Lorg/springframework/remoting/support/RemoteInvocationFactory;
2: aload 0
iconst_1
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
3: aload 0
iconst_1
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
4: aload 0
iconst_0
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
5: aload 0
iconst_0
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.exposeAccessContext:Z
6: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
public void setServiceInterface(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "'serviceInterface' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: aload 1
invokevirtual java.lang.Class.isInterface:()Z
ldc "'serviceInterface' must be an interface"
invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
2: aload 0
aload 1
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.serviceInterface:Ljava/lang/Class;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 4 1 serviceInterface Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
serviceInterface
public java.lang.Class<?> getServiceInterface();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.serviceInterface:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
Signature: ()Ljava/lang/Class<*>;
public void setRemoteInvocationFactory(org.springframework.remoting.support.RemoteInvocationFactory);
descriptor: (Lorg/springframework/remoting/support/RemoteInvocationFactory;)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.JndiRmiClientInterceptor.remoteInvocationFactory:Lorg/springframework/remoting/support/RemoteInvocationFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 2 1 remoteInvocationFactory Lorg/springframework/remoting/support/RemoteInvocationFactory;
MethodParameters:
Name Flags
remoteInvocationFactory
public org.springframework.remoting.support.RemoteInvocationFactory getRemoteInvocationFactory();
descriptor: ()Lorg/springframework/remoting/support/RemoteInvocationFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.remoteInvocationFactory:Lorg/springframework/remoting/support/RemoteInvocationFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
public void setLookupStubOnStartup(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.JndiRmiClientInterceptor.lookupStubOnStartup:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 2 1 lookupStubOnStartup Z
MethodParameters:
Name Flags
lookupStubOnStartup
public void setCacheStub(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.JndiRmiClientInterceptor.cacheStub:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 2 1 cacheStub Z
MethodParameters:
Name Flags
cacheStub
public void setRefreshStubOnConnectFailure(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.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 2 1 refreshStubOnConnectFailure Z
MethodParameters:
Name Flags
refreshStubOnConnectFailure
public void setExposeAccessContext(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.JndiRmiClientInterceptor.exposeAccessContext:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 2 1 exposeAccessContext Z
MethodParameters:
Name Flags
exposeAccessContext
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.springframework.jndi.JndiObjectLocator.afterPropertiesSet:()V
1: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.prepare:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
Exceptions:
throws javax.naming.NamingException
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
ifeq 16
1: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
astore 1
start local 1 2: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 14
3: aload 1
instanceof org.springframework.remoting.rmi.RmiInvocationHandler
ifeq 6
4: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "JNDI RMI object ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] is an RMI invoker"
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: goto 14
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getServiceInterface:()Ljava/lang/Class;
ifnull 14
7: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getServiceInterface:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
istore 2
start local 2 8: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Using service interface ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getServiceInterface:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "] for JNDI RMI object ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()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;
10: iload 2
ifne 11
ldc "not "
goto 12
StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor java.lang.Object int
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
11: ldc ""
StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor java.lang.Object int
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
12: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "directly implemented"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
end local 2 14: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
ifeq 16
15: aload 0
aload 1
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
end local 1 16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
2 16 1 remoteObj Ljava/lang/Object;
8 14 2 isImpl Z
Exceptions:
throws org.springframework.remoting.RemoteLookupFailureException
protected java.lang.Object lookupStub();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookup:()Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 1
start local 1 3: new org.springframework.remoting.RemoteLookupFailureException
dup
new java.lang.StringBuilder
dup
ldc "JNDI lookup for RMI service ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] failed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokespecial org.springframework.remoting.RemoteLookupFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
3 4 1 ex Ljavax/naming/NamingException;
Exception table:
from to target type
0 1 2 Class javax.naming.NamingException
Exceptions:
throws org.springframework.remoting.RemoteLookupFailureException
protected java.lang.Object getStub();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
ifeq 1
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
ifeq 4
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
ifne 4
1: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
ifnull 2
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
goto 3
StackMap locals:
StackMap stack:
2: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
dup
astore 1
monitorenter
5: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
ifnonnull 7
6: aload 0
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
aload 1
monitorexit
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
10: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
Exception table:
from to target type
5 8 9 any
9 10 9 any
Exceptions:
throws javax.naming.NamingException, org.springframework.remoting.RemoteLookupFailureException
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getStub:()Ljava/lang/Object;
astore 2
start local 2 1: goto 4
end local 2 2: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 3
start local 3 3: new org.springframework.remoting.RemoteLookupFailureException
dup
new java.lang.StringBuilder
dup
ldc "JNDI lookup for RMI service ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] failed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.springframework.remoting.RemoteLookupFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.exposeAccessContext:Z
ifeq 5
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
invokevirtual org.springframework.jndi.JndiTemplate.getContext:()Ljavax/naming/Context;
goto 6
StackMap locals:
StackMap stack:
5: aconst_null
StackMap locals:
StackMap stack: javax.naming.Context
6: astore 3
start local 3 7: aload 0
aload 1
aload 2
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
astore 6
8: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
aload 3
invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
9: aload 6
areturn
10: StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.Object javax.naming.Context
StackMap stack: org.springframework.remoting.RemoteConnectFailureException
astore 4
start local 4 11: aload 0
aload 1
aload 4
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.handleRemoteConnectFailure:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
astore 6
12: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
aload 3
invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
13: aload 6
areturn
end local 4 14: StackMap locals:
StackMap stack: java.rmi.RemoteException
astore 4
start local 4 15: aload 0
aload 4
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.isConnectFailure:(Ljava/rmi/RemoteException;)Z
ifeq 19
16: aload 0
aload 1
aload 4
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.handleRemoteConnectFailure:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
astore 6
17: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
aload 3
invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
18: aload 6
areturn
19: StackMap locals: java.rmi.RemoteException
StackMap stack:
aload 4
athrow
end local 4 20: StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.Object javax.naming.Context
StackMap stack: java.lang.Throwable
astore 5
21: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
aload 3
invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
22: aload 5
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 23 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
1 2 2 stub Ljava/lang/Object;
4 23 2 stub Ljava/lang/Object;
3 4 3 ex Ljavax/naming/NamingException;
7 23 3 ctx Ljavax/naming/Context;
11 14 4 ex Lorg/springframework/remoting/RemoteConnectFailureException;
15 20 4 ex Ljava/rmi/RemoteException;
Exception table:
from to target type
0 1 2 Class javax.naming.NamingException
7 8 10 Class org.springframework.remoting.RemoteConnectFailureException
7 8 14 Class java.rmi.RemoteException
7 8 20 any
10 12 20 any
14 17 20 any
19 20 20 any
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
invocation
protected boolean isConnectFailure(java.rmi.RemoteException);
descriptor: (Ljava/rmi/RemoteException;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.springframework.remoting.rmi.RmiClientInterceptorUtils.isConnectFailure:(Ljava/rmi/RemoteException;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 1 1 ex Ljava/rmi/RemoteException;
MethodParameters:
Name Flags
ex
private java.lang.Object handleRemoteConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
ifeq 7
1: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 4
2: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Could not connect to RMI service ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] - retrying"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
3: goto 6
4: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 6
5: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Could not connect to RMI service ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] - retrying"
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.info:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshAndRetry:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
areturn
7: StackMap locals:
StackMap stack:
aload 2
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 8 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
0 8 2 ex Ljava/lang/Exception;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
invocation
ex
protected java.lang.Object refreshAndRetry(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aconst_null
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
2: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
astore 2
start local 2 3: aload 0
getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
ifeq 5
4: aload 0
aload 2
putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
5: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
end local 2 StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor org.aopalliance.intercept.MethodInvocation top java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.Object
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 10 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
3 7 2 freshStub Ljava/lang/Object;
9 10 2 freshStub Ljava/lang/Object;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation, java.lang.Object);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.springframework.remoting.rmi.RmiInvocationHandler
ifeq 11
1: aload 0
aload 1
aload 2
checkcast org.springframework.remoting.rmi.RmiInvocationHandler
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;Lorg/springframework/remoting/rmi/RmiInvocationHandler;)Ljava/lang/Object;
2: areturn
3: StackMap locals:
StackMap stack: java.rmi.RemoteException
astore 3
start local 3 4: aload 0
aload 3
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.convertRmiAccessException:(Ljava/rmi/RemoteException;Ljava/lang/reflect/Method;)Ljava/lang/Exception;
athrow
end local 3 5: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 3
start local 3 6: aload 3
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
athrow
end local 3 7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 8: new org.springframework.remoting.RemoteInvocationFailureException
dup
new java.lang.StringBuilder
dup
ldc "Invocation of method ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9: ldc "] failed in RMI service ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
10: invokespecial org.springframework.remoting.RemoteInvocationFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 11: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic org.springframework.remoting.rmi.RmiClientInterceptorUtils.invokeRemoteMethod:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
12: areturn
13: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 3
start local 3 14: aload 3
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 4
start local 4 15: aload 4
instanceof java.rmi.RemoteException
ifeq 17
16: aload 0
aload 4
checkcast java.rmi.RemoteException
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.convertRmiAccessException:(Ljava/rmi/RemoteException;Ljava/lang/reflect/Method;)Ljava/lang/Exception;
athrow
17: StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 18 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
0 18 2 stub Ljava/lang/Object;
4 5 3 ex Ljava/rmi/RemoteException;
6 7 3 ex Ljava/lang/reflect/InvocationTargetException;
8 11 3 ex Ljava/lang/Throwable;
14 18 3 ex Ljava/lang/reflect/InvocationTargetException;
15 18 4 targetEx Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.rmi.RemoteException
1 2 5 Class java.lang.reflect.InvocationTargetException
1 2 7 Class java.lang.Throwable
11 12 13 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
stub
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation, org.springframework.remoting.rmi.RmiInvocationHandler);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;Lorg/springframework/remoting/rmi/RmiInvocationHandler;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokestatic org.springframework.aop.support.AopUtils.isToStringMethod:(Ljava/lang/reflect/Method;)Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "RMI invoker proxy for service URL ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 2
aload 0
aload 1
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.createRemoteInvocation:(Lorg/aopalliance/intercept/MethodInvocation;)Lorg/springframework/remoting/support/RemoteInvocation;
invokeinterface org.springframework.remoting.rmi.RmiInvocationHandler.invoke:(Lorg/springframework/remoting/support/RemoteInvocation;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 3 1 methodInvocation Lorg/aopalliance/intercept/MethodInvocation;
0 3 2 invocationHandler Lorg/springframework/remoting/rmi/RmiInvocationHandler;
Exceptions:
throws java.rmi.RemoteException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
methodInvocation
invocationHandler
protected org.springframework.remoting.support.RemoteInvocation createRemoteInvocation(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Lorg/springframework/remoting/support/RemoteInvocation;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getRemoteInvocationFactory:()Lorg/springframework/remoting/support/RemoteInvocationFactory;
aload 1
invokeinterface org.springframework.remoting.support.RemoteInvocationFactory.createRemoteInvocation:(Lorg/aopalliance/intercept/MethodInvocation;)Lorg/springframework/remoting/support/RemoteInvocation;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 1 1 methodInvocation Lorg/aopalliance/intercept/MethodInvocation;
MethodParameters:
Name Flags
methodInvocation
private java.lang.Exception convertRmiAccessException(java.rmi.RemoteException, java.lang.reflect.Method);
descriptor: (Ljava/rmi/RemoteException;Ljava/lang/reflect/Method;)Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
aload 0
aload 1
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.isConnectFailure:(Ljava/rmi/RemoteException;)Z
aload 0
invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiName:()Ljava/lang/String;
invokestatic org.springframework.remoting.rmi.RmiClientInterceptorUtils.convertRmiAccessException:(Ljava/lang/reflect/Method;Ljava/rmi/RemoteException;ZLjava/lang/String;)Ljava/lang/Exception;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/remoting/rmi/JndiRmiClientInterceptor;
0 1 1 ex Ljava/rmi/RemoteException;
0 1 2 method Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
ex
method
}
SourceFile: "JndiRmiClientInterceptor.java"