WXExceptionUtils.smali
.class public Lcom/taobao/weex/utils/WXExceptionUtils;
.super Ljava/lang/Object;
.source "WXExceptionUtils.java"
# static fields
.field public static degradeUrl:Ljava/lang/String;
.field private static sGlobalExceptionRecord:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 52
new-instance v0, Ljava/util/concurrent/CopyOnWriteArraySet;
invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArraySet;-><init>()V
sput-object v0, Lcom/taobao/weex/utils/WXExceptionUtils;->sGlobalExceptionRecord:Ljava/util/Set;
const-string v0, "BundleUrlDefaultDegradeUrl"
.line 57
sput-object v0, Lcom/taobao/weex/utils/WXExceptionUtils;->degradeUrl:Ljava/lang/String;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 50
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static checkNeedReportCauseRepeat(Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;)Z
.registers 6
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0,
0x0
}
names = {
"instanceId",
"errCode",
"exception"
}
.end annotation
.line 61
invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_8
return v1
:cond_8
if-eqz p1, :cond_13
.line 65
invoke-virtual {p1}, Lcom/taobao/weex/common/WXErrorCode;->getErrorGroup()Lcom/taobao/weex/common/WXErrorCode$ErrorGroup;
move-result-object p1
sget-object v0, Lcom/taobao/weex/common/WXErrorCode$ErrorGroup;->JS:Lcom/taobao/weex/common/WXErrorCode$ErrorGroup;
if-eq p1, v0, :cond_13
return v1
.line 69
:cond_13
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p1
if-eqz p1, :cond_1b
const-string p0, "instanceIdNull"
.line 73
:cond_1b
invoke-virtual {p2}, Ljava/lang/String;->length()I
move-result p1
const/4 v0, 0x0
const/16 v2, 0xc8
if-le p1, v2, :cond_28
invoke-virtual {p2, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p2
.line 76
:cond_28
invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;
move-result-object p1
invoke-virtual {p1}, Lcom/taobao/weex/WXSDKManager;->getAllInstanceMap()Ljava/util/Map;
move-result-object p1
invoke-interface {p1, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Lcom/taobao/weex/WXSDKInstance;
if-nez p0, :cond_3b
.line 78
sget-object p0, Lcom/taobao/weex/utils/WXExceptionUtils;->sGlobalExceptionRecord:Ljava/util/Set;
goto :goto_41
.line 80
:cond_3b
invoke-virtual {p0}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object p0
iget-object p0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->exceptionRecord:Ljava/util/Set;
:goto_41
if-nez p0, :cond_44
return v1
.line 87
:cond_44
invoke-interface {p0, p2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_4b
return v0
.line 90
:cond_4b
invoke-interface {p0, p2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
return v1
.end method
.method public static commitCriticalExceptionRT(Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
.registers 12
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x10,
0x10,
0x10,
0x10,
0x10
}
names = {
"instanceId",
"errCode",
"function",
"exception",
"extParams"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lcom/taobao/weex/common/WXErrorCode;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
const-string v0, "true"
:try_start_2
const-string/jumbo v1, "weex"
.line 112
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "commitCriticalExceptionRT :"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v3, "exception"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lcom/taobao/weex/utils/WXLogUtils;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 113
invoke-static {}, Lcom/taobao/weex/performance/WXStateRecord;->getInstance()Lcom/taobao/weex/performance/WXStateRecord;
move-result-object v1
invoke-virtual {v1, p0, p3}, Lcom/taobao/weex/performance/WXStateRecord;->recordException(Ljava/lang/String;Ljava/lang/String;)V
.line 114
invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;
move-result-object v1
invoke-virtual {v1}, Lcom/taobao/weex/WXSDKManager;->getWxConfigAdapter()Lcom/taobao/weex/adapter/IWXConfigAdapter;
move-result-object v1
const/4 v2, 0x1
if-eqz v1, :cond_41
const-string/jumbo v3, "wxapm"
const-string v4, "check_repeat_report"
.line 117
invoke-interface {v1, v3, v4, v0}, Lcom/taobao/weex/adapter/IWXConfigAdapter;->getConfig(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 118
invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
goto :goto_42
:cond_41
move v0, v2
:goto_42
if-eqz v0, :cond_48
.line 122
invoke-static {p0, p1, p3}, Lcom/taobao/weex/utils/WXExceptionUtils;->checkNeedReportCauseRepeat(Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;)Z
move-result v2
:try_end_48
.catchall {:try_start_2 .. :try_end_48} :catchall_4b
:cond_48
if-nez v2, :cond_4f
return-void
:catchall_4b
move-exception v0
.line 128
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:cond_4f
const-string v1, "BundleUrlDefault"
move-object v2, p0
move-object v3, p1
move-object v4, p2
move-object v5, p3
move-object v6, p4
.line 132
invoke-static/range {v1 .. v6}, Lcom/taobao/weex/utils/WXExceptionUtils;->commitCriticalExceptionWithDefaultUrl(Ljava/lang/String;Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
return-void
.end method
.method public static commitCriticalExceptionWithDefaultUrl(Ljava/lang/String;Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
.registers 14
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x10,
0x10,
0x10,
0x10,
0x10,
0x10
}
names = {
"defaultUrl",
"instanceId",
"errCode",
"function",
"exception",
"extParams"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Lcom/taobao/weex/common/WXErrorCode;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.line 150
invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;
move-result-object v0
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKManager;->getIWXJSExceptionAdapter()Lcom/taobao/weex/adapter/IWXJSExceptionAdapter;
move-result-object v0
.line 153
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_10
const-string p0, "BundleUrlDefault"
:cond_10
if-nez p5, :cond_17
.line 158
new-instance p5, Ljava/util/HashMap;
invoke-direct {p5}, Ljava/util/HashMap;-><init>()V
:cond_17
move-object v7, p5
.line 160
sget-wide v1, Lcom/taobao/weex/WXEnvironment;->sSDKInitStart:J
invoke-static {v1, v2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p5
const-string/jumbo v1, "wxSdkInitStartTime"
invoke-interface {v7, v1, p5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 161
sget-wide v1, Lcom/taobao/weex/WXEnvironment;->sSDKInitTime:J
invoke-static {v1, v2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p5
const-string/jumbo v1, "wxSDKInitCostTime"
invoke-interface {v7, v1, p5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 162
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
invoke-static {v1, v2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p5
const-string/jumbo v1, "wxSDKCurExceptionTime"
invoke-interface {v7, v1, p5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 163
sget-boolean p5, Lcom/taobao/weex/WXEnvironment;->sUseRunTimeApi:Z
invoke-static {p5}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object p5
const-string/jumbo v1, "wxUseRuntimeApi"
invoke-interface {v7, v1, p5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 164
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p5
const-string v1, "InstanceIdDefalut"
if-nez p5, :cond_132
.line 166
invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;
move-result-object p5
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKManager;->getAllInstanceMap()Ljava/util/Map;
move-result-object p5
invoke-interface {p5, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p5
check-cast p5, Lcom/taobao/weex/WXSDKInstance;
if-eqz p5, :cond_12f
.line 169
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object p0
iget-object p0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->reportPageName:Ljava/lang/String;
.line 170
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object v1
iget-object v1, v1, Lcom/taobao/weex/performance/WXInstanceApm;->extInfo:Ljava/util/Map;
const-string/jumbo v2, "wxLoadedLength"
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
.line 171
instance-of v3, v1, Ljava/lang/Integer;
if-eqz v3, :cond_7e
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
goto :goto_80
:cond_7e
const-string v1, "unknownLength"
.line 172
:goto_80
invoke-interface {v7, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 173
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getTemplateInfo()Ljava/lang/String;
move-result-object v1
const-string v2, "templateInfo"
invoke-interface {v7, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 174
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_9a
const-string v1, "default"
invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_a9
.line 175
:cond_9a
sget-object p0, Lcom/taobao/weex/utils/WXExceptionUtils;->degradeUrl:Ljava/lang/String;
const-string v1, "BundleUrlDefaultDegradeUrl"
invoke-static {p0, v1}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result p0
if-nez p0, :cond_a7
.line 176
sget-object p0, Lcom/taobao/weex/utils/WXExceptionUtils;->degradeUrl:Ljava/lang/String;
goto :goto_a9
.line 178
:cond_a7
sget-object p0, Lcom/taobao/weex/WXSDKInstance;->requestUrl:Ljava/lang/String;
.line 180
:cond_a9
:goto_a9
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getContainerInfo()Ljava/util/Map;
move-result-object v1
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v1
invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_b5
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_d1
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/util/Map$Entry;
.line 181
invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-interface {v7, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_b5
.line 183
:cond_d1
invoke-static {p5}, Lcom/taobao/weex/utils/WXExceptionUtils;->convertStageToStr(Lcom/taobao/weex/WXSDKInstance;)Ljava/lang/String;
move-result-object v1
const-string/jumbo v2, "wxStageList"
invoke-interface {v7, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 184
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getTemplate()Ljava/lang/String;
move-result-object v1
if-nez v1, :cond_e4
const-string v1, "has recycle by gc"
goto :goto_f3
.line 188
:cond_e4
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v2
const/4 v3, 0x0
const/16 v4, 0x12c
.line 189
invoke-static {v2, v4}, Ljava/lang/Math;->min(II)I
move-result v2
invoke-virtual {v1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
:goto_f3
const-string/jumbo v2, "wxTemplateOfBundle"
.line 191
invoke-interface {v7, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 193
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object v1
iget-object v1, v1, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;
const-string/jumbo v2, "wxStartDownLoadBundle"
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Long;
if-nez v1, :cond_11a
.line 195
invoke-virtual {p5}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object p5
iget-object p5, p5, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;
const-string/jumbo v1, "wxRenderTimeOrigin"
invoke-interface {p5, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p5
move-object v1, p5
check-cast v1, Ljava/lang/Long;
:cond_11a
if-eqz v1, :cond_12f
.line 198
invoke-static {}, Lcom/taobao/weex/utils/WXUtils;->getFixUnixTime()J
move-result-wide v2
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v4
sub-long/2addr v2, v4
invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object p5
const-string/jumbo v1, "wxUseTime"
invoke-interface {v7, v1, p5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_12f
move-object v3, p0
move-object v2, p1
goto :goto_158
.line 202
:cond_132
invoke-interface {v7}, Ljava/util/Map;->size()I
move-result p5
if-lez p5, :cond_156
const-string/jumbo p0, "weexUrl"
.line 203
invoke-interface {v7, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p5
check-cast p5, Ljava/lang/CharSequence;
invoke-static {p5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result p5
if-eqz p5, :cond_14e
invoke-interface {v7, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
goto :goto_156
:cond_14e
const-string p0, "bundleUrl"
.line 204
invoke-interface {v7, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
:cond_156
:goto_156
move-object v3, p0
move-object v2, v1
:goto_158
const-string p0, "errorCode"
.line 208
invoke-interface {v7, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p5
check-cast p5, Ljava/lang/String;
if-eqz p5, :cond_16d
.line 209
invoke-virtual {p5}, Ljava/lang/String;->length()I
move-result p5
const/16 v1, 0xc8
if-le p5, v1, :cond_16d
.line 210
invoke-interface {v7, p0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 213
:cond_16d
new-instance p0, Lcom/taobao/weex/common/WXJSExceptionInfo;
move-object v1, p0
move-object v4, p2
move-object v5, p3
move-object v6, p4
invoke-direct/range {v1 .. v7}, Lcom/taobao/weex/common/WXJSExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/taobao/weex/common/WXErrorCode;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
if-eqz v0, :cond_17b
.line 215
invoke-interface {v0, p0}, Lcom/taobao/weex/adapter/IWXJSExceptionAdapter;->onJSException(Lcom/taobao/weex/common/WXJSExceptionInfo;)V
.line 218
:cond_17b
invoke-static {p0, p1}, Lcom/taobao/weex/performance/WXAnalyzerDataTransfer;->transferError(Lcom/taobao/weex/common/WXJSExceptionInfo;Ljava/lang/String;)V
return-void
.end method
.method private static convertStageToStr(Lcom/taobao/weex/WXSDKInstance;)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"instance"
}
.end annotation
if-eqz p0, :cond_61
.line 222
invoke-virtual {p0}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object v0
if-eqz v0, :cond_61
invoke-virtual {p0}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object v0
iget-object v0, v0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->isEmpty()Z
move-result v0
if-eqz v0, :cond_15
goto :goto_61
.line 225
:cond_15
new-instance v0, Ljava/util/ArrayList;
invoke-virtual {p0}, Lcom/taobao/weex/WXSDKInstance;->getApmForInstance()Lcom/taobao/weex/performance/WXInstanceApm;
move-result-object p0
iget-object p0, p0, Lcom/taobao/weex/performance/WXInstanceApm;->stageMap:Ljava/util/Map;
invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p0
invoke-direct {v0, p0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 226
new-instance p0, Lcom/taobao/weex/utils/WXExceptionUtils$1;
invoke-direct {p0}, Lcom/taobao/weex/utils/WXExceptionUtils$1;-><init>()V
invoke-static {v0, p0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 233
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
.line 234
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_35
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_5c
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
.line 235
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-virtual {p0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v2, 0x3a
invoke-virtual {p0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v1
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, "->"
invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_35
.line 237
:cond_5c
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
:cond_61
:goto_61
const-string p0, "noStageRecord"
return-object p0
.end method