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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 75
            aload 0 /* this */
            invokespecial org.springframework.jndi.JndiObjectLocator.<init>:()V
         1: .line 79
            aload 0 /* this */
            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: .line 81
            aload 0 /* this */
            iconst_1
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
         3: .line 83
            aload 0 /* this */
            iconst_1
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
         4: .line 85
            aload 0 /* this */
            iconst_0
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
         5: .line 87
            aload 0 /* this */
            iconst_0
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.exposeAccessContext:Z
         6: .line 91
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
         7: .line 75
            return
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // java.lang.Class serviceInterface
         0: .line 101
            aload 1 /* serviceInterface */
            ldc "'serviceInterface' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 102
            aload 1 /* serviceInterface */
            invokevirtual java.lang.Class.isInterface:()Z
            ldc "'serviceInterface' must be an interface"
            invokestatic org.springframework.util.Assert.isTrue:(ZLjava/lang/String;)V
         2: .line 103
            aload 0 /* this */
            aload 1 /* serviceInterface */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.serviceInterface:Ljava/lang/Class;
         3: .line 104
            return
        end local 1 // java.lang.Class serviceInterface
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 110
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.serviceInterface:Ljava/lang/Class;
            areturn
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory
         0: .line 120
            aload 0 /* this */
            aload 1 /* remoteInvocationFactory */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.remoteInvocationFactory:Lorg/springframework/remoting/support/RemoteInvocationFactory;
         1: .line 121
            return
        end local 1 // org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 127
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.remoteInvocationFactory:Lorg/springframework/remoting/support/RemoteInvocationFactory;
            areturn
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // boolean lookupStubOnStartup
         0: .line 137
            aload 0 /* this */
            iload 1 /* lookupStubOnStartup */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
         1: .line 138
            return
        end local 1 // boolean lookupStubOnStartup
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // boolean cacheStub
         0: .line 148
            aload 0 /* this */
            iload 1 /* cacheStub */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
         1: .line 149
            return
        end local 1 // boolean cacheStub
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // boolean refreshStubOnConnectFailure
         0: .line 163
            aload 0 /* this */
            iload 1 /* refreshStubOnConnectFailure */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
         1: .line 164
            return
        end local 1 // boolean refreshStubOnConnectFailure
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // boolean exposeAccessContext
         0: .line 175
            aload 0 /* this */
            iload 1 /* exposeAccessContext */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.exposeAccessContext:Z
         1: .line 176
            return
        end local 1 // boolean exposeAccessContext
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 181
            aload 0 /* this */
            invokespecial org.springframework.jndi.JndiObjectLocator.afterPropertiesSet:()V
         1: .line 182
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.prepare:()V
         2: .line 183
            return
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 193
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
            ifeq 16
         1: .line 194
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
            astore 1 /* remoteObj */
        start local 1 // java.lang.Object remoteObj
         2: .line 195
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 14
         3: .line 196
            aload 1 /* remoteObj */
            instanceof org.springframework.remoting.rmi.RmiInvocationHandler
            ifeq 6
         4: .line 197
            aload 0 /* this */
            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 /* this */
            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: .line 198
            goto 14
         6: .line 199
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getServiceInterface:()Ljava/lang/Class;
            ifnull 14
         7: .line 200
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getServiceInterface:()Ljava/lang/Class;
            aload 1 /* remoteObj */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            istore 2 /* isImpl */
        start local 2 // boolean isImpl
         8: .line 201
            aload 0 /* this */
            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 /* this */
            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: .line 202
            ldc "] for JNDI RMI object ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            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: .line 203
            iload 2 /* isImpl */
            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: .line 201
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 2 // boolean isImpl
        14: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
            ifeq 16
        15: .line 207
            aload 0 /* this */
            aload 1 /* remoteObj */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
        end local 1 // java.lang.Object remoteObj
        16: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 225
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookup:()Ljava/lang/Object;
         1: areturn
         2: .line 227
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 1 /* ex */
        start local 1 // javax.naming.NamingException ex
         3: .line 228
            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 /* this */
            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 /* ex */
            invokespecial org.springframework.remoting.RemoteLookupFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // javax.naming.NamingException ex
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
         0: .line 244
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
            ifeq 1
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStubOnStartup:Z
            ifeq 4
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
            ifne 4
         1: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
            ifnull 2
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
         4: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         5: .line 249
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
            ifnonnull 7
         6: .line 250
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
         7: .line 252
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
            aload 1
            monitorexit
         8: areturn
         9: .line 248
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation invocation
         0: .line 273
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getStub:()Ljava/lang/Object;
            astore 2 /* stub */
        start local 2 // java.lang.Object stub
         1: .line 274
            goto 4
        end local 2 // java.lang.Object stub
         2: .line 275
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* ex */
        start local 3 // javax.naming.NamingException ex
         3: .line 276
            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 /* this */
            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 /* ex */
            invokespecial org.springframework.remoting.RemoteLookupFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.naming.NamingException ex
        start local 2 // java.lang.Object stub
         4: .line 279
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.exposeAccessContext:Z
            ifeq 5
            aload 0 /* this */
            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 /* ctx */
        start local 3 // javax.naming.Context ctx
         7: .line 281
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* stub */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
            astore 6
         8: .line 295
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 3 /* ctx */
            invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
         9: .line 281
            aload 6
            areturn
        10: .line 283
      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 /* ex */
        start local 4 // org.springframework.remoting.RemoteConnectFailureException ex
        11: .line 284
            aload 0 /* this */
            aload 1 /* invocation */
            aload 4 /* ex */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.handleRemoteConnectFailure:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
            astore 6
        12: .line 295
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 3 /* ctx */
            invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
        13: .line 284
            aload 6
            areturn
        end local 4 // org.springframework.remoting.RemoteConnectFailureException ex
        14: .line 286
      StackMap locals:
      StackMap stack: java.rmi.RemoteException
            astore 4 /* ex */
        start local 4 // java.rmi.RemoteException ex
        15: .line 287
            aload 0 /* this */
            aload 4 /* ex */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.isConnectFailure:(Ljava/rmi/RemoteException;)Z
            ifeq 19
        16: .line 288
            aload 0 /* this */
            aload 1 /* invocation */
            aload 4 /* ex */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.handleRemoteConnectFailure:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
            astore 6
        17: .line 295
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 3 /* ctx */
            invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
        18: .line 288
            aload 6
            areturn
        19: .line 291
      StackMap locals: java.rmi.RemoteException
      StackMap stack:
            aload 4 /* ex */
            athrow
        end local 4 // java.rmi.RemoteException ex
        20: .line 294
      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: .line 295
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getJndiTemplate:()Lorg/springframework/jndi/JndiTemplate;
            aload 3 /* ctx */
            invokevirtual org.springframework.jndi.JndiTemplate.releaseContext:(Ljavax/naming/Context;)V
        22: .line 296
            aload 5
            athrow
        end local 3 // javax.naming.Context ctx
        end local 2 // java.lang.Object stub
        end local 1 // org.aopalliance.intercept.MethodInvocation invocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // java.rmi.RemoteException ex
         0: .line 307
            aload 1 /* ex */
            invokestatic org.springframework.remoting.rmi.RmiClientInterceptorUtils.isConnectFailure:(Ljava/rmi/RemoteException;)Z
            ireturn
        end local 1 // java.rmi.RemoteException ex
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation invocation
        start local 2 // java.lang.Exception ex
         0: .line 320
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshStubOnConnectFailure:Z
            ifeq 7
         1: .line 321
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 4
         2: .line 322
            aload 0 /* this */
            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 /* this */
            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 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         3: .line 323
            goto 6
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 6
         5: .line 325
            aload 0 /* this */
            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 /* this */
            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: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* invocation */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.refreshAndRetry:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
            areturn
         7: .line 330
      StackMap locals:
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // java.lang.Exception ex
        end local 1 // org.aopalliance.intercept.MethodInvocation invocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation invocation
         0: .line 345
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.stubMonitor:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 346
            aload 0 /* this */
            aconst_null
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
         2: .line 347
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.lookupStub:()Ljava/lang/Object;
            astore 2 /* freshStub */
        start local 2 // java.lang.Object freshStub
         3: .line 348
            aload 0 /* this */
            getfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cacheStub:Z
            ifeq 5
         4: .line 349
            aload 0 /* this */
            aload 2 /* freshStub */
            putfield org.springframework.remoting.rmi.JndiRmiClientInterceptor.cachedStub:Ljava/lang/Object;
         5: .line 345
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
        end local 2 // java.lang.Object freshStub
      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 // java.lang.Object freshStub
         9: .line 352
      StackMap locals: org.springframework.remoting.rmi.JndiRmiClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* freshStub */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object freshStub
        end local 1 // org.aopalliance.intercept.MethodInvocation invocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation invocation
        start local 2 // java.lang.Object stub
         0: .line 365
            aload 2 /* stub */
            instanceof org.springframework.remoting.rmi.RmiInvocationHandler
            ifeq 11
         1: .line 368
            aload 0 /* this */
            aload 1 /* invocation */
            aload 2 /* stub */
            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: .line 370
      StackMap locals:
      StackMap stack: java.rmi.RemoteException
            astore 3 /* ex */
        start local 3 // java.rmi.RemoteException ex
         4: .line 371
            aload 0 /* this */
            aload 3 /* ex */
            aload 1 /* invocation */
            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 // java.rmi.RemoteException ex
         5: .line 373
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* ex */
        start local 3 // java.lang.reflect.InvocationTargetException ex
         6: .line 374
            aload 3 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            athrow
        end local 3 // java.lang.reflect.InvocationTargetException ex
         7: .line 376
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         8: .line 377
            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 /* invocation */
            invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         9: .line 378
            ldc "] failed in RMI service ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            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 /* ex */
        10: .line 377
            invokespecial org.springframework.remoting.RemoteInvocationFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable ex
        11: .line 384
      StackMap locals:
      StackMap stack:
            aload 1 /* invocation */
            aload 2 /* stub */
            invokestatic org.springframework.remoting.rmi.RmiClientInterceptorUtils.invokeRemoteMethod:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Object;)Ljava/lang/Object;
        12: areturn
        13: .line 386
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 3 /* ex */
        start local 3 // java.lang.reflect.InvocationTargetException ex
        14: .line 387
            aload 3 /* ex */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 4 /* targetEx */
        start local 4 // java.lang.Throwable targetEx
        15: .line 388
            aload 4 /* targetEx */
            instanceof java.rmi.RemoteException
            ifeq 17
        16: .line 389
            aload 0 /* this */
            aload 4 /* targetEx */
            checkcast java.rmi.RemoteException
            aload 1 /* invocation */
            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: .line 392
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            aload 4 /* targetEx */
            athrow
        end local 4 // java.lang.Throwable targetEx
        end local 3 // java.lang.reflect.InvocationTargetException ex
        end local 2 // java.lang.Object stub
        end local 1 // org.aopalliance.intercept.MethodInvocation invocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation methodInvocation
        start local 2 // org.springframework.remoting.rmi.RmiInvocationHandler invocationHandler
         0: .line 413
            aload 1 /* methodInvocation */
            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: .line 414
            new java.lang.StringBuilder
            dup
            ldc "RMI invoker proxy for service URL ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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: .line 417
      StackMap locals:
      StackMap stack:
            aload 2 /* invocationHandler */
            aload 0 /* this */
            aload 1 /* methodInvocation */
            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 // org.springframework.remoting.rmi.RmiInvocationHandler invocationHandler
        end local 1 // org.aopalliance.intercept.MethodInvocation methodInvocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // org.aopalliance.intercept.MethodInvocation methodInvocation
         0: .line 433
            aload 0 /* this */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.getRemoteInvocationFactory:()Lorg/springframework/remoting/support/RemoteInvocationFactory;
            aload 1 /* methodInvocation */
            invokeinterface org.springframework.remoting.support.RemoteInvocationFactory.createRemoteInvocation:(Lorg/aopalliance/intercept/MethodInvocation;)Lorg/springframework/remoting/support/RemoteInvocation;
            areturn
        end local 1 // org.aopalliance.intercept.MethodInvocation methodInvocation
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
        start local 1 // java.rmi.RemoteException ex
        start local 2 // java.lang.reflect.Method method
         0: .line 445
            aload 2 /* method */
            aload 1 /* ex */
            aload 0 /* this */
            aload 1 /* ex */
            invokevirtual org.springframework.remoting.rmi.JndiRmiClientInterceptor.isConnectFailure:(Ljava/rmi/RemoteException;)Z
            aload 0 /* this */
            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 // java.lang.reflect.Method method
        end local 1 // java.rmi.RemoteException ex
        end local 0 // org.springframework.remoting.rmi.JndiRmiClientInterceptor this
      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"