ApkScanTask$ApkParseThread.smali
.class Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;
.super Ljava/lang/Thread;
.source "ApkScanTask.java"
# interfaces
.implements Lcom/cleanmaster/junk/scan/IApkFileAssemblage;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/cleanmaster/junk/scan/ApkScanTask;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x2
name = "ApkParseThread"
.end annotation
# instance fields
.field lock:[B
.field private mApkFileStack:Ljava/util/Stack;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Stack",
"<",
"Lcom/cleanmaster/junk/bean/ApkParseData;",
">;"
}
.end annotation
.end field
.field private mApkModelAssemblage:Lcom/cleanmaster/junk/scan/IApkModelAssemblage;
.field private mApkParser:Lcom/cleanmaster/junk/scan/ApkParser;
.field mExecutorService:Ljava/util/concurrent/ExecutorService;
.field private mProgressControl:Lcom/cleanmaster/util/ProgressControl;
.field private mPushedApk:Lcom/cleanmaster/bitloader/base/ArraySet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/cleanmaster/bitloader/base/ArraySet",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private mWaitForFinish:Z
.field final synthetic this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
# direct methods
.method public constructor <init>(Lcom/cleanmaster/junk/scan/ApkScanTask;Lcom/cleanmaster/junk/scan/IApkModelAssemblage;)V
.registers 6
.prologue
.line 1490
iput-object p1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
.line 1541
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
.line 1542
const/4 v0, 0x1
new-array v0, v0, [B
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->lock:[B
.line 1491
iput-object p2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkModelAssemblage:Lcom/cleanmaster/junk/scan/IApkModelAssemblage;
.line 1492
new-instance v0, Ljava/util/Stack;
invoke-direct {v0}, Ljava/util/Stack;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
.line 1493
new-instance v0, Lcom/cleanmaster/bitloader/base/ArraySet;
invoke-direct {v0}, Lcom/cleanmaster/bitloader/base/ArraySet;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mPushedApk:Lcom/cleanmaster/bitloader/base/ArraySet;
.line 1494
new-instance v0, Lcom/cleanmaster/junk/scan/ApkParser;
iget-object v1, p1, Lcom/cleanmaster/junk/scan/ApkScanTask;->mContext:Landroid/content/Context;
invoke-direct {v0, v1}, Lcom/cleanmaster/junk/scan/ApkParser;-><init>(Landroid/content/Context;)V
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkParser:Lcom/cleanmaster/junk/scan/ApkParser;
.line 1495
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mWaitForFinish:Z
.line 1496
new-instance v0, Lcom/cleanmaster/util/ProgressControl;
iget-object v1, p1, Lcom/cleanmaster/junk/scan/ApkScanTask;->mCB:Lcom/cm/plugincluster/softmgr/interfaces/junk/IScanTaskCallback;
const/4 v2, 0x6
invoke-direct {v0, v1, v2}, Lcom/cleanmaster/util/ProgressControl;-><init>(Lcom/cm/plugincluster/softmgr/interfaces/junk/IScanTaskCallback;I)V
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mProgressControl:Lcom/cleanmaster/util/ProgressControl;
.line 1497
return-void
.end method
.method static synthetic access$000(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;)Lcom/cleanmaster/junk/scan/ApkParser;
.registers 2
.prologue
.line 1489
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkParser:Lcom/cleanmaster/junk/scan/ApkParser;
return-object v0
.end method
.method static synthetic access$1500(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;)Ljava/util/Stack;
.registers 2
.prologue
.line 1489
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
return-object v0
.end method
.method static synthetic access$1700(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;)Lcom/cleanmaster/junk/scan/IApkModelAssemblage;
.registers 2
.prologue
.line 1489
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkModelAssemblage:Lcom/cleanmaster/junk/scan/IApkModelAssemblage;
return-object v0
.end method
.method static synthetic access$1800(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;)Lcom/cleanmaster/util/ProgressControl;
.registers 2
.prologue
.line 1489
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mProgressControl:Lcom/cleanmaster/util/ProgressControl;
return-object v0
.end method
# virtual methods
.method public getOneApkFile()Ljava/io/File;
.registers 2
.prologue
.line 1538
const/4 v0, 0x0
return-object v0
.end method
.method public getOneApkFileFromList()Lcom/cleanmaster/junk/bean/ApkParseData;
.registers 3
.prologue
.line 1522
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
monitor-enter v1
.line 1523
:try_start_3
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v0}, Ljava/util/Stack;->empty()Z
move-result v0
if-eqz v0, :cond_e
.line 1524
const/4 v0, 0x0
monitor-exit v1
.line 1527
:goto_d
return-object v0
:cond_e
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v0}, Ljava/util/Stack;->pop()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/junk/bean/ApkParseData;
monitor-exit v1
goto :goto_d
.line 1528
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_3 .. :try_end_1a} :catchall_18
throw v0
.end method
.method public notifyStartWaitForFinish()V
.registers 4
.prologue
.line 1652
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mWaitForFinish:Z
.line 1653
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
monitor-enter v1
.line 1654
:try_start_6
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mProgressControl:Lcom/cleanmaster/util/ProgressControl;
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v2}, Ljava/util/Stack;->size()I
move-result v2
invoke-virtual {v0, v2}, Lcom/cleanmaster/util/ProgressControl;->setStepNum(I)V
.line 1655
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v0}, Ljava/lang/Object;->notifyAll()V
.line 1656
monitor-exit v1
.line 1657
return-void
.line 1656
:catchall_18
move-exception v0
monitor-exit v1
:try_end_1a
.catchall {:try_start_6 .. :try_end_1a} :catchall_18
throw v0
.end method
.method public putOneApkFile(Ljava/io/File;)Z
.registers 3
.prologue
.line 1533
const/4 v0, 0x0
return v0
.end method
.method public putOneApkFile(Ljava/io/File;Lcom/cleanmaster/junk/bean/GenericWhiteInfo;)Z
.registers 6
.prologue
.line 1501
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
monitor-enter v1
.line 1502
:try_start_3
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v0}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1400(Lcom/cleanmaster/junk/scan/ApkScanTask;)Z
move-result v0
if-eqz v0, :cond_1a
if-eqz p1, :cond_1a
.line 1503
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/cleanmaster/junk/util/JunkUtils;->isApkBackupFilter(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1a
.line 1504
const/4 v0, 0x0
monitor-exit v1
.line 1517
:goto_19
return v0
.line 1508
:cond_1a
if-eqz p1, :cond_46
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mPushedApk:Lcom/cleanmaster/bitloader/base/ArraySet;
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Lcom/cleanmaster/bitloader/base/ArraySet;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_46
.line 1509
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mPushedApk:Lcom/cleanmaster/bitloader/base/ArraySet;
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Lcom/cleanmaster/bitloader/base/ArraySet;->add(Ljava/lang/Object;)Z
.line 1510
new-instance v0, Lcom/cleanmaster/junk/bean/ApkParseData;
invoke-direct {v0}, Lcom/cleanmaster/junk/bean/ApkParseData;-><init>()V
.line 1511
invoke-virtual {v0, p1}, Lcom/cleanmaster/junk/bean/ApkParseData;->setApkParseDataFile(Ljava/io/File;)V
.line 1512
invoke-virtual {v0, p2}, Lcom/cleanmaster/junk/bean/ApkParseData;->setApkParseDataWhiteInfo(Lcom/cleanmaster/junk/bean/GenericWhiteInfo;)V
.line 1513
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v2, v0}, Ljava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object;
.line 1514
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v0}, Ljava/lang/Object;->notifyAll()V
.line 1516
:cond_46
monitor-exit v1
.line 1517
const/4 v0, 0x1
goto :goto_19
.line 1516
:catchall_49
move-exception v0
monitor-exit v1
:try_end_4b
.catchall {:try_start_3 .. :try_end_4b} :catchall_49
throw v0
.end method
.method public run()V
.registers 6
.prologue
.line 1546
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkParser:Lcom/cleanmaster/junk/scan/ApkParser;
invoke-virtual {v0}, Lcom/cleanmaster/junk/scan/ApkParser;->initApkParser()Z
.line 1547
sget-boolean v0, Lcom/cleanmaster/junk/util/Env;->bIsMultiProc:Z
if-eqz v0, :cond_74
const/4 v0, 0x2
:goto_a
invoke-static {v0}, Ljava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
.line 1548
const/4 v0, -0x1
.line 1549
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
if-eqz v1, :cond_28
.line 1550
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v0}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v0
new-instance v1, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread$1;
invoke-direct {v1, p0}, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread$1;-><init>(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;)V
invoke-interface {v0, v1}, Lcom/cleanmaster/junk/scan/IScanTaskController;->addObserver(Lcom/cleanmaster/junk/scan/IScanTaskControllerObserver;)I
move-result v0
.line 1583
:cond_28
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mProgressControl:Lcom/cleanmaster/util/ProgressControl;
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v2}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1600(Lcom/cleanmaster/junk/scan/ApkScanTask;)I
move-result v2
const/16 v3, 0x7d0
const/4 v4, 0x0
invoke-virtual {v1, v2, v3, v4}, Lcom/cleanmaster/util/ProgressControl;->startControl(IIZ)V
.line 1586
:cond_36
:goto_36
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
if-eqz v1, :cond_76
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
invoke-interface {v1}, Lcom/cleanmaster/junk/scan/IScanTaskController;->checkStop()Z
move-result v1
if-eqz v1, :cond_76
.line 1638
:cond_4a
:goto_4a
:try_start_4a
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdown()V
.line 1639
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
const-wide v2, 0x7fffffffffffffffL
sget-object v4, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface {v1, v2, v3, v4}, Ljava/util/concurrent/ExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
:try_end_5b
.catch Ljava/lang/InterruptedException; {:try_start_4a .. :try_end_5b} :catch_ca
.line 1643
:goto_5b
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mProgressControl:Lcom/cleanmaster/util/ProgressControl;
invoke-virtual {v1}, Lcom/cleanmaster/util/ProgressControl;->stopControl()V
.line 1645
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
if-eqz v1, :cond_73
if-ltz v0, :cond_73
.line 1646
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
invoke-interface {v1, v0}, Lcom/cleanmaster/junk/scan/IScanTaskController;->removeObserver(I)V
.line 1649
:cond_73
return-void
.line 1547
:cond_74
const/4 v0, 0x1
goto :goto_a
.line 1590
:cond_76
invoke-virtual {p0}, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->getOneApkFileFromList()Lcom/cleanmaster/junk/bean/ApkParseData;
move-result-object v1
.line 1591
if-nez v1, :cond_a4
.line 1592
iget-boolean v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mWaitForFinish:Z
if-nez v1, :cond_4a
.line 1595
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
monitor-enter v1
.line 1597
:try_start_83
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mApkFileStack:Ljava/util/Stack;
invoke-virtual {v2}, Ljava/lang/Object;->wait()V
:try_end_88
.catch Ljava/lang/InterruptedException; {:try_start_83 .. :try_end_88} :catch_9e
.catchall {:try_start_83 .. :try_end_88} :catchall_a1
.line 1601
:try_start_88
monitor-exit v1
:try_end_89
.catchall {:try_start_88 .. :try_end_89} :catchall_a1
.line 1603
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
if-eqz v1, :cond_36
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->this$0:Lcom/cleanmaster/junk/scan/ApkScanTask;
invoke-static {v1}, Lcom/cleanmaster/junk/scan/ApkScanTask;->access$1000(Lcom/cleanmaster/junk/scan/ApkScanTask;)Lcom/cleanmaster/junk/scan/IScanTaskController;
move-result-object v1
invoke-interface {v1}, Lcom/cleanmaster/junk/scan/IScanTaskController;->checkStop()Z
move-result v1
if-eqz v1, :cond_36
goto :goto_4a
.line 1598
:catch_9e
move-exception v2
.line 1599
:try_start_9f
monitor-exit v1
goto :goto_4a
.line 1601
:catchall_a1
move-exception v0
monitor-exit v1
:try_end_a3
.catchall {:try_start_9f .. :try_end_a3} :catchall_a1
throw v0
.line 1610
:cond_a4
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->lock:[B
monitor-enter v2
.line 1611
:try_start_a7
iget-object v3, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
invoke-interface {v3}, Ljava/util/concurrent/ExecutorService;->isShutdown()Z
move-result v3
if-nez v3, :cond_b7
iget-object v3, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
invoke-interface {v3}, Ljava/util/concurrent/ExecutorService;->isTerminated()Z
move-result v3
if-eqz v3, :cond_bd
.line 1612
:cond_b7
monitor-exit v2
goto/16 :goto_36
.line 1634
:catchall_ba
move-exception v0
monitor-exit v2
:try_end_bc
.catchall {:try_start_a7 .. :try_end_bc} :catchall_ba
throw v0
.line 1614
:cond_bd
:try_start_bd
iget-object v3, p0, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;->mExecutorService:Ljava/util/concurrent/ExecutorService;
new-instance v4, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread$2;
invoke-direct {v4, p0, v1}, Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread$2;-><init>(Lcom/cleanmaster/junk/scan/ApkScanTask$ApkParseThread;Lcom/cleanmaster/junk/bean/ApkParseData;)V
invoke-interface {v3, v4}, Ljava/util/concurrent/ExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
.line 1634
monitor-exit v2
:try_end_c8
.catchall {:try_start_bd .. :try_end_c8} :catchall_ba
goto/16 :goto_36
.line 1640
:catch_ca
move-exception v1
goto :goto_5b
.end method