public abstract class org.apache.dubbo.metadata.report.support.AbstractMetadataReport extends java.lang.Object implements org.apache.dubbo.metadata.report.MetadataReport
{
protected static final java.lang.String DEFAULT_ROOT;
private static final int ONE_DAY_IN_MILLISECONDS;
private static final int FOUR_HOURS_IN_MILLISECONDS;
protected final org.apache.dubbo.common.logger.Logger logger;
final java.util.Properties properties;
private final java.util.concurrent.ExecutorService reportCacheExecutor;
final java.util.Map allMetadataReports;
private final java.util.concurrent.atomic.AtomicLong lastCacheChanged;
final java.util.Map failedReports;
private org.apache.dubbo.common.URL reportURL;
boolean syncReport;
java.io.File file;
private java.util.concurrent.atomic.AtomicBoolean initialized;
public org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry metadataReportRetry;
public void <init>(org.apache.dubbo.common.URL)
{
java.lang.Integer v, v;
java.lang.Runnable v;
org.apache.dubbo.common.URL v;
boolean v, v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentHashMap v, v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry v;
java.util.concurrent.atomic.AtomicBoolean v, v;
long v;
org.apache.dubbo.common.utils.NamedThreadFactory v, v;
int v, v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v;
java.util.concurrent.ExecutorService v;
java.util.Properties v;
org.apache.dubbo.common.logger.Logger v;
java.lang.IllegalArgumentException v;
java.io.File v, v, v, v, v, v;
java.util.concurrent.TimeUnit v;
java.util.concurrent.atomic.AtomicLong v;
java.lang.Class v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.common.URL;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(v);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger> = v;
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties> = v;
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("DubboSaveMetadataReport", 1);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int,java.util.concurrent.ThreadFactory)>(1, v);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(4);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map allMetadataReports> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicLong lastCacheChanged> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(4);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicBoolean initialized> = v;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void setUrl(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("user.home");
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("application");
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getAddress()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>(":", "-");
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[])>("\u0001/.dubbo/dubbo-metadata-\u0001-\u.cache");
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String,java.lang.String)>("file", v);
v = null;
v = staticinvoke <org.apache.dubbo.common.utils.ConfigUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = v;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
if v == null goto label;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = virtualinvoke v.<java.io.File: boolean mkdirs()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File,java.io.File)>(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[])>("Invalid service store file \u, cause: Failed to create directory \u0001!");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicBoolean initialized>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean getAndSet(boolean)>(1);
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
virtualinvoke v.<java.io.File: boolean delete()>();
label:
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file> = v;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void loadProperties()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: boolean getParameter(java.lang.String,boolean)>("sync.report", 0);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport> = v;
v = new org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry;
v = <org.apache.dubbo.metadata.report.support.Constants: java.lang.Integer DEFAULT_METADATA_REPORT_RETRY_TIMES>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getParameter(java.lang.String,int)>("retry.times", v);
v = <org.apache.dubbo.metadata.report.support.Constants: java.lang.Integer DEFAULT_METADATA_REPORT_RETRY_PERIOD>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getParameter(java.lang.String,int)>("retry.period", v);
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry: void <init>(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,int,int)>(v, v, v);
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry metadataReportRetry> = v;
v = <org.apache.dubbo.metadata.report.support.Constants: java.lang.Boolean DEFAULT_METADATA_REPORT_CYCLE_REPORT>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: boolean getParameter(java.lang.String,boolean)>("cycle.report", v);
if v == 0 goto label;
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("DubboMetadataReportTimer", 1);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory)>(v);
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$publishAll__8: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport)>(v);
v = virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: long calculateStartTime()>();
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, 86400000L, v);
label:
return;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.URL reportURL>;
return v;
}
protected void setUrl(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.common.URL;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("metadataReport url == null");
throw v;
label:
v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.URL reportURL> = v;
return;
}
private void doSaveProperties(long)
{
java.io.RandomAccessFile v;
java.nio.channels.FileLock v;
byte v, v;
boolean v, v;
java.lang.Throwable v, v, v, v, v;
long v, v, v, v;
java.lang.String v, v, v, v, v, v;
java.util.concurrent.ExecutorService v;
java.util.Properties v;
org.apache.dubbo.common.logger.Logger v;
java.io.FileOutputStream v;
java.io.IOException v;
java.io.File v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicLong v, v, v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
java.nio.channels.FileChannel v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: long;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicLong lastCacheChanged>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v cmp v;
if v >= 0 goto label;
return;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
if v != null goto label;
return;
label:
v = new java.io.File;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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[])>("\u.lock");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
virtualinvoke v.<java.io.File: boolean createNewFile()>();
label:
v = new java.io.RandomAccessFile;
specialinvoke v.<java.io.RandomAccessFile: void <init>(java.io.File,java.lang.String)>(v, "rw");
label:
v = virtualinvoke v.<java.io.RandomAccessFile: java.nio.channels.FileChannel getChannel()>();
label:
v = virtualinvoke v.<java.nio.channels.FileChannel: java.nio.channels.FileLock tryLock()>();
if v != null goto label;
v = new java.io.IOException;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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[])>("Can not lock the metadataReport cache file \u, ignore and retry later, maybe multi java process use the file, please config: dubbo.metadata.file=xxx.properties");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
virtualinvoke v.<java.io.File: boolean createNewFile()>();
label:
v = new java.io.FileOutputStream;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
specialinvoke v.<java.io.FileOutputStream: void <init>(java.io.File)>(v);
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties>;
virtualinvoke v.<java.util.Properties: void store(java.io.OutputStream,java.lang.String)>(v, "Dubbo metadataReport Cache");
label:
virtualinvoke v.<java.io.FileOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
virtualinvoke v.<java.nio.channels.FileLock: void release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.nio.channels.FileLock: void release()>();
throw v;
label:
virtualinvoke v.<java.nio.channels.FileChannel: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
virtualinvoke v.<java.io.RandomAccessFile: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicLong lastCacheChanged>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v cmp v;
if v >= 0 goto label;
return;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = new org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicLong lastCacheChanged>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties: void <init>(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,long)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
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 save service store file, cause: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
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;
catch java.lang.Throwable from label to label with label;
}
void loadProperties()
{
java.lang.Throwable v, v;
java.lang.String v, v;
boolean v, v;
java.util.Properties v, v;
org.apache.dubbo.common.logger.Logger v, v, v;
java.io.FileInputStream v;
java.io.File v, v, v, v, v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
if v == null goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
v = new java.io.FileInputStream;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties>;
virtualinvoke v.<java.util.Properties: void load(java.io.InputStream)>(v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File,java.util.Properties)>(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[])>("Load service store file \u, data: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>(v);
label:
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(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 load service store file \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void saveProperties(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, java.lang.String, boolean, boolean)
{
java.lang.Throwable v;
long v;
java.lang.String v, v, v, v;
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier v;
java.util.concurrent.ExecutorService v;
boolean v, v;
java.util.Properties v, v;
org.apache.dubbo.common.logger.Logger v;
org.apache.dubbo.metadata.report.identifier.KeyTypeEnum v, v;
java.io.File v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties v, v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.io.File file>;
if v != null goto label;
return;
label:
if v == 0 goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties>;
v = <org.apache.dubbo.metadata.report.identifier.KeyTypeEnum: org.apache.dubbo.metadata.report.identifier.KeyTypeEnum UNIQUE_KEY>;
v = virtualinvoke v.<org.apache.dubbo.metadata.report.identifier.MetadataIdentifier: java.lang.String getUniqueKey(org.apache.dubbo.metadata.report.identifier.KeyTypeEnum)>(v);
virtualinvoke v.<java.util.Properties: java.lang.Object setProperty(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Properties properties>;
v = <org.apache.dubbo.metadata.report.identifier.KeyTypeEnum: org.apache.dubbo.metadata.report.identifier.KeyTypeEnum UNIQUE_KEY>;
v = virtualinvoke v.<org.apache.dubbo.metadata.report.identifier.MetadataIdentifier: java.lang.String getUniqueKey(org.apache.dubbo.metadata.report.identifier.KeyTypeEnum)>(v);
virtualinvoke v.<java.util.Properties: java.lang.Object remove(java.lang.Object)>(v);
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.atomic.AtomicLong lastCacheChanged>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
if v == 0 goto label;
v = new org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties;
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties: void <init>(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,long)>(v, v);
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties: void run()>();
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = new org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties;
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$SaveProperties: void <init>(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,long)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String toString()
{
org.apache.dubbo.common.URL v;
java.lang.String v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String toString()>();
return v;
}
public void storeProviderMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, org.apache.dubbo.metadata.definition.model.ServiceDefinition)
{
org.apache.dubbo.metadata.definition.model.ServiceDefinition v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier v;
java.lang.Runnable v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
v := @parameter: org.apache.dubbo.metadata.definition.model.ServiceDefinition;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v == 0 goto label;
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void storeProviderMetadataTask(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,org.apache.dubbo.metadata.definition.model.ServiceDefinition)>(v, v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$lambda_storeProviderMetadata_0__9: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,org.apache.dubbo.metadata.definition.model.ServiceDefinition)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
private void storeProviderMetadataTask(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, org.apache.dubbo.metadata.definition.model.ServiceDefinition)
{
org.apache.dubbo.metadata.definition.model.ServiceDefinition v;
com.google.gson.Gson v;
java.util.Map v, v, v;
java.lang.String v, v, v, v;
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v;
java.lang.Exception v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
v := @parameter: org.apache.dubbo.metadata.definition.model.ServiceDefinition;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,org.apache.dubbo.metadata.definition.model.ServiceDefinition)>(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[])>("store provider metadata. Identifier : \u; definition: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map allMetadataReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = new com.google.gson.Gson;
specialinvoke v.<com.google.gson.Gson: void <init>()>();
v = virtualinvoke v.<com.google.gson.Gson: java.lang.String toJson(java.lang.Object)>(v);
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doStoreProviderMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.lang.String)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void saveProperties(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.lang.String,boolean,boolean)>(v, v, 1, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry metadataReportRetry>;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry: void startRetryTask()>();
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,org.apache.dubbo.metadata.definition.model.ServiceDefinition,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 put provider metadata \u in  \u, cause: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public void storeConsumerMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, java.util.Map)
{
java.util.Map v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier v;
java.lang.Runnable v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
v := @parameter: java.util.Map;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void storeConsumerMetadataTask(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.util.Map)>(v, v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$lambda_storeConsumerMetadata_1__10: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.util.Map)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
public void storeConsumerMetadataTask(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, java.util.Map)
{
com.google.gson.Gson v;
java.util.Map v, v, v, v;
java.lang.String v, v, v, v;
org.apache.dubbo.metadata.report.identifier.MetadataIdentifier v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v;
java.lang.Exception v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
v := @parameter: java.util.Map;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.util.Map)>(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[])>("store consumer metadata. Identifier : \u; definition: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map allMetadataReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = new com.google.gson.Gson;
specialinvoke v.<com.google.gson.Gson: void <init>()>();
v = virtualinvoke v.<com.google.gson.Gson: java.lang.String toJson(java.lang.Object)>(v);
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doStoreConsumerMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.lang.String)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void saveProperties(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.lang.String,boolean,boolean)>(v, v, 1, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry metadataReportRetry>;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$MetadataReportRetry: void startRetryTask()>();
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.util.Map,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 put consumer metadata \u;  \u, cause: \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public void saveServiceMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier, org.apache.dubbo.common.URL)
{
org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier v;
org.apache.dubbo.common.URL v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
java.lang.Runnable v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
v := @parameter: org.apache.dubbo.common.URL;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doSaveMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier,org.apache.dubbo.common.URL)>(v, v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$lambda_saveServiceMetadata_2__11: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier,org.apache.dubbo.common.URL)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
public void removeServiceMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier)
{
org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
java.lang.Runnable v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doRemoveMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier)>(v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$lambda_removeServiceMetadata_3__12: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier)>(v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
public java.util.List getExportedURLs(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier)
{
org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier v;
java.util.List v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
v = virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.List doGetExportedURLs(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier)>(v);
return v;
}
public void saveSubscribedData(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier, java.util.Set)
{
java.util.Set v;
java.lang.Runnable v;
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier v;
com.google.gson.Gson v;
java.lang.String v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
v := @parameter: java.util.Set;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean syncReport>;
if v == 0 goto label;
v = new com.google.gson.Gson;
specialinvoke v.<com.google.gson.Gson: void <init>()>();
v = virtualinvoke v.<com.google.gson.Gson: java.lang.String toJson(java.lang.Object)>(v);
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doSaveSubscriberData(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier,java.lang.String)>(v, v);
goto label;
label:
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.concurrent.ExecutorService reportCacheExecutor>;
v = staticinvoke <org.apache.dubbo.metadata.report.support.AbstractMetadataReport$lambda_saveSubscribedData_4__13: java.lang.Runnable bootstrap$(org.apache.dubbo.metadata.report.support.AbstractMetadataReport,org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier,java.util.Set)>(v, v, v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
public java.util.List getSubscribedURLs(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier)
{
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier v;
java.lang.reflect.Type v;
com.google.gson.Gson v;
java.lang.Object v;
java.lang.String v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport$1 v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
v = virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.lang.String doGetSubscribedURLs(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier)>(v);
v = new org.apache.dubbo.metadata.report.support.AbstractMetadataReport$1;
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$1: void <init>(org.apache.dubbo.metadata.report.support.AbstractMetadataReport)>(v);
v = virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport$1: java.lang.reflect.Type getType()>();
v = new com.google.gson.Gson;
specialinvoke v.<com.google.gson.Gson: void <init>()>();
v = virtualinvoke v.<com.google.gson.Gson: java.lang.Object fromJson(java.lang.String,java.lang.reflect.Type)>(v, v);
return v;
}
java.lang.String getProtocol(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
java.lang.String v, v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.common.URL;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("side");
if v != null goto label;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getProtocol()>();
goto label;
label:
v = v;
label:
return v;
}
public boolean retry()
{
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
boolean v;
java.util.Map v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map failedReports>;
v = specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean doHandleMetadataCollection(java.util.Map)>(v);
return v;
}
private boolean doHandleMetadataCollection(java.util.Map)
{
java.util.Map v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
java.util.Iterator v;
java.util.Set v;
java.lang.Object v, v, v, v, v, v, v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
return 1;
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = "provider";
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.dubbo.metadata.report.identifier.MetadataIdentifier: java.lang.String getSide()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void storeProviderMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,org.apache.dubbo.metadata.definition.model.ServiceDefinition)>(v, v);
goto label;
label:
v = "consumer";
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.dubbo.metadata.report.identifier.MetadataIdentifier: java.lang.String getSide()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void storeConsumerMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier,java.util.Map)>(v, v);
goto label;
label:
return 0;
}
void publishAll()
{
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
org.apache.dubbo.common.logger.Logger v;
java.util.Map v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: org.apache.dubbo.common.logger.Logger logger>;
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>("start to publish all metadata.");
v = v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: java.util.Map allMetadataReports>;
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: boolean doHandleMetadataCollection(java.util.Map)>(v);
return;
}
long calculateStartTime()
{
long v, v, v, v, v, v;
java.util.Calendar v;
java.util.concurrent.ThreadLocalRandom v;
int v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v = staticinvoke <java.util.Calendar: java.util.Calendar getInstance()>();
v = virtualinvoke v.<java.util.Calendar: long getTimeInMillis()>();
virtualinvoke v.<java.util.Calendar: void set(int,int)>(11, 0);
virtualinvoke v.<java.util.Calendar: void set(int,int)>(12, 0);
virtualinvoke v.<java.util.Calendar: void set(int,int)>(13, 0);
virtualinvoke v.<java.util.Calendar: void set(int,int)>(14, 0);
v = virtualinvoke v.<java.util.Calendar: long getTimeInMillis()>();
v = v + 86400000L;
v = v - v;
v = v + 7200000L;
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: int nextInt(int)>(14400000);
v = v + v;
return v;
}
private void doSaveSubscriberData(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier, java.util.List)
{
java.util.Iterator v;
java.util.ArrayList v;
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier v;
java.util.List v;
int v;
java.lang.Object v;
java.lang.String v;
org.apache.dubbo.metadata.report.support.AbstractMetadataReport v;
boolean v, v;
v := @this: org.apache.dubbo.metadata.report.support.AbstractMetadataReport;
v := @parameter: org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
v := @parameter: java.util.List;
v = staticinvoke <org.apache.dubbo.common.utils.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v == 0 goto label;
return;
label:
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.common.URL: java.lang.String encode(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
specialinvoke v.<org.apache.dubbo.metadata.report.support.AbstractMetadataReport: void doSaveSubscriberData(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier,java.util.List)>(v, v);
return;
}
protected abstract void doStoreProviderMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, java.lang.String);
protected abstract void doStoreConsumerMetadata(org.apache.dubbo.metadata.report.identifier.MetadataIdentifier, java.lang.String);
protected abstract void doSaveMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier, org.apache.dubbo.common.URL);
protected abstract void doRemoveMetadata(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier);
protected abstract java.util.List doGetExportedURLs(org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier);
protected abstract void doSaveSubscriberData(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier, java.lang.String);
protected abstract java.lang.String doGetSubscribedURLs(org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier);
}