public abstract class org.apache.dubbo.rpc.proxy.AbstractProxyInvoker extends java.lang.Object implements org.apache.dubbo.rpc.Invoker
{
org.apache.dubbo.common.logger.Logger logger;
private final java.lang.Object proxy;
private final java.lang.Class type;
private final org.apache.dubbo.common.URL url;
public void <init>(java.lang.Object, java.lang.Class, org.apache.dubbo.common.URL)
{
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
org.apache.dubbo.common.logger.Logger v;
java.lang.IllegalArgumentException v, v, v;
org.apache.dubbo.common.URL v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.dubbo.common.URL;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/proxy/AbstractProxyInvoker;");
v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.logger.Logger logger> = v;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("proxy == null");
throw v;
label:
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("interface == null");
throw v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isInstance(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Class)>(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[])>("\u not implement interface \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Object proxy> = v;
v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Class type> = v;
v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.URL url> = v;
return;
}
public java.lang.Class getInterface()
{
java.lang.Class v;
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v = v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Class type>;
return v;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v = v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.URL url>;
return v;
}
public boolean isAvailable()
{
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
return 1;
}
public void destroy()
{
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
return;
}
public org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation) throws org.apache.dubbo.rpc.RpcException
{
java.lang.Throwable v, v;
java.lang.Object[] v;
java.util.function.BiFunction v;
org.apache.dubbo.rpc.RpcContext v, v;
org.apache.dubbo.rpc.Invocation v;
java.util.concurrent.CompletableFuture v, v;
org.apache.dubbo.common.URL v;
java.lang.String v, v, v, v;
boolean v, v;
org.apache.dubbo.rpc.AsyncRpcResult v, v;
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
org.apache.dubbo.common.logger.Logger v;
java.lang.Class[] v;
org.apache.dubbo.rpc.RpcException v;
java.lang.reflect.InvocationTargetException v;
java.lang.Object v, v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v := @parameter: org.apache.dubbo.rpc.Invocation;
label:
v = v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Object proxy>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.Invocation: java.lang.String getMethodName()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.Invocation: java.lang.Class[] getParameterTypes()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.Invocation: java.lang.Object[] getArguments()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Object doInvoke(java.lang.Object,java.lang.String,java.lang.Class[],java.lang.Object[])>(v, v, v, v);
v = specialinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.util.concurrent.CompletableFuture wrapWithFuture(java.lang.Object)>(v);
v = staticinvoke <org.apache.dubbo.rpc.proxy.AbstractProxyInvoker$lambda_invoke_0__413: java.util.function.BiFunction bootstrap$(org.apache.dubbo.rpc.Invocation)>(v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction)>(v);
v = new org.apache.dubbo.rpc.AsyncRpcResult;
specialinvoke v.<org.apache.dubbo.rpc.AsyncRpcResult: void <init>(java.util.concurrent.CompletableFuture,org.apache.dubbo.rpc.Invocation)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <org.apache.dubbo.rpc.RpcContext: org.apache.dubbo.rpc.RpcContext getContext()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcContext: boolean isAsyncStarted()>();
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.rpc.RpcContext: org.apache.dubbo.rpc.RpcContext getContext()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcContext: boolean stopAsync()>();
if v != 0 goto label;
v = v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.logger.Logger logger>;
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>("Provider async started, but got an exception from the original method, cannot write the exception back to consumer because an async result may have returned the new thread.", v);
label:
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.Throwable getTargetException()>();
v = staticinvoke <org.apache.dubbo.rpc.AsyncRpcResult: org.apache.dubbo.rpc.AsyncRpcResult newDefaultAsyncResult(java.lang.Object,java.lang.Throwable,org.apache.dubbo.rpc.Invocation)>(null, v, v);
return v;
label:
v := @caughtexception;
v = new org.apache.dubbo.rpc.RpcException;
v = interfaceinvoke v.<org.apache.dubbo.rpc.Invocation: java.lang.String getMethodName()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.apache.dubbo.common.URL,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[])>("Failed to invoke remote proxy method \u to \u, cause: \u0001");
specialinvoke v.<org.apache.dubbo.rpc.RpcException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.util.concurrent.CompletableFuture wrapWithFuture(java.lang.Object)
{
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
org.apache.dubbo.rpc.RpcContext v, v;
java.util.concurrent.CompletableFuture v, v;
org.apache.dubbo.rpc.AsyncContext v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v := @parameter: java.lang.Object;
v = staticinvoke <org.apache.dubbo.rpc.RpcContext: org.apache.dubbo.rpc.RpcContext getContext()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcContext: boolean isAsyncStarted()>();
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.rpc.RpcContext: org.apache.dubbo.rpc.RpcContext getContext()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.RpcContext: org.apache.dubbo.rpc.AsyncContext getAsyncContext()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.AsyncContextImpl: java.util.concurrent.CompletableFuture getInternalFuture()>();
return v;
label:
v = v instanceof java.util.concurrent.CompletableFuture;
if v == 0 goto label;
return v;
label:
v = staticinvoke <java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture completedFuture(java.lang.Object)>(v);
return v;
}
protected abstract java.lang.Object doInvoke(java.lang.Object, java.lang.String, java.lang.Class[], java.lang.Object[]) throws java.lang.Throwable;
public java.lang.String toString()
{
org.apache.dubbo.common.URL v, v;
org.apache.dubbo.rpc.proxy.AbstractProxyInvoker v;
java.lang.Class v;
java.lang.String v, v;
v := @this: org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;
v = virtualinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: java.lang.Class getInterface()>();
v = virtualinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.URL getUrl()>();
if v != null goto label;
v = " ";
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.rpc.proxy.AbstractProxyInvoker: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String toString()>();
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class,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[])>("\u -> \u0001");
return v;
}
}