public abstract class org.apache.zookeeper.Shell extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
public static final java.lang.String USER_NAME_COMMAND;
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;
protected long timeOutInterval;
private java.util.concurrent.atomic.AtomicBoolean timedOut;
public static final java.lang.String ULIMIT_COMMAND;
public static final boolean WINDOWS;
private long interval;
private long lastTime;
private java.util.Map environment;
private java.io.File dir;
private java.lang.Process process;
private int exitCode;
private volatile java.util.concurrent.atomic.AtomicBoolean completed;
public static java.lang.String[] getGroupsCommand()
{
java.lang.String[] v;
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v[2] = "groups";
return v;
}
public static java.lang.String[] getGroupsForUserCommand(java.lang.String)
{
java.lang.String[] v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
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[])>("id -Gn \u0001");
v[2] = v;
return v;
}
public static java.lang.String[] getGET_PERMISSION_COMMAND()
{
java.lang.String[] v;
java.lang.String v;
boolean v;
v = newarray (java.lang.String)[2];
v = <org.apache.zookeeper.Shell: boolean WINDOWS>;
if v == 0 goto label;
v = "ls";
goto label;
label:
v = "/bin/ls";
label:
v[0] = v;
v[1] = "-ld";
return v;
}
public static java.lang.String[] getUlimitMemoryCommand(int)
{
int v;
java.lang.String[] v;
java.lang.String v;
boolean v;
v := @parameter: int;
v = <org.apache.zookeeper.Shell: boolean WINDOWS>;
if v == 0 goto label;
return null;
label:
v = newarray (java.lang.String)[3];
v[0] = "ulimit";
v[1] = "-v";
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
v[2] = v;
return v;
}
public void <init>()
{
org.apache.zookeeper.Shell v;
v := @this: org.apache.zookeeper.Shell;
specialinvoke v.<org.apache.zookeeper.Shell: void <init>(long)>(0L);
return;
}
public void <init>(long)
{
byte v;
org.apache.zookeeper.Shell v;
long v, v;
v := @this: org.apache.zookeeper.Shell;
v := @parameter: long;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.zookeeper.Shell: long timeOutInterval> = 0L;
v.<org.apache.zookeeper.Shell: long interval> = v;
v = v cmp 0L;
if v >= 0 goto label;
v = 0L;
goto label;
label:
v = neg v;
label:
v.<org.apache.zookeeper.Shell: long lastTime> = v;
return;
}
protected void setEnvironment(java.util.Map)
{
org.apache.zookeeper.Shell v;
java.util.Map v;
v := @this: org.apache.zookeeper.Shell;
v := @parameter: java.util.Map;
v.<org.apache.zookeeper.Shell: java.util.Map environment> = v;
return;
}
protected void setWorkingDirectory(java.io.File)
{
org.apache.zookeeper.Shell v;
java.io.File v;
v := @this: org.apache.zookeeper.Shell;
v := @parameter: java.io.File;
v.<org.apache.zookeeper.Shell: java.io.File dir> = v;
return;
}
protected void run() throws java.io.IOException
{
long v, v, v, v;
org.apache.zookeeper.server.ExitCode v;
byte v;
int v;
org.apache.zookeeper.Shell v;
v := @this: org.apache.zookeeper.Shell;
v = v.<org.apache.zookeeper.Shell: long lastTime>;
v = v.<org.apache.zookeeper.Shell: long interval>;
v = v + v;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v cmp v;
if v <= 0 goto label;
return;
label:
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode EXECUTION_FINISHED>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
v.<org.apache.zookeeper.Shell: int exitCode> = v;
specialinvoke v.<org.apache.zookeeper.Shell: void runCommand()>();
return;
}
private void runCommand() throws java.io.IOException
{
java.lang.IllegalStateException v;
java.util.Timer v, v;
org.apache.zookeeper.Shell$ShellTimeoutTimerTask v;
byte v;
java.util.Map v, v, v;
boolean v, v, v, v;
java.lang.Process v, v, v, v, v, v;
org.apache.zookeeper.Shell v;
java.lang.Throwable v;
java.util.concurrent.atomic.AtomicBoolean v, v, v, v, v, v, v;
java.lang.String[] v;
long v, v, v, v;
java.lang.StringBuffer v;
int v, v, v, v;
java.lang.ProcessBuilder v;
java.lang.String v, v, v;
org.slf4j.Logger v;
org.apache.zookeeper.Shell$1 v;
java.io.IOException v;
org.apache.zookeeper.server.ExitCode v;
java.io.InputStreamReader v, v;
java.io.File v, v;
java.lang.InterruptedException v, v;
org.apache.zookeeper.Shell$ExitCodeException v;
java.io.BufferedReader v, v;
java.io.InputStream v, v;
v := @this: org.apache.zookeeper.Shell;
v = new java.lang.ProcessBuilder;
v = virtualinvoke v.<org.apache.zookeeper.Shell: java.lang.String[] getExecString()>();
specialinvoke v.<java.lang.ProcessBuilder: void <init>(java.lang.String[])>(v);
v = null;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean completed> = v;
v = v.<org.apache.zookeeper.Shell: java.util.Map environment>;
if v == null goto label;
v = virtualinvoke v.<java.lang.ProcessBuilder: java.util.Map environment()>();
v = v.<org.apache.zookeeper.Shell: java.util.Map environment>;
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
v = v.<org.apache.zookeeper.Shell: java.io.File dir>;
if v == null goto label;
v = v.<org.apache.zookeeper.Shell: java.io.File dir>;
virtualinvoke v.<java.lang.ProcessBuilder: java.lang.ProcessBuilder directory(java.io.File)>(v);
label:
v = virtualinvoke v.<java.lang.ProcessBuilder: java.lang.Process start()>();
v.<org.apache.zookeeper.Shell: java.lang.Process process> = v;
v = v.<org.apache.zookeeper.Shell: long timeOutInterval>;
v = v cmp 0L;
if v <= 0 goto label;
v = new java.util.Timer;
specialinvoke v.<java.util.Timer: void <init>()>();
v = v;
v = new org.apache.zookeeper.Shell$ShellTimeoutTimerTask;
specialinvoke v.<org.apache.zookeeper.Shell$ShellTimeoutTimerTask: void <init>(org.apache.zookeeper.Shell)>(v);
v = v.<org.apache.zookeeper.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.<org.apache.zookeeper.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: java.io.InputStream getErrorStream()>();
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream)>(v);
specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
v = v.<org.apache.zookeeper.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: java.io.InputStream getInputStream()>();
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream)>(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 org.apache.zookeeper.Shell$1;
specialinvoke v.<org.apache.zookeeper.Shell$1: void <init>(org.apache.zookeeper.Shell,java.io.BufferedReader,java.lang.StringBuffer)>(v, v, v);
label:
virtualinvoke v.<java.lang.Thread: void start()>();
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<org.apache.zookeeper.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.<org.apache.zookeeper.Shell: java.lang.Process process>;
v = virtualinvoke v.<java.lang.Process: int waitFor()>();
v.<org.apache.zookeeper.Shell: int exitCode> = v;
label:
virtualinvoke v.<java.lang.Thread: void join()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.Shell: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Interrupted while reading the error stream", v);
label:
v = v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean completed>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
v = v.<org.apache.zookeeper.Shell: int exitCode>;
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode EXECUTION_FINISHED>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
if v == v goto label;
v = new org.apache.zookeeper.Shell$ExitCodeException;
v = v.<org.apache.zookeeper.Shell: int exitCode>;
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
specialinvoke v.<org.apache.zookeeper.Shell$ExitCodeException: void <init>(int,java.lang.String)>(v, v);
throw v;
label:
if v == null goto label;
v = v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
virtualinvoke v.<java.util.Timer: void cancel()>();
label:
v = v.<org.apache.zookeeper.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()>();
label:
v = v.<org.apache.zookeeper.Shell: java.lang.Process process>;
virtualinvoke v.<java.lang.Process: void destroy()>();
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v.<org.apache.zookeeper.Shell: long lastTime> = v;
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
if v == null goto label;
v = v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
virtualinvoke v.<java.util.Timer: void cancel()>();
label:
v = v.<org.apache.zookeeper.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()>();
label:
v = v.<org.apache.zookeeper.Shell: java.lang.Process process>;
virtualinvoke v.<java.lang.Process: void destroy()>();
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v.<org.apache.zookeeper.Shell: long lastTime> = v;
throw v;
label:
return;
catch java.lang.IllegalStateException from label to label with label;
catch java.lang.InterruptedException 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;
}
protected abstract java.lang.String[] getExecString();
protected abstract void parseExecResult(java.io.BufferedReader) throws java.io.IOException;
public java.lang.Process getProcess()
{
org.apache.zookeeper.Shell v;
java.lang.Process v;
v := @this: org.apache.zookeeper.Shell;
v = v.<org.apache.zookeeper.Shell: java.lang.Process process>;
return v;
}
public int getExitCode()
{
int v;
org.apache.zookeeper.Shell v;
v := @this: org.apache.zookeeper.Shell;
v = v.<org.apache.zookeeper.Shell: int exitCode>;
return v;
}
public boolean isTimedOut()
{
org.apache.zookeeper.Shell v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
v := @this: org.apache.zookeeper.Shell;
v = v.<org.apache.zookeeper.Shell: java.util.concurrent.atomic.AtomicBoolean timedOut>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
private void setTimedOut()
{
org.apache.zookeeper.Shell v;
java.util.concurrent.atomic.AtomicBoolean v;
v := @this: org.apache.zookeeper.Shell;
v = v.<org.apache.zookeeper.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 <org.apache.zookeeper.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;
java.lang.String[] v;
long v;
org.apache.zookeeper.Shell$ShellCommandExecutor v;
java.lang.String v;
v := @parameter: java.util.Map;
v := @parameter: java.lang.String[];
v := @parameter: long;
v = new org.apache.zookeeper.Shell$ShellCommandExecutor;
specialinvoke v.<org.apache.zookeeper.Shell$ShellCommandExecutor: void <init>(java.lang.String[],java.io.File,java.util.Map,long)>(v, null, v, v);
virtualinvoke v.<org.apache.zookeeper.Shell$ShellCommandExecutor: void execute()>();
v = virtualinvoke v.<org.apache.zookeeper.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 <org.apache.zookeeper.Shell: java.lang.String execCommand(java.util.Map,java.lang.String[],long)>(v, v, 0L);
return v;
}
static void <clinit>()
{
java.lang.String v;
org.slf4j.Logger v;
boolean v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/Shell;");
<org.apache.zookeeper.Shell: org.slf4j.Logger LOG> = 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");
<org.apache.zookeeper.Shell: boolean WINDOWS> = v;
return;
}
}