Path: blob/master/Compiled_apk/smali/org/apache/commons/io/FileSystemUtils.smali
2476 views
.class public Lorg/apache/commons/io/FileSystemUtils; .super Ljava/lang/Object; .source "FileSystemUtils.java" # static fields .field private static final DF:Ljava/lang/String; .field private static final INIT_PROBLEM:I = -0x1 .field private static final INSTANCE:Lorg/apache/commons/io/FileSystemUtils; .field private static final OS:I .field private static final OTHER:I = 0x0 .field private static final POSIX_UNIX:I = 0x3 .field private static final UNIX:I = 0x2 .field private static final WINDOWS:I = 0x1 # direct methods .method static constructor <clinit>()V .locals 5 .line 54 new-instance v0, Lorg/apache/commons/io/FileSystemUtils; invoke-direct {v0}, Lorg/apache/commons/io/FileSystemUtils;-><init>()V sput-object v0, Lorg/apache/commons/io/FileSystemUtils;->INSTANCE:Lorg/apache/commons/io/FileSystemUtils; .line 74 const/4 v0, 0x0 .line 75 .local v0, "os":I const-string v1, "df" .line 77 .local v1, "dfPath":Ljava/lang/String; :try_start_0 const-string v2, "os.name" invoke-static {v2}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 78 .local v2, "osName":Ljava/lang/String; if-eqz v2, :cond_7 .line 81 sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; invoke-virtual {v2, v3}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object v3 move-object v2, v3 .line 83 const-string v3, "windows" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 const/4 v4, -0x1 if-eq v3, v4, :cond_0 .line 84 const/4 v0, 0x1 goto/16 :goto_3 .line 85 :cond_0 const-string v3, "linux" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "mpe/ix" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "freebsd" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "irix" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "digital unix" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "unix" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_6 const-string v3, "mac os x" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-eq v3, v4, :cond_1 goto :goto_2 .line 93 :cond_1 const-string v3, "sun os" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_5 const-string v3, "sunos" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_5 const-string v3, "solaris" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-eq v3, v4, :cond_2 goto :goto_1 .line 98 :cond_2 const-string v3, "hp-ux" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-ne v3, v4, :cond_4 const-string v3, "aix" invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v3 if-eq v3, v4, :cond_3 goto :goto_0 .line 102 :cond_3 const/4 v0, 0x0 goto :goto_3 .line 100 :cond_4 :goto_0 const/4 v0, 0x3 goto :goto_3 .line 96 :cond_5 :goto_1 const/4 v0, 0x3 .line 97 const-string v3, "/usr/xpg4/bin/df" move-object v1, v3 goto :goto_3 .line 92 :cond_6 :goto_2 const/4 v0, 0x2 .line 107 .end local v2 # "osName":Ljava/lang/String; :goto_3 goto :goto_4 .line 79 .restart local v2 # "osName":Ljava/lang/String; :cond_7 new-instance v3, Ljava/io/IOException; const-string v4, "os.name not found" invoke-direct {v3, v4}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V .end local v0 # "os":I .end local v1 # "dfPath":Ljava/lang/String; throw v3 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .line 105 .end local v2 # "osName":Ljava/lang/String; .restart local v0 # "os":I .restart local v1 # "dfPath":Ljava/lang/String; :catch_0 move-exception v2 .line 106 .local v2, "ex":Ljava/lang/Exception; const/4 v0, -0x1 .line 108 .end local v2 # "ex":Ljava/lang/Exception; :goto_4 sput v0, Lorg/apache/commons/io/FileSystemUtils;->OS:I .line 109 sput-object v1, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; .line 110 .end local v0 # "os":I .end local v1 # "dfPath":Ljava/lang/String; return-void .end method .method public constructor <init>()V .locals 0 .line 116 invoke-direct {p0}, Ljava/lang/Object;-><init>()V .line 117 return-void .end method .method public static freeSpace(Ljava/lang/String;)J .locals 6 .param p0, "path" # Ljava/lang/String; .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .annotation runtime Ljava/lang/Deprecated; .end annotation .line 148 sget-object v0, Lorg/apache/commons/io/FileSystemUtils;->INSTANCE:Lorg/apache/commons/io/FileSystemUtils; sget v2, Lorg/apache/commons/io/FileSystemUtils;->OS:I const/4 v3, 0x0 const-wide/16 v4, -0x1 move-object v1, p0 invoke-virtual/range {v0 .. v5}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceOS(Ljava/lang/String;IZJ)J move-result-wide v0 return-wide v0 .end method .method public static freeSpaceKb()J .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 222 const-wide/16 v0, -0x1 invoke-static {v0, v1}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceKb(J)J move-result-wide v0 return-wide v0 .end method .method public static freeSpaceKb(J)J .locals 2 .param p0, "timeout" # J .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 240 new-instance v0, Ljava/io/File; const-string v1, "." invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; move-result-object v0 invoke-static {v0, p0, p1}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceKb(Ljava/lang/String;J)J move-result-wide v0 return-wide v0 .end method .method public static freeSpaceKb(Ljava/lang/String;)J .locals 2 .param p0, "path" # Ljava/lang/String; .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 177 const-wide/16 v0, -0x1 invoke-static {p0, v0, v1}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceKb(Ljava/lang/String;J)J move-result-wide v0 return-wide v0 .end method .method public static freeSpaceKb(Ljava/lang/String;J)J .locals 6 .param p0, "path" # Ljava/lang/String; .param p1, "timeout" # J .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 206 sget-object v0, Lorg/apache/commons/io/FileSystemUtils;->INSTANCE:Lorg/apache/commons/io/FileSystemUtils; sget v2, Lorg/apache/commons/io/FileSystemUtils;->OS:I const/4 v3, 0x1 move-object v1, p0 move-wide v4, p1 invoke-virtual/range {v0 .. v5}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceOS(Ljava/lang/String;IZJ)J move-result-wide v0 return-wide v0 .end method # virtual methods .method freeSpaceOS(Ljava/lang/String;IZJ)J .locals 8 .param p1, "path" # Ljava/lang/String; .param p2, "os" # I .param p3, "kb" # Z .param p4, "timeout" # J .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 265 if-eqz p1, :cond_5 .line 268 if-eqz p2, :cond_4 const/4 v0, 0x1 if-eq p2, v0, :cond_2 const/4 v0, 0x2 if-eq p2, v0, :cond_1 const/4 v0, 0x3 if-ne p2, v0, :cond_0 .line 274 const/4 v4, 0x1 move-object v1, p0 move-object v2, p1 move v3, p3 move-wide v5, p4 invoke-virtual/range {v1 .. v6}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceUnix(Ljava/lang/String;ZZJ)J move-result-wide v0 return-wide v0 .line 278 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Exception caught when determining operating system" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V throw v0 .line 272 :cond_1 const/4 v5, 0x0 move-object v2, p0 move-object v3, p1 move v4, p3 move-wide v6, p4 invoke-virtual/range {v2 .. v7}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceUnix(Ljava/lang/String;ZZJ)J move-result-wide v0 return-wide v0 .line 270 :cond_2 invoke-virtual {p0, p1, p4, p5}, Lorg/apache/commons/io/FileSystemUtils;->freeSpaceWindows(Ljava/lang/String;J)J move-result-wide v0 if-eqz p3, :cond_3 const-wide/16 v2, 0x400 div-long/2addr v0, v2 :cond_3 return-wide v0 .line 276 :cond_4 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Unsupported operating system" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V throw v0 .line 266 :cond_5 new-instance v0, Ljava/lang/IllegalArgumentException; const-string v1, "Path must not be empty" invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v0 .end method .method freeSpaceUnix(Ljava/lang/String;ZZJ)J .locals 16 .param p1, "path" # Ljava/lang/String; .param p2, "kb" # Z .param p3, "posix" # Z .param p4, "timeout" # J .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 386 move-object/from16 v0, p0 move-object/from16 v1, p1 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v2 if-eqz v2, :cond_6 .line 391 const-string v2, "-" .line 392 .local v2, "flags":Ljava/lang/String; if-eqz p2, :cond_0 .line 393 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "k" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 .line 395 :cond_0 if-eqz p3, :cond_1 .line 396 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "P" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 .line 398 :cond_1 invoke-virtual {v2}, Ljava/lang/String;->length()I move-result v3 const/4 v4, 0x0 const/4 v5, 0x3 const/4 v6, 0x2 const/4 v7, 0x1 if-le v3, v7, :cond_2 new-array v3, v5, [Ljava/lang/String; sget-object v8, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; aput-object v8, v3, v4 aput-object v2, v3, v7 aput-object v1, v3, v6 goto :goto_0 :cond_2 new-array v3, v6, [Ljava/lang/String; sget-object v8, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; aput-object v8, v3, v4 aput-object v1, v3, v7 .line 402 .local v3, "cmdAttribs":[Ljava/lang/String; :goto_0 move-wide/from16 v8, p4 invoke-virtual {v0, v3, v5, v8, v9}, Lorg/apache/commons/io/FileSystemUtils;->performCommand([Ljava/lang/String;IJ)Ljava/util/List; move-result-object v4 .line 403 .local v4, "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" invoke-interface {v4}, Ljava/util/List;->size()I move-result v10 const-string v11, "for path \'" const-string v12, "Command line \'" if-lt v10, v6, :cond_5 .line 409 invoke-interface {v4, v7}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v10 check-cast v10, Ljava/lang/String; .line 412 .local v10, "line2":Ljava/lang/String; new-instance v13, Ljava/util/StringTokenizer; const-string v14, " " invoke-direct {v13, v10, v14}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V .line 413 .local v13, "tok":Ljava/util/StringTokenizer; invoke-virtual {v13}, Ljava/util/StringTokenizer;->countTokens()I move-result v15 const/4 v6, 0x4 if-ge v15, v6, :cond_4 .line 415 invoke-virtual {v13}, Ljava/util/StringTokenizer;->countTokens()I move-result v6 if-ne v6, v7, :cond_3 invoke-interface {v4}, Ljava/util/List;->size()I move-result v6 if-lt v6, v5, :cond_3 .line 416 const/4 v5, 0x2 invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v5 check-cast v5, Ljava/lang/String; .line 417 .local v5, "line3":Ljava/lang/String; new-instance v6, Ljava/util/StringTokenizer; invoke-direct {v6, v5, v14}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V move-object v13, v6 .line 418 .end local v5 # "line3":Ljava/lang/String; goto :goto_1 .line 419 :cond_3 new-instance v5, Ljava/io/IOException; new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v6, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v7, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, "\' did not return data as expected " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, "\'- check path is valid" invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V throw v5 .line 424 :cond_4 invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; .line 426 :goto_1 invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; .line 427 invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; .line 428 invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String; move-result-object v5 .line 429 .local v5, "freeSpace":Ljava/lang/String; invoke-virtual {v0, v5, v1}, Lorg/apache/commons/io/FileSystemUtils;->parseBytes(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v6 return-wide v6 .line 405 .end local v5 # "freeSpace":Ljava/lang/String; .end local v10 # "line2":Ljava/lang/String; .end local v13 # "tok":Ljava/util/StringTokenizer; :cond_5 new-instance v5, Ljava/io/IOException; new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v6, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v7, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, "\' did not return info as expected " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, "\'- response was " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V throw v5 .line 387 .end local v2 # "flags":Ljava/lang/String; .end local v3 # "cmdAttribs":[Ljava/lang/String; .end local v4 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" :cond_6 move-wide/from16 v8, p4 new-instance v2, Ljava/lang/IllegalArgumentException; const-string v3, "Path must not be empty" invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V throw v2 .end method .method freeSpaceWindows(Ljava/lang/String;J)J .locals 6 .param p1, "path" # Ljava/lang/String; .param p2, "timeout" # J .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 294 const/4 v0, 0x0 invoke-static {p1, v0}, Lorg/apache/commons/io/FilenameUtils;->normalize(Ljava/lang/String;Z)Ljava/lang/String; move-result-object p1 .line 295 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 if-lez v1, :cond_0 invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C move-result v1 const/16 v2, 0x22 if-eq v1, v2, :cond_0 .line 296 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V const-string v2, "\"" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 .line 300 :cond_0 const/4 v1, 0x3 new-array v1, v1, [Ljava/lang/String; const-string v2, "cmd.exe" aput-object v2, v1, v0 const/4 v0, 0x1 const-string v2, "/C" aput-object v2, v1, v0 const/4 v2, 0x2 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V const-string v4, "dir /-c " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 aput-object v3, v1, v2 .line 303 .local v1, "cmdAttribs":[Ljava/lang/String; const v2, 0x7fffffff invoke-virtual {p0, v1, v2, p2, p3}, Lorg/apache/commons/io/FileSystemUtils;->performCommand([Ljava/lang/String;IJ)Ljava/util/List; move-result-object v2 .line 309 .local v2, "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" invoke-interface {v2}, Ljava/util/List;->size()I move-result v3 sub-int/2addr v3, v0 .local v3, "i":I :goto_0 if-ltz v3, :cond_2 .line 310 invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/String; .line 311 .local v0, "line":Ljava/lang/String; invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v4 if-lez v4, :cond_1 .line 312 invoke-virtual {p0, v0, p1}, Lorg/apache/commons/io/FileSystemUtils;->parseDir(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v4 return-wide v4 .line 309 .end local v0 # "line":Ljava/lang/String; :cond_1 add-int/lit8 v3, v3, -0x1 goto :goto_0 .line 316 .end local v3 # "i":I :cond_2 new-instance v0, Ljava/io/IOException; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V const-string v4, "Command line \'dir /-c\' did not return any info for path \'" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v4, "\'" invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-direct {v0, v3}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V goto :goto_2 :goto_1 throw v0 :goto_2 goto :goto_1 .end method .method openProcess([Ljava/lang/String;)Ljava/lang/Process; .locals 1 .param p1, "cmdAttribs" # [Ljava/lang/String; .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 541 invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; move-result-object v0 invoke-virtual {v0, p1}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process; move-result-object v0 return-object v0 .end method .method parseBytes(Ljava/lang/String;Ljava/lang/String;)J .locals 8 .param p1, "freeSpace" # Ljava/lang/String; .param p2, "path" # Ljava/lang/String; .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 443 const-string v0, "\'- check path is valid" const-string v1, "for path \'" const-string v2, "Command line \'" :try_start_0 invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v3 .line 444 .local v3, "bytes":J const-wide/16 v5, 0x0 cmp-long v7, v3, v5 if-ltz v7, :cond_0 .line 449 return-wide v3 .line 445 :cond_0 new-instance v5, Ljava/io/IOException; new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v7, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, "\' did not find free space in response " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V .end local p1 # "freeSpace":Ljava/lang/String; .end local p2 # "path":Ljava/lang/String; throw v5 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 .line 451 .end local v3 # "bytes":J .restart local p1 # "freeSpace":Ljava/lang/String; .restart local p2 # "path":Ljava/lang/String; :catch_0 move-exception v3 .line 452 .local v3, "ex":Ljava/lang/NumberFormatException; new-instance v4, Lorg/apache/commons/io/IOExceptionWithCause; new-instance v5, Ljava/lang/StringBuilder; invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v2, Lorg/apache/commons/io/FileSystemUtils;->DF:Ljava/lang/String; invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "\' did not return numeric data as expected " invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v4, v0, v3}, Lorg/apache/commons/io/IOExceptionWithCause;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V throw v4 .end method .method parseDir(Ljava/lang/String;Ljava/lang/String;)J .locals 8 .param p1, "line" # Ljava/lang/String; .param p2, "path" # Ljava/lang/String; .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 334 const/4 v0, 0x0 .line 335 .local v0, "bytesStart":I const/4 v1, 0x0 .line 336 .local v1, "bytesEnd":I invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v2 add-int/lit8 v2, v2, -0x1 .line 337 .local v2, "j":I :goto_0 if-ltz v2, :cond_1 .line 338 invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C move-result v3 .line 339 .local v3, "c":C invoke-static {v3}, Ljava/lang/Character;->isDigit(C)Z move-result v4 if-eqz v4, :cond_0 .line 342 add-int/lit8 v1, v2, 0x1 .line 343 goto :goto_1 .line 345 :cond_0 nop .end local v3 # "c":C add-int/lit8 v2, v2, -0x1 .line 346 goto :goto_0 .line 347 :cond_1 :goto_1 const/16 v3, 0x2e const/16 v4, 0x2c if-ltz v2, :cond_3 .line 348 invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C move-result v5 .line 349 .local v5, "c":C invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z move-result v6 if-nez v6, :cond_2 if-eq v5, v4, :cond_2 if-eq v5, v3, :cond_2 .line 352 add-int/lit8 v0, v2, 0x1 .line 353 goto :goto_2 .line 355 :cond_2 nop .end local v5 # "c":C add-int/lit8 v2, v2, -0x1 .line 356 goto :goto_1 .line 357 :cond_3 :goto_2 if-ltz v2, :cond_7 .line 364 new-instance v5, Ljava/lang/StringBuilder; invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v6 invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V .line 365 .local v5, "buf":Ljava/lang/StringBuilder; const/4 v6, 0x0 .local v6, "k":I :goto_3 invoke-virtual {v5}, Ljava/lang/StringBuilder;->length()I move-result v7 if-ge v6, v7, :cond_6 .line 366 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->charAt(I)C move-result v7 if-eq v7, v4, :cond_4 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->charAt(I)C move-result v7 if-ne v7, v3, :cond_5 .line 367 :cond_4 add-int/lit8 v7, v6, -0x1 .end local v6 # "k":I .local v7, "k":I invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder; move v6, v7 .line 365 .end local v7 # "k":I .restart local v6 # "k":I :cond_5 add-int/lit8 v6, v6, 0x1 goto :goto_3 .line 370 .end local v6 # "k":I :cond_6 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-virtual {p0, v3, p2}, Lorg/apache/commons/io/FileSystemUtils;->parseBytes(Ljava/lang/String;Ljava/lang/String;)J move-result-wide v3 return-wide v3 .line 358 .end local v5 # "buf":Ljava/lang/StringBuilder; :cond_7 new-instance v3, Ljava/io/IOException; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V const-string v5, "Command line \'dir /-c\' did not return valid info for path \'" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v5, "\'" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-direct {v3, v4}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V goto :goto_5 :goto_4 throw v3 :goto_5 goto :goto_4 .end method .method performCommand([Ljava/lang/String;IJ)Ljava/util/List; .locals 11 .param p1, "cmdAttribs" # [Ljava/lang/String; .param p2, "max" # I .param p3, "timeout" # J .annotation system Ldalvik/annotation/Signature; value = { "([", "Ljava/lang/String;", "IJ)", "Ljava/util/List<", "Ljava/lang/String;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 478 new-instance v0, Ljava/util/ArrayList; const/16 v1, 0x14 invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V .line 479 .local v0, "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" const/4 v1, 0x0 .line 480 .local v1, "proc":Ljava/lang/Process; const/4 v2, 0x0 .line 481 .local v2, "in":Ljava/io/InputStream; const/4 v3, 0x0 .line 482 .local v3, "out":Ljava/io/OutputStream; const/4 v4, 0x0 .line 483 .local v4, "err":Ljava/io/InputStream; const/4 v5, 0x0 .line 486 .local v5, "inr":Ljava/io/BufferedReader; :try_start_0 invoke-static {p3, p4}, Lorg/apache/commons/io/ThreadMonitor;->start(J)Ljava/lang/Thread; move-result-object v6 .line 488 .local v6, "monitor":Ljava/lang/Thread; invoke-virtual {p0, p1}, Lorg/apache/commons/io/FileSystemUtils;->openProcess([Ljava/lang/String;)Ljava/lang/Process; move-result-object v7 move-object v1, v7 .line 489 invoke-virtual {v1}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; move-result-object v7 move-object v2, v7 .line 490 invoke-virtual {v1}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream; move-result-object v7 move-object v3, v7 .line 491 invoke-virtual {v1}, Ljava/lang/Process;->getErrorStream()Ljava/io/InputStream; move-result-object v7 move-object v4, v7 .line 492 new-instance v7, Ljava/io/BufferedReader; new-instance v8, Ljava/io/InputStreamReader; invoke-direct {v8, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V invoke-direct {v7, v8}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V move-object v5, v7 .line 493 invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; move-result-object v7 .line 494 .local v7, "line":Ljava/lang/String; :goto_0 if-eqz v7, :cond_0 invoke-interface {v0}, Ljava/util/List;->size()I move-result v8 if-ge v8, p2, :cond_0 .line 495 sget-object v8, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; invoke-virtual {v7, v8}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object v8 invoke-virtual {v8}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v8 move-object v7, v8 .line 496 invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 497 invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; move-result-object v8 move-object v7, v8 goto :goto_0 .line 500 :cond_0 invoke-virtual {v1}, Ljava/lang/Process;->waitFor()I .line 502 invoke-static {v6}, Lorg/apache/commons/io/ThreadMonitor;->stop(Ljava/lang/Thread;)V .line 504 invoke-virtual {v1}, Ljava/lang/Process;->exitValue()I move-result v8 if-nez v8, :cond_3 .line 510 invoke-interface {v0}, Ljava/util/List;->size()I move-result v8 :try_end_0 .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-eqz v8, :cond_2 .line 516 nop .line 523 invoke-static {v2}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/InputStream;)V .line 524 invoke-static {v3}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/OutputStream;)V .line 525 invoke-static {v4}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/InputStream;)V .line 526 invoke-static {v5}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/Reader;)V .line 527 if-eqz v1, :cond_1 .line 528 invoke-virtual {v1}, Ljava/lang/Process;->destroy()V :cond_1 return-object v0 .line 512 :cond_2 :try_start_1 new-instance v8, Ljava/io/IOException; new-instance v9, Ljava/lang/StringBuilder; invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V const-string v10, "Command line did not return any info for command " invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v10 invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v9 invoke-direct {v8, v9}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V .end local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .end local v1 # "proc":Ljava/lang/Process; .end local v2 # "in":Ljava/io/InputStream; .end local v3 # "out":Ljava/io/OutputStream; .end local v4 # "err":Ljava/io/InputStream; .end local v5 # "inr":Ljava/io/BufferedReader; .end local p1 # "cmdAttribs":[Ljava/lang/String; .end local p2 # "max":I .end local p3 # "timeout":J throw v8 .line 506 .restart local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .restart local v1 # "proc":Ljava/lang/Process; .restart local v2 # "in":Ljava/io/InputStream; .restart local v3 # "out":Ljava/io/OutputStream; .restart local v4 # "err":Ljava/io/InputStream; .restart local v5 # "inr":Ljava/io/BufferedReader; .restart local p1 # "cmdAttribs":[Ljava/lang/String; .restart local p2 # "max":I .restart local p3 # "timeout":J :cond_3 new-instance v8, Ljava/io/IOException; new-instance v9, Ljava/lang/StringBuilder; invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V const-string v10, "Command line returned OS error code \'" invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/Process;->exitValue()I move-result v10 invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v10, "\' for command " invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v10 invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v9 invoke-direct {v8, v9}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V .end local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .end local v1 # "proc":Ljava/lang/Process; .end local v2 # "in":Ljava/io/InputStream; .end local v3 # "out":Ljava/io/OutputStream; .end local v4 # "err":Ljava/io/InputStream; .end local v5 # "inr":Ljava/io/BufferedReader; .end local p1 # "cmdAttribs":[Ljava/lang/String; .end local p2 # "max":I .end local p3 # "timeout":J throw v8 :try_end_1 .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 523 .end local v6 # "monitor":Ljava/lang/Thread; .end local v7 # "line":Ljava/lang/String; .restart local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .restart local v1 # "proc":Ljava/lang/Process; .restart local v2 # "in":Ljava/io/InputStream; .restart local v3 # "out":Ljava/io/OutputStream; .restart local v4 # "err":Ljava/io/InputStream; .restart local v5 # "inr":Ljava/io/BufferedReader; .restart local p1 # "cmdAttribs":[Ljava/lang/String; .restart local p2 # "max":I .restart local p3 # "timeout":J :catchall_0 move-exception v6 goto :goto_1 .line 518 :catch_0 move-exception v6 .line 519 .local v6, "ex":Ljava/lang/InterruptedException; :try_start_2 new-instance v7, Lorg/apache/commons/io/IOExceptionWithCause; new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V const-string v9, "Command line threw an InterruptedException for command " invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; move-result-object v9 invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; const-string v9, " timeout=" invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8, p3, p4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 invoke-direct {v7, v8, v6}, Lorg/apache/commons/io/IOExceptionWithCause;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V .end local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .end local v1 # "proc":Ljava/lang/Process; .end local v2 # "in":Ljava/io/InputStream; .end local v3 # "out":Ljava/io/OutputStream; .end local v4 # "err":Ljava/io/InputStream; .end local v5 # "inr":Ljava/io/BufferedReader; .end local p1 # "cmdAttribs":[Ljava/lang/String; .end local p2 # "max":I .end local p3 # "timeout":J throw v7 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 .line 523 .end local v6 # "ex":Ljava/lang/InterruptedException; .restart local v0 # "lines":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;" .restart local v1 # "proc":Ljava/lang/Process; .restart local v2 # "in":Ljava/io/InputStream; .restart local v3 # "out":Ljava/io/OutputStream; .restart local v4 # "err":Ljava/io/InputStream; .restart local v5 # "inr":Ljava/io/BufferedReader; .restart local p1 # "cmdAttribs":[Ljava/lang/String; .restart local p2 # "max":I .restart local p3 # "timeout":J :goto_1 invoke-static {v2}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/InputStream;)V .line 524 invoke-static {v3}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/OutputStream;)V .line 525 invoke-static {v4}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/InputStream;)V .line 526 invoke-static {v5}, Lorg/apache/commons/io/IOUtils;->closeQuietly(Ljava/io/Reader;)V .line 527 if-eqz v1, :cond_4 .line 528 invoke-virtual {v1}, Ljava/lang/Process;->destroy()V :cond_4 goto :goto_3 :goto_2 throw v6 :goto_3 goto :goto_2 .end method