Path: blob/master/Compiled_apk/smali/org/apache/commons/io/FileCleaningTracker.smali
2476 views
.class public Lorg/apache/commons/io/FileCleaningTracker; .super Ljava/lang/Object; .source "FileCleaningTracker.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lorg/apache/commons/io/FileCleaningTracker$Tracker;, Lorg/apache/commons/io/FileCleaningTracker$Reaper; } .end annotation # instance fields .field final deleteFailures:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/String;", ">;" } .end annotation .end field .field volatile exitWhenFinished:Z .field q:Ljava/lang/ref/ReferenceQueue; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/ReferenceQueue<", "Ljava/lang/Object;", ">;" } .end annotation .end field .field reaper:Ljava/lang/Thread; .field final trackers:Ljava/util/Collection; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Collection<", "Lorg/apache/commons/io/FileCleaningTracker$Tracker;", ">;" } .end annotation .end field # direct methods .method public constructor <init>()V .locals 1 .line 46 invoke-direct {p0}, Ljava/lang/Object;-><init>()V .line 50 new-instance v0, Ljava/lang/ref/ReferenceQueue; invoke-direct {v0}, Ljava/lang/ref/ReferenceQueue;-><init>()V iput-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->q:Ljava/lang/ref/ReferenceQueue; .line 54 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;-><init>()V invoke-static {v0}, Ljava/util/Collections;->synchronizedSet(Ljava/util/Set;)Ljava/util/Set; move-result-object v0 iput-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->trackers:Ljava/util/Collection; .line 58 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V invoke-static {v0}, Ljava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List; move-result-object v0 iput-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->deleteFailures:Ljava/util/List; .line 62 const/4 v0, 0x0 iput-boolean v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->exitWhenFinished:Z .line 239 return-void .end method .method private declared-synchronized addTracker(Ljava/lang/String;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .locals 3 .param p1, "path" # Ljava/lang/String; .param p2, "marker" # Ljava/lang/Object; .param p3, "deleteStrategy" # Lorg/apache/commons/io/FileDeleteStrategy; monitor-enter p0 .line 138 :try_start_0 iget-boolean v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->exitWhenFinished:Z if-nez v0, :cond_1 .line 141 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; if-nez v0, :cond_0 .line 142 new-instance v0, Lorg/apache/commons/io/FileCleaningTracker$Reaper; invoke-direct {v0, p0}, Lorg/apache/commons/io/FileCleaningTracker$Reaper;-><init>(Lorg/apache/commons/io/FileCleaningTracker;)V iput-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; .line 143 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; invoke-virtual {v0}, Ljava/lang/Thread;->start()V .line 145 .end local p0 # "this":Lorg/apache/commons/io/FileCleaningTracker; :cond_0 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->trackers:Ljava/util/Collection; new-instance v1, Lorg/apache/commons/io/FileCleaningTracker$Tracker; iget-object v2, p0, Lorg/apache/commons/io/FileCleaningTracker;->q:Ljava/lang/ref/ReferenceQueue; invoke-direct {v1, p1, p3, p2, v2}, Lorg/apache/commons/io/FileCleaningTracker$Tracker;-><init>(Ljava/lang/String;Lorg/apache/commons/io/FileDeleteStrategy;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V invoke-interface {v0, v1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 146 monitor-exit p0 return-void .line 139 :cond_1 :try_start_1 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "No new trackers can be added once exitWhenFinished() is called" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V throw v0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 137 .end local p1 # "path":Ljava/lang/String; .end local p2 # "marker":Ljava/lang/Object; .end local p3 # "deleteStrategy":Lorg/apache/commons/io/FileDeleteStrategy; :catchall_0 move-exception p1 monitor-exit p0 throw p1 .end method # virtual methods .method public declared-synchronized exitWhenFinished()V .locals 2 monitor-enter p0 .line 192 const/4 v0, 0x1 :try_start_0 iput-boolean v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->exitWhenFinished:Z .line 193 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; if-eqz v0, :cond_0 .line 194 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; monitor-enter v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_2 .line 195 :try_start_1 iget-object v1, p0, Lorg/apache/commons/io/FileCleaningTracker;->reaper:Ljava/lang/Thread; invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V .line 196 monitor-exit v0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 goto :goto_1 :catchall_0 move-exception v1 :goto_0 :try_start_2 monitor-exit v0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 :try_start_3 throw v1 :try_end_3 .catchall {:try_start_3 .. :try_end_3} :catchall_2 .end local p0 # "this":Lorg/apache/commons/io/FileCleaningTracker; :catchall_1 move-exception v1 goto :goto_0 .line 198 :cond_0 :goto_1 monitor-exit p0 return-void .line 191 :catchall_2 move-exception v0 monitor-exit p0 goto :goto_3 :goto_2 throw v0 :goto_3 goto :goto_2 .end method .method public getDeleteFailures()Ljava/util/List; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/List<", "Ljava/lang/String;", ">;" } .end annotation .line 166 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->deleteFailures:Ljava/util/List; return-object v0 .end method .method public getTrackCount()I .locals 1 .line 156 iget-object v0, p0, Lorg/apache/commons/io/FileCleaningTracker;->trackers:Ljava/util/Collection; invoke-interface {v0}, Ljava/util/Collection;->size()I move-result v0 return v0 .end method .method public track(Ljava/io/File;Ljava/lang/Object;)V .locals 1 .param p1, "file" # Ljava/io/File; .param p2, "marker" # Ljava/lang/Object; .line 79 const/4 v0, 0x0 check-cast v0, Lorg/apache/commons/io/FileDeleteStrategy; invoke-virtual {p0, p1, p2, v0}, Lorg/apache/commons/io/FileCleaningTracker;->track(Ljava/io/File;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .line 80 return-void .end method .method public track(Ljava/io/File;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .locals 2 .param p1, "file" # Ljava/io/File; .param p2, "marker" # Ljava/lang/Object; .param p3, "deleteStrategy" # Lorg/apache/commons/io/FileDeleteStrategy; .line 93 if-eqz p1, :cond_0 .line 96 invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String; move-result-object v0 invoke-direct {p0, v0, p2, p3}, Lorg/apache/commons/io/FileCleaningTracker;->addTracker(Ljava/lang/String;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .line 97 return-void .line 94 :cond_0 new-instance v0, Ljava/lang/NullPointerException; const-string v1, "The file must not be null" invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V throw v0 .end method .method public track(Ljava/lang/String;Ljava/lang/Object;)V .locals 1 .param p1, "path" # Ljava/lang/String; .param p2, "marker" # Ljava/lang/Object; .line 109 const/4 v0, 0x0 check-cast v0, Lorg/apache/commons/io/FileDeleteStrategy; invoke-virtual {p0, p1, p2, v0}, Lorg/apache/commons/io/FileCleaningTracker;->track(Ljava/lang/String;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .line 110 return-void .end method .method public track(Ljava/lang/String;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .locals 2 .param p1, "path" # Ljava/lang/String; .param p2, "marker" # Ljava/lang/Object; .param p3, "deleteStrategy" # Lorg/apache/commons/io/FileDeleteStrategy; .line 123 if-eqz p1, :cond_0 .line 126 invoke-direct {p0, p1, p2, p3}, Lorg/apache/commons/io/FileCleaningTracker;->addTracker(Ljava/lang/String;Ljava/lang/Object;Lorg/apache/commons/io/FileDeleteStrategy;)V .line 127 return-void .line 124 :cond_0 new-instance v0, Ljava/lang/NullPointerException; const-string v1, "The path must not be null" invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V throw v0 .end method