public abstract class oadd.org.apache.hadoop.util.Shell extends java.lang.Object
{
private static final java.util.Map CHILD_SHELLS;
public static final org.slf4j.Logger LOG;
private static final java.lang.String WINDOWS_PROBLEMS;
static final java.lang.String WINUTILS_EXE;
public static final java.lang.String SYSPROP_HADOOP_HOME_DIR;
public static final java.lang.String ENV_HADOOP_HOME;
private static final int JAVA_SPEC_VER;
public static final int WINDOWS_MAX_SHELL_LENGTH;
public static final int WINDOWS_MAX_SHELL_LENGHT;
public static final java.lang.String USER_NAME_COMMAND;
public static final java.lang.Object WindowsProcessLaunchLock;
public static final oadd.org.apache.hadoop.util.Shell$OSType osType;
public static final boolean WINDOWS;
public static final boolean SOLARIS;
public static final boolean MAC;
public static final boolean FREEBSD;
public static final boolean LINUX;
public static final boolean OTHER;
public static final boolean PPC_64;
public static final java.lang.String ENV_NAME_REGEX;
public static final java.lang.String SET_PERMISSION_COMMAND;
public static final java.lang.String SET_OWNER_COMMAND;
public static final java.lang.String SET_GROUP_COMMAND;
public static final java.lang.String LINK_COMMAND;
public static final java.lang.String READ_LINK_COMMAND;
protected long timeOutInterval;
private final java.util.concurrent.atomic.AtomicBoolean timedOut;
protected boolean inheritParentEnv;
static final java.lang.String E_DOES_NOT_EXIST;
static final java.lang.String E_IS_RELATIVE;
static final java.lang.String E_NOT_DIRECTORY;
static final java.lang.String E_NO_EXECUTABLE;
static final java.lang.String E_NOT_EXECUTABLE_FILE;
static final java.lang.String E_HADOOP_PROPS_UNSET;
static final java.lang.String E_HADOOP_PROPS_EMPTY;
static final java.lang.String E_NOT_A_WINDOWS_SYSTEM;
private static final java.io.File HADOOP_HOME_FILE;
private static final java.io.IOException HADOOP_HOME_DIR_FAILURE_CAUSE;
public static final java.lang.String WINUTILS;
private static final java.lang.String WINUTILS_PATH;
private static final java.io.File WINUTILS_FILE;
private static final java.io.IOException WINUTILS_FAILURE;
public static final boolean isSetsidAvailable;
public static final java.lang.String TOKEN_SEPARATOR_REGEX;
private long interval;
private long lastTime;
private final boolean redirectErrorStream;
private java.util.Map environment;
private java.io.File dir;
private java.lang.Process process;
private int exitCode;
private java.lang.Thread waitingThread;
private final java.util.concurrent.atomic.AtomicBoolean completed;
public static boolean isJava7OrAbove()
{
return 1;
}
public static boolean isJavaVersionAtLeast(int)
{
int v, v;
boolean v;
v := @parameter: int;
v = <oadd.org.apache.hadoop.util.Shell: int JAVA_SPEC_VER>;
if v < v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static transient void checkWindowsCommandLineLength(java.lang.String[]) throws java.io.IOException
{
java.lang.Object[] v;
java.io.IOException v;
java.lang.String[] v;
java.lang.Integer v, v;
int v, v, v, v;
java.lang.String v, v, v, v;
v := @parameter: java.lang.String[];
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
v = v + 1;
goto label;
label:
if v <= 8191 goto label;
v = new java.io.IOException;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(8191);
v[1] = v;
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String join(java.lang.CharSequence,java.lang.String[])>("", v);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, 100);
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("The command line has a length of %d exceeds maximum allowed length of %d. Command starts with: %s", v);
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
static java.lang.String bashQuote(java.lang.String)
{
int v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = new java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + 2;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(39);
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("\'", "\'\\\'\'");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(39);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static oadd.org.apache.hadoop.util.Shell$OSType getOSType()
{
oadd.org.apache.hadoop.util.Shell$OSType v, v, v, v, v, v;
java.lang.String v;
boolean v, v, v, v, v, v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Windows");
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_WIN>;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("SunOS");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("Solaris");
if v == 0 goto label;
label:
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_SOLARIS>;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("Mac");
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_MAC>;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("FreeBSD");
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_FREEBSD>;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Linux");
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_LINUX>;
return v;
label:
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_OTHER>;
return v;
}
public static java.lang.String[] getGroupsCommand()
{
java.lang.String[] v;
boolean v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v[0] = "cmd";
v[1] = "/c";
v[2] = "groups";
goto label;
label:
v = newarray (java.lang.String)[1];
v[0] = "groups";
label:
return v;
}
public static java.lang.String[] getGroupsForUserCommand(java.lang.String)
{
java.lang.String[] v, v;
java.lang.String v, v, v, v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "groups";
v[2] = "-F";
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[])>("\"\u0001\"");
v[3] = v;
return v;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String bashQuote(java.lang.String)>(v);
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("id -gn \u; id -Gn \u0001");
v[2] = v;
return v;
}
public static java.lang.String[] getGroupsIDForUserCommand(java.lang.String)
{
java.lang.String[] v, v;
java.lang.String v, v, v, v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "groups";
v[2] = "-F";
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[])>("\"\u0001\"");
v[3] = v;
return v;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String bashQuote(java.lang.String)>(v);
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("id -g \u; id -G \u0001");
v[2] = v;
return v;
}
public static java.lang.String[] getUsersForNetgroupCommand(java.lang.String)
{
java.lang.String[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v = newarray (java.lang.String)[3];
v[0] = "getent";
v[1] = "netgroup";
v[2] = v;
return v;
}
public static java.lang.String[] getGetPermissionCommand()
{
java.lang.String[] v;
java.lang.String v;
boolean v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "ls";
v[2] = "-F";
goto label;
label:
v = newarray (java.lang.String)[2];
v[0] = "ls";
v[1] = "-ld";
label:
return v;
}
public static java.lang.String[] getSetPermissionCommand(java.lang.String, boolean)
{
java.lang.String[] v, v;
java.lang.String v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "chmod";
v[2] = "-R";
v[3] = v;
goto label;
label:
v = newarray (java.lang.String)[3];
v[0] = "chmod";
v[1] = "-R";
v[2] = v;
label:
return v;
label:
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "chmod";
v[2] = v;
goto label;
label:
v = newarray (java.lang.String)[2];
v[0] = "chmod";
v[1] = v;
label:
return v;
}
public static java.lang.String[] getSetPermissionCommand(java.lang.String, boolean, java.lang.String)
{
java.lang.Object[] v;
java.lang.String[] v;
int v, v, v, v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String[] getSetPermissionCommand(java.lang.String,boolean)>(v, v);
v = lengthof v;
v = v + 1;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>(v, v);
v = lengthof v;
v = v - 1;
v[v] = v;
return v;
}
public static java.lang.String[] getSetOwnerCommand(java.lang.String)
{
java.lang.String[] v;
java.lang.String v, v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "chown";
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[])>("\"\u0001\"");
v[2] = v;
goto label;
label:
v = newarray (java.lang.String)[2];
v[0] = "chown";
v[1] = v;
label:
return v;
}
public static java.lang.String[] getSymlinkCommand(java.lang.String, java.lang.String)
{
java.lang.String[] v;
java.lang.String v, v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "symlink";
v[2] = v;
v[3] = v;
goto label;
label:
v = newarray (java.lang.String)[4];
v[0] = "ln";
v[1] = "-s";
v[2] = v;
v[3] = v;
label:
return v;
}
public static java.lang.String[] getReadlinkCommand(java.lang.String)
{
java.lang.String[] v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "readlink";
v[2] = v;
goto label;
label:
v = newarray (java.lang.String)[2];
v[0] = "readlink";
v[1] = v;
label:
return v;
}
public static java.lang.String[] getCheckProcessIsAliveCommand(java.lang.String)
{
java.lang.String[] v;
java.lang.String v;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String[] getSignalKillCommand(int,java.lang.String)>(0, v);
return v;
}
public static java.lang.String[] getSignalKillCommand(int, java.lang.String)
{
java.lang.String[] v, v, v, v;
int v;
java.lang.String v, v, v, v, v, v;
boolean v, v;
v := @parameter: int;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
if 0 != v goto label;
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "task";
v[2] = "isAlive";
v[3] = v;
return v;
label:
v = newarray (java.lang.String)[4];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String getWinUtilsPath()>();
v[0] = v;
v[1] = "task";
v[2] = "kill";
v[3] = v;
return v;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String bashQuote(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.util.Shell: boolean isSetsidAvailable>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(v, 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[])>("kill -\u -- -\u0001");
v[2] = v;
return v;
label:
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(v, 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[])>("kill -\u \u0001");
v[2] = v;
return v;
}
public static java.lang.String getEnvironmentVariableRegex()
{
java.lang.String v;
boolean v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = "%([A-Za-z_][A-Za-z0-9_]*?)%";
goto label;
label:
v = "\\$([A-Za-z_][A-Za-z0-9_]*)";
label:
return v;
}
public static java.io.File appendScriptExtension(java.io.File, java.lang.String)
{
java.lang.String v, v;
java.io.File v, v;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v = new java.io.File;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String appendScriptExtension(java.lang.String)>(v);
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
return v;
}
public static java.lang.String appendScriptExtension(java.lang.String)
{
java.lang.String v, v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = ".cmd";
goto label;
label:
v = ".sh";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001");
return v;
}
public static java.lang.String[] getRunScriptCommand(java.io.File)
{
java.lang.String[] v;
java.lang.String v, v;
java.io.File v;
boolean v;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = newarray (java.lang.String)[3];
v[0] = "cmd";
v[1] = "/c";
v[2] = v;
goto label;
label:
v = newarray (java.lang.String)[2];
v[0] = "bash";
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String bashQuote(java.lang.String)>(v);
v[1] = v;
label:
return v;
}
private static java.io.File checkHadoopHome() throws java.io.FileNotFoundException
{
java.lang.String v;
java.io.File v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("hadoop.home.dir");
if v != null goto label;
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("HADOOP_HOME");
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File checkHadoopHomeInner(java.lang.String)>(v);
return v;
}
static java.io.File checkHadoopHomeInner(java.lang.String) throws java.io.FileNotFoundException
{
int v, v;
java.lang.String v, v, v, v;
boolean v, v, v, v, v, v;
java.io.File v;
java.io.FileNotFoundException v, v, v, v, v;
v := @parameter: java.lang.String;
if v != null goto label;
v = new java.io.FileNotFoundException;
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>("HADOOP_HOME and hadoop.home.dir are unset.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("\"");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("\"");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = new java.io.FileNotFoundException;
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>("HADOOP_HOME or hadoop.home.dir set to an empty string");
throw v;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean isAbsolute()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
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[])>("Hadoop home directory \u is not an absolute path.");
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
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[])>("Hadoop home directory \u does not exist");
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
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[])>("Hadoop home directory \u is not a directory.");
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private static java.lang.String addOsText(java.lang.String)
{
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
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[])>("\u -see https://wiki.apache.org/hadoop/WindowsProblems");
goto label;
label:
v = v;
label:
return v;
}
private static java.io.FileNotFoundException fileNotFoundException(java.lang.String, java.lang.Exception)
{
java.lang.Throwable v;
java.lang.String v;
java.io.FileNotFoundException v;
java.lang.Exception v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Exception;
v = new java.io.FileNotFoundException;
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.FileNotFoundException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
return v;
}
public static java.lang.String getHadoopHome() throws java.io.IOException
{
java.lang.String v;
java.io.File v;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File getHadoopHomeDir()>();
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
return v;
}
private static java.io.File getHadoopHomeDir() throws java.io.FileNotFoundException
{
java.io.IOException v, v, v;
java.lang.String v, v;
java.io.File v;
java.io.FileNotFoundException v;
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException HADOOP_HOME_DIR_FAILURE_CAUSE>;
if v == null goto label;
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException HADOOP_HOME_DIR_FAILURE_CAUSE>;
v = virtualinvoke v.<java.io.IOException: java.lang.String toString()>();
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String addOsText(java.lang.String)>(v);
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException HADOOP_HOME_DIR_FAILURE_CAUSE>;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.FileNotFoundException fileNotFoundException(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v = <oadd.org.apache.hadoop.util.Shell: java.io.File HADOOP_HOME_FILE>;
return v;
}
public static java.io.File getQualifiedBin(java.lang.String) throws java.io.FileNotFoundException
{
java.lang.String v;
java.io.File v, v;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File getHadoopHomeDir()>();
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File getQualifiedBinInner(java.io.File,java.lang.String)>(v, v);
return v;
}
static java.io.File getQualifiedBinInner(java.io.File, java.lang.String) throws java.io.FileNotFoundException
{
java.lang.String v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.io.IOException v;
java.io.File v, v, v, v;
java.io.FileNotFoundException v, v, v, v, v;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, "bin");
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.io.File)>("Hadoop bin directory ", 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[])>("\u0001does not exist: \u0001");
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String addOsText(java.lang.String)>(v);
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.io.File)>("Hadoop bin directory ", 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[])>("\u0001is not a directory.: \u0001");
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String addOsText(java.lang.String)>(v);
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
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[])>("Could not locate Hadoop executable: \u0001");
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String addOsText(java.lang.String)>(v);
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v != 0 goto label;
v = new java.io.FileNotFoundException;
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[])>("Not an executable file: \u0001");
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String addOsText(java.lang.String)>(v);
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: java.io.File getCanonicalFile()>();
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.io.IOException: java.lang.String toString()>();
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.FileNotFoundException fileNotFoundException(java.lang.String,java.lang.Exception)>(v, v);
throw v;
catch java.io.IOException from label to label with label;
}
public static java.lang.String getQualifiedBinPath(java.lang.String) throws java.io.IOException
{
java.lang.String v, v;
java.io.File v;
v := @parameter: java.lang.String;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File getQualifiedBin(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
return v;
}
public static boolean hasWinutilsPath()
{
java.lang.String v;
boolean v;
v = <oadd.org.apache.hadoop.util.Shell: java.lang.String WINUTILS_PATH>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.lang.String getWinUtilsPath()
{
java.io.IOException v, v, v;
java.lang.RuntimeException v;
java.lang.String v, v;
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
if v != null goto label;
v = <oadd.org.apache.hadoop.util.Shell: java.lang.String WINUTILS_PATH>;
return v;
label:
v = new java.lang.RuntimeException;
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
v = virtualinvoke v.<java.io.IOException: java.lang.String toString()>();
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
}
public static java.io.File getWinUtilsFile() throws java.io.FileNotFoundException
{
java.io.IOException v, v, v;
java.lang.String v;
java.io.File v;
java.io.FileNotFoundException v;
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
if v != null goto label;
v = <oadd.org.apache.hadoop.util.Shell: java.io.File WINUTILS_FILE>;
return v;
label:
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
v = virtualinvoke v.<java.io.IOException: java.lang.String toString()>();
v = <oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE>;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.FileNotFoundException fileNotFoundException(java.lang.String,java.lang.Exception)>(v, v);
throw v;
}
public static boolean checkIsBashSupported() throws java.io.InterruptedIOException
{
org.slf4j.Logger v, v, v;
oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor v;
java.io.IOException v;
java.lang.String[] v;
java.io.InterruptedIOException v;
java.lang.SecurityException v;
boolean v, v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
return 0;
label:
v = 1;
label:
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v[2] = "echo 1000";
v = new oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void <init>(java.lang.String[])>(v);
virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void execute()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Interrupted, unable to determine if bash is supported", v);
throw v;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Bash is not supported by the OS", v);
v = 0;
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Bash execution is not allowed by the JVM security manager.Considering it not supported.");
v = 0;
label:
return v;
catch java.io.InterruptedIOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.SecurityException from label to label with label;
}
private static boolean isSetsidSupported()
{
java.lang.SecurityException v;
boolean v, v, v, v, v, v, v, v, v, v;
java.lang.Throwable v;
java.lang.Error v;
java.lang.String[] v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor v, v;
java.io.IOException v;
java.lang.Comparable v, v, v, v, v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
return 0;
label:
v = null;
v = 1;
label:
v = newarray (java.lang.String)[4];
v[0] = "setsid";
v[1] = "bash";
v[2] = "-c";
v[3] = "echo $$";
v = new oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void <init>(java.lang.String[])>(v);
v = v;
virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void execute()>();
label:
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Comparable)>(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[])>("setsid exited with exit code \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("setsid is not available on this machine. So not using it.");
v = 0;
label:
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = "(null executor)";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Comparable)>(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[])>("setsid exited with exit code \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("setsid is not allowed to run by the JVM security manager. So not using it.");
v = 0;
label:
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = "(null executor)";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Comparable)>(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[])>("setsid exited with exit code \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Error: java.lang.String getMessage()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Error: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("posix_spawn is not a supported process launch mechanism");
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: boolean FREEBSD>;
if v != 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: boolean MAC>;
if v == 0 goto label;
label:
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>("Avoiding JDK-8047340 on BSD-based systems.", v);
v = 0;
label:
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = "(null executor)";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Comparable)>(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[])>("setsid exited with exit code \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = "(null executor)";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Comparable)>(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[])>("setsid exited with exit code \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
throw v;
label:
return v;
catch java.io.IOException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.Error from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void <init>()
{
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell: void <init>(long)>(0L);
return;
}
protected void <init>(long)
{
long v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v := @parameter: long;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell: void <init>(long,boolean)>(v, 0);
return;
}
protected void <init>(long, boolean)
{
byte v;
java.util.concurrent.atomic.AtomicBoolean v, v;
long v, v;
boolean v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v := @parameter: long;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.hadoop.util.Shell: long timeOutInterval> = 0L;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut> = v;
v.<oadd.org.apache.hadoop.util.Shell: boolean inheritParentEnv> = 1;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean completed> = v;
v.<oadd.org.apache.hadoop.util.Shell: long interval> = v;
v = v cmp 0L;
if v >= 0 goto label;
v = 0L;
goto label;
label:
v = neg v;
label:
v.<oadd.org.apache.hadoop.util.Shell: long lastTime> = v;
v.<oadd.org.apache.hadoop.util.Shell: boolean redirectErrorStream> = v;
return;
}
protected void setEnvironment(java.util.Map)
{
java.util.Map v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v := @parameter: java.util.Map;
v.<oadd.org.apache.hadoop.util.Shell: java.util.Map environment> = v;
return;
}
protected void setWorkingDirectory(java.io.File)
{
java.io.File v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v := @parameter: java.io.File;
v.<oadd.org.apache.hadoop.util.Shell: java.io.File dir> = v;
return;
}
protected void run() throws java.io.IOException
{
byte v;
long v, v, v, v;
boolean v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: long lastTime>;
v = v.<oadd.org.apache.hadoop.util.Shell: long interval>;
v = v + v;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v = v cmp v;
if v <= 0 goto label;
return;
label:
v.<oadd.org.apache.hadoop.util.Shell: int exitCode> = 0;
v = <oadd.org.apache.hadoop.util.Shell: boolean MAC>;
if v == 0 goto label;
staticinvoke <java.lang.System: java.lang.String setProperty(java.lang.String,java.lang.String)>("jdk.lang.Process.launchMechanism", "POSIX_SPAWN");
label:
specialinvoke v.<oadd.org.apache.hadoop.util.Shell: void runCommand()>();
return;
}
private void runCommand() throws java.io.IOException
{
byte v;
java.lang.Thread v;
java.util.Map v, v, v, v, v, v, v;
oadd.org.apache.hadoop.util.Shell$1 v;
java.lang.Throwable v, v;
long v, v, v, v;
java.io.InterruptedIOException v;
java.lang.StringBuffer v;
java.lang.String v, v, v, v;
java.io.InputStreamReader v, v;
java.io.File v, v;
java.io.BufferedReader v, v;
java.lang.OutOfMemoryError v;
java.lang.IllegalStateException v;
oadd.org.apache.hadoop.util.Shell$ShellTimeoutTimerTask v;
java.util.Timer v, v;
oadd.org.apache.hadoop.util.Shell$ExitCodeException v;
boolean v, v, v, v, v;
oadd.org.apache.hadoop.util.Shell v;
java.lang.Process v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicBoolean v, v, v, v, v;
java.lang.String[] v;
java.nio.charset.Charset v, v;
int v, v, v;
java.lang.ProcessBuilder v;
org.slf4j.Logger v;
java.lang.InterruptedException v;
java.lang.Object v;
java.io.InputStream v, v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = new java.lang.ProcessBuilder;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell: java.lang.String[] getExecString()>();
specialinvoke v.<java.lang.ProcessBuilder: void <init>(java.lang.String[])>(v);
v = null;
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean completed>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<oadd.org.apache.hadoop.util.Shell: boolean inheritParentEnv>;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.ProcessBuilder: java.util.Map environment()>();
interfaceinvoke v.<java.util.Map: void clear()>();
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.Map environment>;
if v == null goto label;
v = virtualinvoke v.<java.lang.ProcessBuilder: java.util.Map environment()>();
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.Map environment>;
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.io.File dir>;
if v == null goto label;
v = v.<oadd.org.apache.hadoop.util.Shell: java.io.File dir>;
virtualinvoke v.<java.lang.ProcessBuilder: java.lang.ProcessBuilder directory(java.io.File)>(v);
label:
v = v.<oadd.org.apache.hadoop.util.Shell: boolean redirectErrorStream>;
virtualinvoke v.<java.lang.ProcessBuilder: java.lang.ProcessBuilder redirectErrorStream(boolean)>(v);
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: java.lang.Object WindowsProcessLaunchLock>;
entermonitor v;
label:
v = virtualinvoke v.<java.lang.ProcessBuilder: java.lang.Process start()>();
v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<java.lang.ProcessBuilder: java.lang.Process start()>();
v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process> = v;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v.<oadd.org.apache.hadoop.util.Shell: java.lang.Thread waitingThread> = v;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, null);
v = v.<oadd.org.apache.hadoop.util.Shell: long timeOutInterval>;
v = v cmp 0L;
if v <= 0 goto label;
v = new java.util.Timer;
specialinvoke v.<java.util.Timer: void <init>(java.lang.String)>("Shell command timeout");
v = v;
v = new oadd.org.apache.hadoop.util.Shell$ShellTimeoutTimerTask;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellTimeoutTimerTask: void <init>(oadd.org.apache.hadoop.util.Shell)>(v);
v = v.<oadd.org.apache.hadoop.util.Shell: long timeOutInterval>;
virtualinvoke v.<java.util.Timer: void schedule(java.util.TimerTask,long)>(v, v);
label:
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: java.io.InputStream getErrorStream()>();
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: java.io.InputStream getInputStream()>();
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
v = new oadd.org.apache.hadoop.util.Shell$1;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$1: void <init>(oadd.org.apache.hadoop.util.Shell,java.io.BufferedReader,java.lang.StringBuffer)>(v, v, v);
label:
virtualinvoke v.<java.lang.Thread: void start()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.OutOfMemoryError)>(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[])>("Caught \u. One possible reason is that ulimit setting of \'max user processes\' is too low. If so, do \'ulimit -u <largerNum>\' and try again.");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
throw v;
label:
virtualinvoke v.<oadd.org.apache.hadoop.util.Shell: void parseExecResult(java.io.BufferedReader)>(v);
v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
label:
if v == null goto label;
v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
goto label;
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: int waitFor()>();
v.<oadd.org.apache.hadoop.util.Shell: int exitCode> = v;
staticinvoke <oadd.org.apache.hadoop.util.Shell: void joinThread(java.lang.Thread)>(v);
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean completed>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = v.<oadd.org.apache.hadoop.util.Shell: int exitCode>;
if v == 0 goto label;
v = new oadd.org.apache.hadoop.util.Shell$ExitCodeException;
v = v.<oadd.org.apache.hadoop.util.Shell: int exitCode>;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$ExitCodeException: void <init>(int,java.lang.String)>(v, v);
throw v;
label:
if v == null goto label;
virtualinvoke v.<java.util.Timer: void cancel()>();
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean completed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
staticinvoke <oadd.org.apache.hadoop.util.Shell: void joinThread(java.lang.Thread)>(v);
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
virtualinvoke v.<java.lang.Process: void destroy()>();
v.<oadd.org.apache.hadoop.util.Shell: java.lang.Thread waitingThread> = null;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.util.Shell: long lastTime> = v;
goto label;
label:
v := @caughtexception;
v = new java.io.InterruptedIOException;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
specialinvoke v.<java.io.InterruptedIOException: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.io.InterruptedIOException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
if v == null goto label;
virtualinvoke v.<java.util.Timer: void cancel()>();
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean completed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
staticinvoke <oadd.org.apache.hadoop.util.Shell: void joinThread(java.lang.Thread)>(v);
label:
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
virtualinvoke v.<java.lang.Process: void destroy()>();
v.<oadd.org.apache.hadoop.util.Shell: java.lang.Thread waitingThread> = null;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.util.Shell: long lastTime> = v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.IllegalStateException from label to label with label;
catch java.lang.OutOfMemoryError from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static void joinThread(java.lang.Thread)
{
org.slf4j.Logger v, v;
java.lang.InterruptedException v;
java.lang.Thread v;
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.Thread;
label:
v = virtualinvoke v.<java.lang.Thread: boolean isAlive()>();
if v == 0 goto label;
label:
virtualinvoke v.<java.lang.Thread: void join()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Thread)>(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[])>("Interrupted while joining on: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
protected abstract java.lang.String[] getExecString();
protected abstract void parseExecResult(java.io.BufferedReader) throws java.io.IOException;
public java.lang.String getEnvironment(java.lang.String)
{
java.util.Map v;
java.lang.Object v;
java.lang.String v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v := @parameter: java.lang.String;
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.Map environment>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public java.lang.Process getProcess()
{
java.lang.Process v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process process>;
return v;
}
public int getExitCode()
{
int v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: int exitCode>;
return v;
}
public java.lang.Thread getWaitingThread()
{
java.lang.Thread v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: java.lang.Thread waitingThread>;
return v;
}
public boolean isTimedOut()
{
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
private void setTimedOut()
{
java.util.concurrent.atomic.AtomicBoolean v;
oadd.org.apache.hadoop.util.Shell v;
v := @this: oadd.org.apache.hadoop.util.Shell;
v = v.<oadd.org.apache.hadoop.util.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
return;
}
public static transient java.lang.String execCommand(java.lang.String[]) throws java.io.IOException
{
java.lang.String[] v;
java.lang.String v;
v := @parameter: java.lang.String[];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String execCommand(java.util.Map,java.lang.String[],long)>(null, v, 0L);
return v;
}
public static java.lang.String execCommand(java.util.Map, java.lang.String[], long) throws java.io.IOException
{
java.util.Map v;
oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor v;
java.lang.String[] v;
long v;
java.lang.String v;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String[];
v := @parameter: long;
v = new oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor;
specialinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void <init>(java.lang.String[],java.io.File,java.util.Map,long)>(v, null, v, v);
virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: void execute()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell$ShellCommandExecutor: java.lang.String getOutput()>();
return v;
}
public static transient java.lang.String execCommand(java.util.Map, java.lang.String[]) throws java.io.IOException
{
java.lang.String[] v;
java.lang.String v;
java.util.Map v;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String[];
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.lang.String execCommand(java.util.Map,java.lang.String[],long)>(v, v, 0L);
return v;
}
public static void destroyAllShellProcesses()
{
java.lang.Throwable v;
java.lang.Process v, v;
java.util.Iterator v;
java.util.Set v;
java.util.Map v, v, v;
java.lang.Object v;
boolean v;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
entermonitor v;
label:
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process getProcess()>();
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Shell: java.lang.Process getProcess()>();
virtualinvoke v.<java.lang.Process: void destroy()>();
goto label;
label:
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
interfaceinvoke v.<java.util.Map: void clear()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public static java.util.Set getAllShells()
{
java.lang.Throwable v;
java.util.HashSet v;
java.util.Map v, v;
java.util.Set v;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
entermonitor v;
label:
v = new java.util.HashSet;
v = <oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public static java.lang.Long getMemlockLimit(java.lang.Long)
{
java.lang.Long v, v;
long v, v;
boolean v;
v := @parameter: java.lang.Long;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Math: long min(long,long)>(2147483647L, v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
return v;
}
static void <clinit>()
{
java.util.Map v;
boolean v, v, v, v, v, v, v, v, v, v, v;
java.io.FileNotFoundException v;
java.lang.String[] v;
int v, v;
java.lang.String v, v, v, v, v;
java.util.WeakHashMap v;
java.util.Properties v;
org.slf4j.Logger v, v, v, v, v;
java.io.IOException v, v, v, v;
java.io.File v, v;
oadd.org.apache.hadoop.util.Shell$OSType v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Map synchronizedMap(java.util.Map)>(v);
<oadd.org.apache.hadoop.util.Shell: java.util.Map CHILD_SHELLS> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/util/Shell;");
<oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("java.specification.version");
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>("\\.");
v = v[0];
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
v = staticinvoke <java.lang.Math: int max(int,int)>(8, v);
<oadd.org.apache.hadoop.util.Shell: int JAVA_SPEC_VER> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<oadd.org.apache.hadoop.util.Shell: java.lang.Object WindowsProcessLaunchLock> = v;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType getOSType()>();
<oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_WIN>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean WINDOWS> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_SOLARIS>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean SOLARIS> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_MAC>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean MAC> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_FREEBSD>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean FREEBSD> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_LINUX>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean LINUX> = v;
v = <oadd.org.apache.hadoop.util.Shell: oadd.org.apache.hadoop.util.Shell$OSType osType>;
v = <oadd.org.apache.hadoop.util.Shell$OSType: oadd.org.apache.hadoop.util.Shell$OSType OS_TYPE_OTHER>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<oadd.org.apache.hadoop.util.Shell: boolean OTHER> = v;
v = staticinvoke <java.lang.System: java.util.Properties getProperties()>();
v = virtualinvoke v.<java.util.Properties: java.lang.String getProperty(java.lang.String)>("os.arch");
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("ppc64");
<oadd.org.apache.hadoop.util.Shell: boolean PPC_64> = v;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File checkHadoopHome()>();
v = null;
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Failed to detect a valid hadoop home directory", v);
label:
v = v;
v = null;
label:
<oadd.org.apache.hadoop.util.Shell: java.io.File HADOOP_HOME_FILE> = v;
<oadd.org.apache.hadoop.util.Shell: java.io.IOException HADOOP_HOME_DIR_FAILURE_CAUSE> = v;
v = null;
v = null;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
label:
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: java.io.File getQualifiedBin(java.lang.String)>("winutils.exe");
v = virtualinvoke v.<java.io.File: java.lang.String getCanonicalPath()>();
v = null;
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Did not find {}: {}", "winutils.exe", v);
v = <oadd.org.apache.hadoop.util.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Failed to find winutils.exe", v);
v = null;
v = null;
v = v;
goto label;
label:
v = new java.io.FileNotFoundException;
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>("Not a Windows system");
v = v;
label:
<oadd.org.apache.hadoop.util.Shell: java.lang.String WINUTILS_PATH> = v;
<oadd.org.apache.hadoop.util.Shell: java.io.File WINUTILS_FILE> = v;
<oadd.org.apache.hadoop.util.Shell: java.lang.String WINUTILS> = v;
<oadd.org.apache.hadoop.util.Shell: java.io.IOException WINUTILS_FAILURE> = v;
v = staticinvoke <oadd.org.apache.hadoop.util.Shell: boolean isSetsidSupported()>();
<oadd.org.apache.hadoop.util.Shell: boolean isSetsidAvailable> = v;
v = <oadd.org.apache.hadoop.util.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = "[|\n\r]";
goto label;
label:
v = "[ \t\n\r\f]";
label:
<oadd.org.apache.hadoop.util.Shell: java.lang.String TOKEN_SEPARATOR_REGEX> = v;
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
}