public class org.apache.dubbo.registry.client.migration.MigrationInvoker extends java.lang.Object implements org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker
{
private org.apache.dubbo.common.logger.Logger logger;
private org.apache.dubbo.common.URL url;
private org.apache.dubbo.common.URL consumerUrl;
private org.apache.dubbo.rpc.cluster.Cluster cluster;
private org.apache.dubbo.registry.Registry registry;
private java.lang.Class type;
private org.apache.dubbo.registry.integration.RegistryProtocol registryProtocol;
private volatile org.apache.dubbo.rpc.cluster.ClusterInvoker invoker;
private volatile org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker;
private volatile org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker;
private org.apache.dubbo.rpc.cluster.support.migration.MigrationRule rule;
private boolean migrationMultiRegistry;
private volatile java.util.concurrent.atomic.AtomicBoolean invokersChanged;
public void <init>(org.apache.dubbo.registry.integration.RegistryProtocol, org.apache.dubbo.rpc.cluster.Cluster, org.apache.dubbo.registry.Registry, java.lang.Class, org.apache.dubbo.common.URL, org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v, v;
org.apache.dubbo.registry.integration.RegistryProtocol v;
java.lang.Class v;
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
org.apache.dubbo.registry.Registry v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.registry.integration.RegistryProtocol;
v := @parameter: org.apache.dubbo.rpc.cluster.Cluster;
v := @parameter: org.apache.dubbo.registry.Registry;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.dubbo.common.URL;
v := @parameter: org.apache.dubbo.common.URL;
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void <init>(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.integration.RegistryProtocol,org.apache.dubbo.rpc.cluster.Cluster,org.apache.dubbo.registry.Registry,java.lang.Class,org.apache.dubbo.common.URL,org.apache.dubbo.common.URL)>(null, null, v, v, v, v, v, v);
return;
}
public void <init>(org.apache.dubbo.rpc.cluster.ClusterInvoker, org.apache.dubbo.rpc.cluster.ClusterInvoker, org.apache.dubbo.registry.integration.RegistryProtocol, org.apache.dubbo.rpc.cluster.Cluster, org.apache.dubbo.registry.Registry, java.lang.Class, org.apache.dubbo.common.URL, org.apache.dubbo.common.URL)
{
org.apache.dubbo.registry.integration.RegistryProtocol v;
org.apache.dubbo.common.logger.Logger v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.common.URL v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v;
java.lang.Class v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v;
org.apache.dubbo.registry.Registry v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v := @parameter: org.apache.dubbo.registry.integration.RegistryProtocol;
v := @parameter: org.apache.dubbo.rpc.cluster.Cluster;
v := @parameter: org.apache.dubbo.registry.Registry;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.dubbo.common.URL;
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/registry/client/migration/MigrationInvoker;");
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(1);
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.util.concurrent.atomic.AtomicBoolean invokersChanged> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.integration.RegistryProtocol registryProtocol> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.Cluster cluster> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.Registry registry> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url> = v;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL consumerUrl> = v;
v = virtualinvoke v.<org.apache.dubbo.common.URL: boolean getParameter(java.lang.String,boolean)>("MIGRATION_MULTI_REGISTRY", 0);
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean migrationMultiRegistry> = v;
return;
}
public org.apache.dubbo.rpc.cluster.ClusterInvoker getInvoker()
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
return v;
}
public void setInvoker(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker> = v;
return;
}
public org.apache.dubbo.rpc.cluster.ClusterInvoker getServiceDiscoveryInvoker()
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
return v;
}
public void setServiceDiscoveryInvoker(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker> = v;
return;
}
public java.lang.Class getInterface()
{
java.lang.Class v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
return v;
}
public synchronized void migrateToServiceDiscoveryInvoker(boolean)
{
org.apache.dubbo.registry.client.migration.InvokersChangedListener v, v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: boolean;
if v != 0 goto label;
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void refreshServiceDiscoveryInvoker()>();
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void refreshInterfaceInvoker()>();
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_migrateToServiceDiscoveryInvoker_0__60: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_migrateToServiceDiscoveryInvoker_1__61: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void refreshServiceDiscoveryInvoker()>();
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_migrateToServiceDiscoveryInvoker_2__59: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
label:
return;
}
public void reRefer(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v, v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v, v, v;
java.util.Map v;
java.lang.String v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.common.URL;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.util.Map getParameters()>();
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String toQueryString(java.util.Map)>(v);
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL addParameter(java.lang.String,java.lang.String)>("refer", v);
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url> = v;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void doReSubscribe(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.common.URL)>(v, v);
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v != 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void doReSubscribe(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.common.URL)>(v, v);
label:
return;
}
private void doReSubscribe(org.apache.dubbo.rpc.cluster.ClusterInvoker, org.apache.dubbo.common.URL)
{
org.apache.dubbo.rpc.cluster.Directory v;
org.apache.dubbo.common.URL v, v, v, v, v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
org.apache.dubbo.registry.Registry v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v := @parameter: org.apache.dubbo.common.URL;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: org.apache.dubbo.common.URL getRegisteredConsumerUrl()>();
v = virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: org.apache.dubbo.registry.Registry getRegistry()>();
v = virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: org.apache.dubbo.common.URL getRegisteredConsumerUrl()>();
interfaceinvoke v.<org.apache.dubbo.registry.Registry: void unregister(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.common.URL toSubscribeUrl(org.apache.dubbo.common.URL)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void unSubscribe(org.apache.dubbo.common.URL)>(v);
v = virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: org.apache.dubbo.common.URL getRegisteredConsumerUrl()>();
interfaceinvoke v.<org.apache.dubbo.registry.Registry: void register(org.apache.dubbo.common.URL)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void setRegisteredConsumerUrl(org.apache.dubbo.common.URL)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void buildRouterChain(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.common.URL toSubscribeUrl(org.apache.dubbo.common.URL)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void subscribe(org.apache.dubbo.common.URL)>(v);
return;
}
public synchronized void fallbackToInterfaceInvoker()
{
org.apache.dubbo.registry.client.migration.InvokersChangedListener v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void refreshInterfaceInvoker()>();
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_fallbackToInterfaceInvoker_3__62: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
return;
}
public org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation) throws org.apache.dubbo.rpc.RpcException
{
boolean v, v, v, v;
java.io.Serializable v, v;
java.util.List v, v, v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v, v, v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
org.apache.dubbo.rpc.Invocation v;
int v, v;
java.lang.String v, v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v, v;
org.apache.dubbo.rpc.Result v, v, v;
org.apache.dubbo.rpc.cluster.Directory v, v, v, v;
java.lang.Class v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.Invocation;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v != 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
if v != null goto label;
v = "is null";
goto label;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.io.Serializable)>(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 interface addresses to handle invocation, interface \u, total address size \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation)>(v);
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v != 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
if v != null goto label;
v = " is null ";
goto label;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.io.Serializable)>(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 instance addresses to handle invocation, interface \u, total address size \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation)>(v);
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation)>(v);
return v;
}
public boolean isAvailable()
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isAvailable()>();
if v != 0 goto label;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isAvailable()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void destroy()
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: void destroy()>();
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: void destroy()>();
label:
return;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.common.URL v, v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.common.URL getUrl()>();
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.common.URL getUrl()>();
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL consumerUrl>;
return v;
}
public org.apache.dubbo.common.URL getRegistryUrl()
{
org.apache.dubbo.common.URL v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.common.URL getRegistryUrl()>();
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.common.URL getRegistryUrl()>();
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url>;
return v;
}
public org.apache.dubbo.rpc.cluster.Directory getDirectory()
{
org.apache.dubbo.rpc.cluster.Directory v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
return v;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
return v;
label:
return null;
}
public boolean isDestroyed()
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v == 0 goto label;
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.concurrent.atomic.AtomicBoolean invokersChanged()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.util.concurrent.atomic.AtomicBoolean invokersChanged>;
return v;
}
private synchronized void compareAddresses(org.apache.dubbo.rpc.cluster.ClusterInvoker, org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.common.extension.ExtensionLoader v;
java.util.concurrent.atomic.AtomicBoolean v;
int v;
java.lang.String v;
boolean v, v;
org.apache.dubbo.common.logger.Logger v, v;
java.util.function.Predicate v;
java.util.Set v;
org.apache.dubbo.rpc.cluster.Directory v, v;
java.util.List v, v;
java.util.stream.Stream v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.util.concurrent.atomic.AtomicBoolean invokersChanged>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
if v != null goto label;
v = "null";
goto label;
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001");
label:
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>(v);
label:
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/registry/client/migration/MigrationAddressComparator;");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.util.Set getSupportedExtensionInstances()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_compareAddresses_4__63: java.util.function.Predicate bootstrap$(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean allMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void discardInterfaceInvokerAddress(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
goto label;
label:
virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void discardServiceDiscoveryInvokerAddress(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
label:
return;
}
private synchronized void setAddressChanged()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.util.concurrent.atomic.AtomicBoolean invokersChanged>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
return;
}
public synchronized void destroyServiceDiscoveryInvoker(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.common.logger.Logger v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v;
java.lang.Class v;
java.lang.String v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker> = v;
label:
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
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[])>("Destroying instance address invokers, will not listen for address changes until re-subscribed, \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: void destroy()>();
label:
return;
}
public synchronized void discardServiceDiscoveryInvokerAddress(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
int v;
java.lang.String v;
boolean v, v;
org.apache.dubbo.common.logger.Logger v, v;
java.io.Serializable v;
org.apache.dubbo.rpc.cluster.Directory v, v, v;
java.util.List v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker> = v;
label:
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
if null != v goto label;
v = "null";
goto label;
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("Discarding instance addresses, total size \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: void discordAddresses()>();
label:
return;
}
public synchronized void refreshServiceDiscoveryInvoker()
{
org.apache.dubbo.registry.integration.RegistryProtocol v;
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.client.migration.InvokersChangedListener v;
java.lang.String v, v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v;
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
java.lang.Class v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
org.apache.dubbo.registry.Registry v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void clearListener(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean needRefresh(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
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[])>("Re-subscribing instance addresses, current interface \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.integration.RegistryProtocol registryProtocol>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.Cluster cluster>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.Registry registry>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.rpc.cluster.ClusterInvoker getServiceDiscoveryInvoker(org.apache.dubbo.rpc.cluster.Cluster,org.apache.dubbo.registry.Registry,java.lang.Class,org.apache.dubbo.common.URL)>(v, v, v, v);
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker> = v;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean migrationMultiRegistry>;
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_refreshServiceDiscoveryInvoker_5__64: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
label:
return;
}
private void clearListener(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.rpc.cluster.Directory v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean migrationMultiRegistry>;
if v == 0 goto label;
return;
label:
if v != null goto label;
return;
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void setInvokersChangedListener(org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(null);
return;
}
private void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker, org.apache.dubbo.registry.client.migration.InvokersChangedListener)
{
org.apache.dubbo.rpc.cluster.Directory v;
org.apache.dubbo.registry.client.migration.InvokersChangedListener v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v := @parameter: org.apache.dubbo.registry.client.migration.InvokersChangedListener;
if v != null goto label;
return;
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
virtualinvoke v.<org.apache.dubbo.registry.integration.DynamicDirectory: void setInvokersChangedListener(org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v);
return;
}
public synchronized void refreshInterfaceInvoker()
{
org.apache.dubbo.registry.integration.RegistryProtocol v;
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.client.migration.InvokersChangedListener v;
java.lang.String v, v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v;
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v, v;
java.lang.Class v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
org.apache.dubbo.registry.Registry v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void clearListener(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker>;
v = specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean needRefresh(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
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[])>("Re-subscribing interface addresses for interface \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.integration.RegistryProtocol registryProtocol>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.Cluster cluster>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.registry.Registry registry>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.rpc.cluster.ClusterInvoker getInvoker(org.apache.dubbo.rpc.cluster.Cluster,org.apache.dubbo.registry.Registry,java.lang.Class,org.apache.dubbo.common.URL)>(v, v, v, v);
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker invoker> = v;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean migrationMultiRegistry>;
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = staticinvoke <org.apache.dubbo.registry.client.migration.MigrationInvoker$lambda_refreshInterfaceInvoker_6__65: org.apache.dubbo.registry.client.migration.InvokersChangedListener bootstrap$(org.apache.dubbo.registry.client.migration.MigrationInvoker)>(v);
specialinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: void setListener(org.apache.dubbo.rpc.cluster.ClusterInvoker,org.apache.dubbo.registry.client.migration.InvokersChangedListener)>(v, v);
label:
return;
}
public synchronized void destroyInterfaceInvoker(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.common.logger.Logger v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v;
java.lang.Class v;
java.lang.String v, v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker> = v;
label:
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: java.lang.Class type>;
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[])>("Destroying interface address invokers, will not listen for address changes until re-subscribed, \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: void destroy()>();
label:
return;
}
public synchronized void discardInterfaceInvokerAddress(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.common.logger.Logger v, v;
java.io.Serializable v;
org.apache.dubbo.rpc.cluster.Directory v, v, v;
java.util.List v, v;
org.apache.dubbo.rpc.cluster.ClusterInvoker v, v, v;
int v;
java.lang.String v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker serviceDiscoveryInvoker>;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.ClusterInvoker currentAvailableInvoker> = v;
label:
if v == null goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
if null != v goto label;
v = "null";
goto label;
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: java.util.List getAllInvokers()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("Discarding interface addresses, total address size \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: org.apache.dubbo.rpc.cluster.Directory getDirectory()>();
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Directory: void discordAddresses()>();
label:
return;
}
private boolean needRefresh(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
if v == null goto label;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean checkInvokerAvailable(org.apache.dubbo.rpc.cluster.ClusterInvoker)
{
org.apache.dubbo.rpc.cluster.ClusterInvoker v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v, v, v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.ClusterInvoker;
if v == null goto label;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isDestroyed()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.ClusterInvoker: boolean isAvailable()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isServiceInvoker()
{
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
return 0;
}
public org.apache.dubbo.rpc.cluster.support.migration.MigrationRule getMigrationRule()
{
org.apache.dubbo.rpc.cluster.support.migration.MigrationRule v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.support.migration.MigrationRule rule>;
return v;
}
public void setMigrationRule(org.apache.dubbo.rpc.cluster.support.migration.MigrationRule)
{
org.apache.dubbo.rpc.cluster.support.migration.MigrationRule v;
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v := @parameter: org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;
v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: org.apache.dubbo.rpc.cluster.support.migration.MigrationRule rule> = v;
return;
}
public boolean isMigrationMultiRegistry()
{
org.apache.dubbo.registry.client.migration.MigrationInvoker v;
boolean v;
v := @this: org.apache.dubbo.registry.client.migration.MigrationInvoker;
v = v.<org.apache.dubbo.registry.client.migration.MigrationInvoker: boolean migrationMultiRegistry>;
return v;
}
}