public class oadd.org.apache.hadoop.util.DiskChecker extends java.lang.Object
{
public static final org.slf4j.Logger LOG;
private static java.util.concurrent.atomic.AtomicReference fileIoProvider;
private static final java.lang.String DISK_IO_FILE_PREFIX;
static final int DISK_IO_MAX_ITERATIONS;
public void <init>()
{
oadd.org.apache.hadoop.util.DiskChecker v;
v := @this: oadd.org.apache.hadoop.util.DiskChecker;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static void checkDir(java.io.File) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException
{
java.io.File v;
v := @parameter: java.io.File;
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkDirInternal(java.io.File)>(v);
return;
}
public static void checkDirWithDiskIo(java.io.File) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException
{
java.io.File v;
v := @parameter: java.io.File;
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkDirInternal(java.io.File)>(v);
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void doDiskIo(java.io.File)>(v);
return;
}
private static void checkDirInternal(java.io.File) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException
{
oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException v;
java.lang.String v, v;
java.io.File v;
boolean v;
v := @parameter: java.io.File;
v = staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: boolean mkdirsWithExistsCheck(java.io.File)>(v);
if v != 0 goto label;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
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[])>("Cannot create directory: \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkAccessByFileMethods(java.io.File)>(v);
return;
}
public static void checkDir(oadd.org.apache.hadoop.fs.LocalFileSystem, oadd.org.apache.hadoop.fs.Path, oadd.org.apache.hadoop.fs.permission.FsPermission) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException, java.io.IOException
{
oadd.org.apache.hadoop.fs.permission.FsPermission v;
oadd.org.apache.hadoop.fs.LocalFileSystem v;
oadd.org.apache.hadoop.fs.Path v;
v := @parameter: oadd.org.apache.hadoop.fs.LocalFileSystem;
v := @parameter: oadd.org.apache.hadoop.fs.Path;
v := @parameter: oadd.org.apache.hadoop.fs.permission.FsPermission;
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkDirInternal(oadd.org.apache.hadoop.fs.LocalFileSystem,oadd.org.apache.hadoop.fs.Path,oadd.org.apache.hadoop.fs.permission.FsPermission)>(v, v, v);
return;
}
public static void checkDirWithDiskIo(oadd.org.apache.hadoop.fs.LocalFileSystem, oadd.org.apache.hadoop.fs.Path, oadd.org.apache.hadoop.fs.permission.FsPermission) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException, java.io.IOException
{
oadd.org.apache.hadoop.fs.permission.FsPermission v;
oadd.org.apache.hadoop.fs.LocalFileSystem v;
oadd.org.apache.hadoop.fs.Path v;
java.io.File v;
v := @parameter: oadd.org.apache.hadoop.fs.LocalFileSystem;
v := @parameter: oadd.org.apache.hadoop.fs.Path;
v := @parameter: oadd.org.apache.hadoop.fs.permission.FsPermission;
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkDirInternal(oadd.org.apache.hadoop.fs.LocalFileSystem,oadd.org.apache.hadoop.fs.Path,oadd.org.apache.hadoop.fs.permission.FsPermission)>(v, v, v);
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.LocalFileSystem: java.io.File pathToFile(oadd.org.apache.hadoop.fs.Path)>(v);
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void doDiskIo(java.io.File)>(v);
return;
}
private static void checkDirInternal(oadd.org.apache.hadoop.fs.LocalFileSystem, oadd.org.apache.hadoop.fs.Path, oadd.org.apache.hadoop.fs.permission.FsPermission) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException, java.io.IOException
{
oadd.org.apache.hadoop.fs.permission.FsPermission v;
oadd.org.apache.hadoop.fs.LocalFileSystem v;
oadd.org.apache.hadoop.fs.Path v;
java.io.File v;
v := @parameter: oadd.org.apache.hadoop.fs.LocalFileSystem;
v := @parameter: oadd.org.apache.hadoop.fs.Path;
v := @parameter: oadd.org.apache.hadoop.fs.permission.FsPermission;
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void mkdirsWithExistsAndPermissionCheck(oadd.org.apache.hadoop.fs.LocalFileSystem,oadd.org.apache.hadoop.fs.Path,oadd.org.apache.hadoop.fs.permission.FsPermission)>(v, v, v);
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.LocalFileSystem: java.io.File pathToFile(oadd.org.apache.hadoop.fs.Path)>(v);
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void checkAccessByFileMethods(java.io.File)>(v);
return;
}
private static void checkAccessByFileMethods(java.io.File) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException
{
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v, v;
oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException v, v, v, v;
java.io.File v;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
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[])>("Not a directory: \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.fs.FileUtil: boolean canRead(java.io.File)>(v);
if v != 0 goto label;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
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[])>("Directory is not readable: \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.fs.FileUtil: boolean canWrite(java.io.File)>(v);
if v != 0 goto label;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
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[])>("Directory is not writable: \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <oadd.org.apache.hadoop.fs.FileUtil: boolean canExecute(java.io.File)>(v);
if v != 0 goto label;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
v = virtualinvoke v.<java.io.File: java.lang.String toString()>();
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[])>("Directory is not executable: \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private static boolean mkdirsWithExistsCheck(java.io.File)
{
java.io.IOException v;
java.io.File v, v, v;
java.lang.String v;
boolean v, v, v, v, v, v;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: boolean mkdir()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
return 1;
label:
v = virtualinvoke v.<java.io.File: java.io.File getCanonicalFile()>();
label:
goto label;
label:
v := @caughtexception;
return 0;
label:
v = virtualinvoke v.<java.io.File: java.lang.String getParent()>();
if v == null goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: boolean mkdirsWithExistsCheck(java.io.File)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean mkdir()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch java.io.IOException from label to label with label;
}
static void mkdirsWithExistsAndPermissionCheck(oadd.org.apache.hadoop.fs.LocalFileSystem, oadd.org.apache.hadoop.fs.Path, oadd.org.apache.hadoop.fs.permission.FsPermission) throws java.io.IOException
{
oadd.org.apache.hadoop.fs.permission.FsPermission v, v;
oadd.org.apache.hadoop.fs.LocalFileSystem v;
java.io.File v;
oadd.org.apache.hadoop.fs.FileStatus v;
oadd.org.apache.hadoop.fs.Path v;
boolean v, v, v;
v := @parameter: oadd.org.apache.hadoop.fs.LocalFileSystem;
v := @parameter: oadd.org.apache.hadoop.fs.Path;
v := @parameter: oadd.org.apache.hadoop.fs.permission.FsPermission;
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.LocalFileSystem: java.io.File pathToFile(oadd.org.apache.hadoop.fs.Path)>(v);
v = 0;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: boolean mkdirsWithExistsCheck(java.io.File)>(v);
label:
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.LocalFileSystem: oadd.org.apache.hadoop.fs.FileStatus getFileStatus(oadd.org.apache.hadoop.fs.Path)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.FileStatus: oadd.org.apache.hadoop.fs.permission.FsPermission getPermission()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.fs.permission.FsPermission: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
virtualinvoke v.<oadd.org.apache.hadoop.fs.LocalFileSystem: void setPermission(oadd.org.apache.hadoop.fs.Path,oadd.org.apache.hadoop.fs.permission.FsPermission)>(v, v);
label:
return;
}
private static void doDiskIo(java.io.File) throws oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException
{
oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException v;
java.io.IOException v, v, v;
java.io.File v, v;
int v, v;
java.lang.String v;
v := @parameter: java.io.File;
label:
v = null;
v = 0;
label:
if v >= 3 goto label;
v = v + 1;
v = staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: java.io.File getFileNameForDiskIoCheck(java.io.File,int)>(v, v);
label:
staticinvoke <oadd.org.apache.hadoop.util.DiskChecker: void diskIoCheckWithoutNativeIo(java.io.File)>(v);
label:
return;
label:
v := @caughtexception;
v = v;
v = v + 1;
goto label;
label:
throw v;
label:
v := @caughtexception;
v = new oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException;
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[])>("Error checking directory \u0001");
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DiskErrorException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
private static void diskIoCheckWithoutNativeIo(java.io.File) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.io.FileOutputStream v;
java.io.IOException v;
java.util.concurrent.atomic.AtomicReference v;
java.io.File v;
java.io.FileDescriptor v;
java.io.Closeable[] v, v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @parameter: java.io.File;
v = null;
label:
v = <oadd.org.apache.hadoop.util.DiskChecker: java.util.concurrent.atomic.AtomicReference fileIoProvider>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = interfaceinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider: java.io.FileOutputStream get(java.io.File)>(v);
v = newarray (byte)[1];
interfaceinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider: void write(java.io.FileOutputStream,byte[])>(v, v);
v = virtualinvoke v.<java.io.FileOutputStream: java.io.FileDescriptor getFD()>();
virtualinvoke v.<java.io.FileDescriptor: void sync()>();
virtualinvoke v.<java.io.FileOutputStream: void close()>();
v = null;
v = virtualinvoke v.<java.io.File: boolean delete()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = new java.io.IOException;
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 delete \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = newarray (java.io.Closeable)[1];
v[0] = null;
staticinvoke <oadd.org.apache.hadoop.io.IOUtils: void cleanup(oadd.org.apache.commons.logging.Log,java.io.Closeable[])>(null, v);
staticinvoke <oadd.org.apache.commons.io.FileUtils: boolean deleteQuietly(java.io.File)>(null);
goto label;
label:
v := @caughtexception;
v = newarray (java.io.Closeable)[1];
v[0] = v;
staticinvoke <oadd.org.apache.hadoop.io.IOUtils: void cleanup(oadd.org.apache.commons.logging.Log,java.io.Closeable[])>(null, v);
staticinvoke <oadd.org.apache.commons.io.FileUtils: boolean deleteQuietly(java.io.File)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
static java.io.File getFileNameForDiskIoCheck(java.io.File, int)
{
java.lang.Object[] v;
java.util.UUID v;
java.lang.Integer v;
java.io.File v, v, v;
int v;
java.lang.String v, v, v;
v := @parameter: java.io.File;
v := @parameter: int;
if v >= 3 goto label;
v = new java.io.File;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%03d", v);
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[])>("DiskChecker.OK_TO_DELETE_.\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
return v;
label:
v = new java.io.File;
v = staticinvoke <java.util.UUID: java.util.UUID randomUUID()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.UUID)>(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[])>("DiskChecker.OK_TO_DELETE_.\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
return v;
}
static oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider replaceFileOutputStreamProvider(oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider)
{
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider v;
v := @parameter: oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider;
v = <oadd.org.apache.hadoop.util.DiskChecker: java.util.concurrent.atomic.AtomicReference fileIoProvider>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object getAndSet(java.lang.Object)>(v);
return v;
}
static oadd.org.apache.hadoop.util.DiskChecker$FileIoProvider getFileOutputStreamProvider()
{
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
v = <oadd.org.apache.hadoop.util.DiskChecker: java.util.concurrent.atomic.AtomicReference fileIoProvider>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
oadd.org.apache.hadoop.util.DiskChecker$DefaultFileIoProvider v;
java.util.concurrent.atomic.AtomicReference v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/util/DiskChecker;");
<oadd.org.apache.hadoop.util.DiskChecker: org.slf4j.Logger LOG> = v;
v = new java.util.concurrent.atomic.AtomicReference;
v = new oadd.org.apache.hadoop.util.DiskChecker$DefaultFileIoProvider;
specialinvoke v.<oadd.org.apache.hadoop.util.DiskChecker$DefaultFileIoProvider: void <init>()>();
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
<oadd.org.apache.hadoop.util.DiskChecker: java.util.concurrent.atomic.AtomicReference fileIoProvider> = v;
return;
}
}