public class org.springframework.remoting.rmi.JndiRmiClientInterceptor extends org.springframework.jndi.JndiObjectLocator implements org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.InitializingBean
{
private java.lang.Class serviceInterface;
private org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory;
private boolean lookupStubOnStartup;
private boolean cacheStub;
private boolean refreshStubOnConnectFailure;
private boolean exposeAccessContext;
private java.lang.Object cachedStub;
private final java.lang.Object stubMonitor;
public void <init>()
{
org.springframework.remoting.support.DefaultRemoteInvocationFactory v;
java.lang.Object v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
specialinvoke v.<org.springframework.jndi.JndiObjectLocator: void <init>()>();
v = new org.springframework.remoting.support.DefaultRemoteInvocationFactory;
specialinvoke v.<org.springframework.remoting.support.DefaultRemoteInvocationFactory: void <init>()>();
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory> = v;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean lookupStubOnStartup> = 1;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean cacheStub> = 1;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean refreshStubOnConnectFailure> = 0;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean exposeAccessContext> = 0;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object stubMonitor> = v;
return;
}
public void setServiceInterface(java.lang.Class)
{
java.lang.Class v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.IllegalArgumentException v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: java.lang.Class;
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("\'serviceInterface\' must be an interface");
throw v;
label:
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class serviceInterface> = v;
return;
}
public java.lang.Class getServiceInterface()
{
java.lang.Class v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class serviceInterface>;
return v;
}
public void setRemoteInvocationFactory(org.springframework.remoting.support.RemoteInvocationFactory)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
org.springframework.remoting.support.RemoteInvocationFactory v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.springframework.remoting.support.RemoteInvocationFactory;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory> = v;
return;
}
public org.springframework.remoting.support.RemoteInvocationFactory getRemoteInvocationFactory()
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
org.springframework.remoting.support.RemoteInvocationFactory v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.remoting.support.RemoteInvocationFactory remoteInvocationFactory>;
return v;
}
public void setLookupStubOnStartup(boolean)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: boolean;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean lookupStubOnStartup> = v;
return;
}
public void setCacheStub(boolean)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: boolean;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean cacheStub> = v;
return;
}
public void setRefreshStubOnConnectFailure(boolean)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: boolean;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean refreshStubOnConnectFailure> = v;
return;
}
public void setExposeAccessContext(boolean)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: boolean;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean exposeAccessContext> = v;
return;
}
public void afterPropertiesSet() throws javax.naming.NamingException
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
specialinvoke v.<org.springframework.jndi.JndiObjectLocator: void afterPropertiesSet()>();
virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: void prepare()>();
return;
}
public void prepare() throws org.springframework.remoting.RemoteLookupFailureException
{
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v, v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.Class v, v, v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean lookupStubOnStartup>;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object lookupStub()>();
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v instanceof org.springframework.remoting.rmi.RmiInvocationHandler;
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JNDI RMI object [\u] is an RMI invoker");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
if v == null goto label;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
if v != 0 goto label;
v = "not ";
goto label;
label:
v = "";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Using service interface [\u] for JNDI RMI object [\u] - \u0001directly implemented");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean cacheStub>;
if v == 0 goto label;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub> = v;
label:
return;
}
protected java.lang.Object lookupStub() throws org.springframework.remoting.RemoteLookupFailureException
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
javax.naming.NamingException v;
java.lang.ClassCastException v;
org.springframework.remoting.RemoteLookupFailureException v, v;
java.lang.Class v, v, v;
java.lang.Object v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object lookup()>();
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
if v == null goto label;
v = v instanceof org.springframework.remoting.rmi.RmiInvocationHandler;
if v != 0 goto label;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
v = staticinvoke <javax.rmi.PortableRemoteObject: java.lang.Object narrow(java.lang.Object,java.lang.Class)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.remoting.RemoteLookupFailureException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Class getServiceInterface()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not narrow RMI stub to service interface [\u]");
specialinvoke v.<org.springframework.remoting.RemoteLookupFailureException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.remoting.RemoteLookupFailureException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JNDI lookup for RMI service [\u] failed");
specialinvoke v.<org.springframework.remoting.RemoteLookupFailureException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.ClassCastException from label to label with label;
catch javax.naming.NamingException from label to label with label;
}
protected java.lang.Object getStub() throws javax.naming.NamingException, org.springframework.remoting.RemoteLookupFailureException
{
java.lang.Throwable v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.Object v, v, v, v, v, v;
boolean v, v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean cacheStub>;
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean lookupStubOnStartup>;
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean refreshStubOnConnectFailure>;
if v != 0 goto label;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub>;
if v == null goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub>;
goto label;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object lookupStub()>();
label:
return v;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object stubMonitor>;
entermonitor v;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub>;
if v != null goto label;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object lookupStub()>();
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub> = v;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation) throws java.lang.Throwable
{
java.lang.Throwable v, v;
javax.naming.NamingException v;
org.aopalliance.intercept.MethodInvocation v;
org.springframework.remoting.RemoteLookupFailureException v;
java.lang.String v, v;
javax.naming.Context v, v;
org.springframework.remoting.RemoteConnectFailureException v;
boolean v, v, v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
org.springframework.jndi.JndiTemplate v, v, v, v, v, v;
java.rmi.RemoteException v;
java.lang.Object v, v, v, v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object getStub()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.remoting.RemoteLookupFailureException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JNDI lookup for RMI service [\u] failed");
specialinvoke v.<org.springframework.remoting.RemoteLookupFailureException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean exposeAccessContext>;
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
v = virtualinvoke v.<org.springframework.jndi.JndiTemplate: javax.naming.Context getContext()>();
goto label;
label:
v = null;
label:
v = v;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
virtualinvoke v.<org.springframework.jndi.JndiTemplate: void releaseContext(javax.naming.Context)>(v);
return v;
label:
v := @caughtexception;
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object handleRemoteConnectFailure(org.aopalliance.intercept.MethodInvocation,java.lang.Exception)>(v, v);
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
virtualinvoke v.<org.springframework.jndi.JndiTemplate: void releaseContext(javax.naming.Context)>(v);
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean isConnectFailure(java.rmi.RemoteException)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object handleRemoteConnectFailure(org.aopalliance.intercept.MethodInvocation,java.lang.Exception)>(v, v);
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
virtualinvoke v.<org.springframework.jndi.JndiTemplate: void releaseContext(javax.naming.Context)>(v);
return v;
label:
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean isConnectFailure(org.omg.CORBA.SystemException)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object handleRemoteConnectFailure(org.aopalliance.intercept.MethodInvocation,java.lang.Exception)>(v, v);
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
virtualinvoke v.<org.springframework.jndi.JndiTemplate: void releaseContext(javax.naming.Context)>(v);
return v;
label:
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.jndi.JndiTemplate getJndiTemplate()>();
virtualinvoke v.<org.springframework.jndi.JndiTemplate: void releaseContext(javax.naming.Context)>(v);
throw v;
catch javax.naming.NamingException from label to label with label;
catch org.springframework.remoting.RemoteConnectFailureException from label to label with label;
catch java.rmi.RemoteException from label to label with label;
catch org.omg.CORBA.SystemException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected boolean isConnectFailure(java.rmi.RemoteException)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
java.rmi.RemoteException v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: java.rmi.RemoteException;
v = staticinvoke <org.springframework.remoting.rmi.RmiClientInterceptorUtils: boolean isConnectFailure(java.rmi.RemoteException)>(v);
return v;
}
protected boolean isConnectFailure(org.omg.CORBA.SystemException)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
org.omg.CORBA.SystemException v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.omg.CORBA.SystemException;
v = v instanceof org.omg.CORBA.OBJECT_NOT_EXIST;
return v;
}
private java.lang.Object handleRemoteConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception) throws java.lang.Throwable
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.Exception v;
org.aopalliance.intercept.MethodInvocation v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v := @parameter: java.lang.Exception;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean refreshStubOnConnectFailure>;
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not connect to RMI service [\u] - retrying");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>(v, v);
goto label;
label:
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isWarnEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not connect to RMI service [\u] - retrying");
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object refreshAndRetry(org.aopalliance.intercept.MethodInvocation)>(v);
return v;
label:
throw v;
}
protected java.lang.Object refreshAndRetry(org.aopalliance.intercept.MethodInvocation) throws java.lang.Throwable
{
java.lang.Throwable v;
org.aopalliance.intercept.MethodInvocation v;
java.lang.Object v, v, v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object stubMonitor>;
entermonitor v;
label:
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub> = null;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object lookupStub()>();
v = v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean cacheStub>;
if v == 0 goto label;
v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object cachedStub> = v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation,java.lang.Object)>(v, v);
return v;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation, java.lang.Object) throws java.lang.Throwable
{
java.lang.Throwable v, v, v, v;
org.aopalliance.intercept.MethodInvocation v;
java.lang.String v, v;
java.lang.reflect.Method v, v, v, v, v;
boolean v, v, v;
org.springframework.remoting.RemoteInvocationFailureException v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.Exception v, v, v, v;
java.lang.reflect.InvocationTargetException v, v;
java.rmi.RemoteException v;
java.lang.Object v, v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v := @parameter: java.lang.Object;
v = v instanceof org.springframework.remoting.rmi.RmiInvocationHandler;
if v == 0 goto label;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation,org.springframework.remoting.rmi.RmiInvocationHandler)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Exception convertRmiAccessException(java.rmi.RemoteException,java.lang.reflect.Method)>(v, v);
throw v;
label:
v := @caughtexception;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Exception convertCorbaAccessException(org.omg.CORBA.SystemException,java.lang.reflect.Method)>(v, v);
throw v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.Throwable getTargetException()>();
throw v;
label:
v := @caughtexception;
v = new org.springframework.remoting.RemoteInvocationFailureException;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Method,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invocation of method [\u] failed in RMI service [\u]");
specialinvoke v.<org.springframework.remoting.RemoteInvocationFailureException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = staticinvoke <org.springframework.remoting.rmi.RmiClientInterceptorUtils: java.lang.Object invokeRemoteMethod(org.aopalliance.intercept.MethodInvocation,java.lang.Object)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.Throwable getTargetException()>();
v = v instanceof java.rmi.RemoteException;
if v == 0 goto label;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Exception convertRmiAccessException(java.rmi.RemoteException,java.lang.reflect.Method)>(v, v);
throw v;
label:
v = v instanceof org.omg.CORBA.SystemException;
if v == 0 goto label;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = specialinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.Exception convertCorbaAccessException(org.omg.CORBA.SystemException,java.lang.reflect.Method)>(v, v);
throw v;
label:
throw v;
catch java.rmi.RemoteException from label to label with label;
catch org.omg.CORBA.SystemException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
}
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation, org.springframework.remoting.rmi.RmiInvocationHandler) throws java.rmi.RemoteException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
{
org.springframework.remoting.rmi.RmiInvocationHandler v;
org.springframework.remoting.support.RemoteInvocation v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
org.aopalliance.intercept.MethodInvocation v;
java.lang.Object v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v := @parameter: org.springframework.remoting.rmi.RmiInvocationHandler;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = staticinvoke <org.springframework.aop.support.AopUtils: boolean isToStringMethod(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("RMI invoker proxy for service URL [\u]");
return v;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.remoting.support.RemoteInvocation createRemoteInvocation(org.aopalliance.intercept.MethodInvocation)>(v);
v = interfaceinvoke v.<org.springframework.remoting.rmi.RmiInvocationHandler: java.lang.Object invoke(org.springframework.remoting.support.RemoteInvocation)>(v);
return v;
}
protected org.springframework.remoting.support.RemoteInvocation createRemoteInvocation(org.aopalliance.intercept.MethodInvocation)
{
org.springframework.remoting.support.RemoteInvocationFactory v;
org.aopalliance.intercept.MethodInvocation v;
org.springframework.remoting.support.RemoteInvocation v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: org.springframework.remoting.support.RemoteInvocationFactory getRemoteInvocationFactory()>();
v = interfaceinvoke v.<org.springframework.remoting.support.RemoteInvocationFactory: org.springframework.remoting.support.RemoteInvocation createRemoteInvocation(org.aopalliance.intercept.MethodInvocation)>(v);
return v;
}
private java.lang.Exception convertRmiAccessException(java.rmi.RemoteException, java.lang.reflect.Method)
{
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
java.lang.String v;
java.lang.reflect.Method v;
java.lang.Exception v;
boolean v;
java.rmi.RemoteException v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: java.rmi.RemoteException;
v := @parameter: java.lang.reflect.Method;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean isConnectFailure(java.rmi.RemoteException)>(v);
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = staticinvoke <org.springframework.remoting.rmi.RmiClientInterceptorUtils: java.lang.Exception convertRmiAccessException(java.lang.reflect.Method,java.rmi.RemoteException,boolean,java.lang.String)>(v, v, v, v);
return v;
}
private java.lang.Exception convertCorbaAccessException(org.omg.CORBA.SystemException, java.lang.reflect.Method)
{
org.omg.CORBA.SystemException v;
org.springframework.remoting.rmi.JndiRmiClientInterceptor v;
org.springframework.remoting.RemoteAccessException v;
java.rmi.RemoteException v;
java.lang.String v, v, v, v, v, v;
org.springframework.remoting.RemoteConnectFailureException v;
java.lang.reflect.Method v;
boolean v, v;
v := @this: org.springframework.remoting.rmi.JndiRmiClientInterceptor;
v := @parameter: org.omg.CORBA.SystemException;
v := @parameter: java.lang.reflect.Method;
v = staticinvoke <org.springframework.util.ReflectionUtils: boolean declaresException(java.lang.reflect.Method,java.lang.Class)>(v, class "Ljava/rmi/RemoteException;");
if v == 0 goto label;
v = new java.rmi.RemoteException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to access CORBA service [\u]");
specialinvoke v.<java.rmi.RemoteException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
return v;
label:
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: boolean isConnectFailure(org.omg.CORBA.SystemException)>(v);
if v == 0 goto label;
v = new org.springframework.remoting.RemoteConnectFailureException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not connect to CORBA service [\u]");
specialinvoke v.<org.springframework.remoting.RemoteConnectFailureException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
return v;
label:
v = new org.springframework.remoting.RemoteAccessException;
v = virtualinvoke v.<org.springframework.remoting.rmi.JndiRmiClientInterceptor: java.lang.String getJndiName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not access CORBA service [\u]");
specialinvoke v.<org.springframework.remoting.RemoteAccessException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
return v;
}
}