public class org.apache.zookeeper.ZKUtil extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
private static final java.util.Map permCache;
public void <init>()
{
org.apache.zookeeper.ZKUtil v;
v := @this: org.apache.zookeeper.ZKUtil;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static boolean deleteRecursive(org.apache.zookeeper.ZooKeeper, java.lang.String, int) throws java.lang.InterruptedException, org.apache.zookeeper.KeeperException
{
org.apache.zookeeper.ZooKeeper v;
org.slf4j.Logger v;
java.util.List v;
int v, v, v, v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v := @parameter: int;
staticinvoke <org.apache.zookeeper.common.PathUtils: void validatePath(java.lang.String)>(v);
v = staticinvoke <org.apache.zookeeper.ZKUtil: java.util.List listSubTreeBFS(org.apache.zookeeper.ZooKeeper,java.lang.String)>(v, v);
v = <org.apache.zookeeper.ZKUtil: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Deleting tree: {}", v);
if v <= 0 goto label;
v = staticinvoke <org.apache.zookeeper.ZKUtil: boolean deleteInBatch(org.apache.zookeeper.ZooKeeper,java.util.List,int)>(v, v, v);
return v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
label:
if v < 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = (int) -1;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void delete(java.lang.String,int)>(v, v);
v = v - 1;
goto label;
label:
return 1;
}
public static void deleteRecursive(org.apache.zookeeper.ZooKeeper, java.lang.String) throws java.lang.InterruptedException, org.apache.zookeeper.KeeperException
{
org.apache.zookeeper.ZooKeeper v;
java.lang.String v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
staticinvoke <org.apache.zookeeper.ZKUtil: boolean deleteRecursive(org.apache.zookeeper.ZooKeeper,java.lang.String,int)>(v, v, 0);
return;
}
private static boolean deleteInBatch(org.apache.zookeeper.ZooKeeper, java.util.List, int) throws java.lang.InterruptedException
{
java.util.concurrent.atomic.AtomicBoolean v, v;
java.util.ArrayList v, v, v;
int v, v, v, v, v;
boolean v, v;
org.apache.zookeeper.ZooKeeper v;
org.apache.zookeeper.Op v;
org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext v;
java.util.concurrent.Semaphore v, v;
org.apache.zookeeper.AsyncCallback$MultiCallback v;
java.util.List v;
java.lang.Object v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.util.List;
v := @parameter: int;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = new org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext;
specialinvoke v.<org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext: void <init>(int)>(10);
v = staticinvoke <org.apache.zookeeper.ZKUtil$lambda_deleteInBatch_0__2: org.apache.zookeeper.AsyncCallback$MultiCallback bootstrap$()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
label:
if v < 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = (int) -1;
v = staticinvoke <org.apache.zookeeper.Op: org.apache.zookeeper.Op delete(java.lang.String,int)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: int size()>();
if v == v goto label;
if v != 0 goto label;
label:
v = v.<org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext: java.util.concurrent.atomic.AtomicBoolean success>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext: java.util.concurrent.Semaphore sem>;
virtualinvoke v.<java.util.concurrent.Semaphore: void acquire()>();
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void multi(java.lang.Iterable,org.apache.zookeeper.AsyncCallback$MultiCallback,java.lang.Object)>(v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
label:
v = v - 1;
goto label;
label:
v = v.<org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext: java.util.concurrent.Semaphore sem>;
virtualinvoke v.<java.util.concurrent.Semaphore: void acquire(int)>(10);
v = v.<org.apache.zookeeper.ZKUtil$BatchedDeleteCbContext: java.util.concurrent.atomic.AtomicBoolean success>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
public static void deleteRecursive(org.apache.zookeeper.ZooKeeper, java.lang.String, org.apache.zookeeper.AsyncCallback$VoidCallback, java.lang.Object) throws java.lang.InterruptedException, org.apache.zookeeper.KeeperException
{
org.apache.zookeeper.ZooKeeper v;
org.apache.zookeeper.AsyncCallback$VoidCallback v;
org.slf4j.Logger v;
java.util.List v;
int v, v, v;
java.lang.Object v, v;
java.lang.String v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.AsyncCallback$VoidCallback;
v := @parameter: java.lang.Object;
staticinvoke <org.apache.zookeeper.common.PathUtils: void validatePath(java.lang.String)>(v);
v = staticinvoke <org.apache.zookeeper.ZKUtil: java.util.List listSubTreeBFS(org.apache.zookeeper.ZooKeeper,java.lang.String)>(v, v);
v = <org.apache.zookeeper.ZKUtil: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Deleting tree: {}", v);
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
label:
if v < 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = (int) -1;
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: void delete(java.lang.String,int,org.apache.zookeeper.AsyncCallback$VoidCallback,java.lang.Object)>(v, v, v, v);
v = v - 1;
goto label;
label:
return;
}
public static java.lang.String validateFileInput(java.lang.String)
{
java.io.File v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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[])>("File \'\u0001\' does not exist.");
return v;
label:
v = virtualinvoke v.<java.io.File: boolean canRead()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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[])>("Read permission is denied on the file \'\u0001\'");
return v;
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
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\' is a directory. it must be a file.");
return v;
label:
return null;
}
public static java.util.List listSubTreeBFS(org.apache.zookeeper.ZooKeeper, java.lang.String) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException
{
org.apache.zookeeper.ZooKeeper v;
java.util.Iterator v;
java.util.ArrayList v;
java.util.List v;
java.lang.Object v, v;
java.lang.String v, v, v;
java.util.ArrayDeque v;
boolean v, v, v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<java.util.Queue: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
v = virtualinvoke v.<org.apache.zookeeper.ZooKeeper: java.util.List getChildren(java.lang.String,boolean)>(v, 0);
v = interfaceinvoke v.<java.util.List: 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.<java.lang.String: boolean equals(java.lang.Object)>("/");
if v == 0 goto label;
v = "";
goto label;
label:
v = v;
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");
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public static void visitSubTreeDFS(org.apache.zookeeper.ZooKeeper, java.lang.String, boolean, org.apache.zookeeper.AsyncCallback$StringCallback) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException
{
org.apache.zookeeper.KeeperException$Code v;
org.apache.zookeeper.ZooKeeper v;
int v;
java.lang.String v;
org.apache.zookeeper.AsyncCallback$StringCallback v;
boolean v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.zookeeper.AsyncCallback$StringCallback;
staticinvoke <org.apache.zookeeper.common.PathUtils: void validatePath(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.ZooKeeper: byte[] getData(java.lang.String,boolean,org.apache.zookeeper.data.Stat)>(v, v, null);
v = <org.apache.zookeeper.KeeperException$Code: org.apache.zookeeper.KeeperException$Code OK>;
v = virtualinvoke v.<org.apache.zookeeper.KeeperException$Code: int intValue()>();
interfaceinvoke v.<org.apache.zookeeper.AsyncCallback$StringCallback: void processResult(int,java.lang.String,java.lang.Object,java.lang.String)>(v, v, null, v);
staticinvoke <org.apache.zookeeper.ZKUtil: void visitSubTreeDFSHelper(org.apache.zookeeper.ZooKeeper,java.lang.String,boolean,org.apache.zookeeper.AsyncCallback$StringCallback)>(v, v, v, v);
return;
}
private static void visitSubTreeDFSHelper(org.apache.zookeeper.ZooKeeper, java.lang.String, boolean, org.apache.zookeeper.AsyncCallback$StringCallback) throws org.apache.zookeeper.KeeperException, java.lang.InterruptedException
{
org.apache.zookeeper.KeeperException$NoNodeException v;
org.apache.zookeeper.KeeperException$Code v;
int v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.zookeeper.ZooKeeper v;
java.util.Iterator v, v;
org.apache.zookeeper.AsyncCallback$StringCallback v;
java.util.List v;
java.lang.Object v, v;
v := @parameter: org.apache.zookeeper.ZooKeeper;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.zookeeper.AsyncCallback$StringCallback;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v = virtualinvoke v.<org.apache.zookeeper.ZooKeeper: java.util.List getChildren(java.lang.String,boolean,org.apache.zookeeper.data.Stat)>(v, v, null);
staticinvoke <java.util.Collections: void sort(java.util.List)>(v);
v = interfaceinvoke v.<java.util.List: 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()>();
if v == 0 goto label;
v = v;
goto label;
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[])>("\u0001/");
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");
v = <org.apache.zookeeper.KeeperException$Code: org.apache.zookeeper.KeeperException$Code OK>;
v = virtualinvoke v.<org.apache.zookeeper.KeeperException$Code: int intValue()>();
interfaceinvoke v.<org.apache.zookeeper.AsyncCallback$StringCallback: void processResult(int,java.lang.String,java.lang.Object,java.lang.String)>(v, v, null, v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: 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()>();
if v == 0 goto label;
v = v;
goto label;
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[])>("\u0001/");
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");
staticinvoke <org.apache.zookeeper.ZKUtil: void visitSubTreeDFSHelper(org.apache.zookeeper.ZooKeeper,java.lang.String,boolean,org.apache.zookeeper.AsyncCallback$StringCallback)>(v, v, v, v);
goto label;
label:
v := @caughtexception;
return;
label:
return;
catch org.apache.zookeeper.KeeperException$NoNodeException from label to label with label;
}
public static java.lang.String getPermString(int)
{
java.util.Map v;
int v;
java.lang.Object v;
java.lang.Integer v;
java.util.function.Function v;
v := @parameter: int;
v = <org.apache.zookeeper.ZKUtil: java.util.Map permCache>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <org.apache.zookeeper.ZKUtil$lambda_getPermString_1__3: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
return v;
}
private static java.lang.String constructPermString(int)
{
int v, v, v, v, v, v;
java.lang.StringBuilder v;
java.lang.String v;
v := @parameter: int;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = v & 4;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(99);
label:
v = v & 8;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(100);
label:
v = v & 1;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(114);
label:
v = v & 2;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(119);
label:
v = v & 16;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(97);
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public static java.lang.String aclToString(java.util.List)
{
java.util.Iterator v;
java.util.List v;
org.apache.zookeeper.data.Id v, v;
int v;
java.lang.Object v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v;
boolean v;
v := @parameter: java.util.List;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = interfaceinvoke v.<java.util.List: 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.<org.apache.zookeeper.data.ACL: org.apache.zookeeper.data.Id getId()>();
v = virtualinvoke v.<org.apache.zookeeper.data.Id: java.lang.String getScheme()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(":");
v = virtualinvoke v.<org.apache.zookeeper.data.ACL: org.apache.zookeeper.data.Id getId()>();
v = virtualinvoke v.<org.apache.zookeeper.data.Id: java.lang.String getId()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(":");
v = virtualinvoke v.<org.apache.zookeeper.data.ACL: int getPerms()>();
v = staticinvoke <org.apache.zookeeper.ZKUtil: java.lang.String getPermString(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
java.util.concurrent.ConcurrentHashMap v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/ZKUtil;");
<org.apache.zookeeper.ZKUtil: org.slf4j.Logger LOG> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.zookeeper.ZKUtil: java.util.Map permCache> = v;
return;
}
}