public class oadd.org.apache.hadoop.security.ShellBasedIdMapping extends java.lang.Object implements oadd.org.apache.hadoop.security.IdMappingServiceProvider
{
private static final org.slf4j.Logger LOG;
private static final java.lang.String OS;
static final java.lang.String GET_ALL_USERS_CMD;
static final java.lang.String GET_ALL_GROUPS_CMD;
static final java.lang.String MAC_GET_ALL_USERS_CMD;
static final java.lang.String MAC_GET_ALL_GROUPS_CMD;
private final java.io.File staticMappingFile;
private oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping;
private long lastModificationTimeStaticMap;
private boolean constructFullMapAtInit;
private static final java.util.regex.Pattern EMPTY_LINE;
private static final java.util.regex.Pattern COMMENT_LINE;
private static final java.util.regex.Pattern MAPPING_LINE;
private final long timeout;
private oadd.com.google.common.collect.BiMap uidNameMap;
private oadd.com.google.common.collect.BiMap gidNameMap;
private long lastUpdateTime;
private static final java.lang.String DUPLICATE_NAME_ID_DEBUG_INFO;
public void <init>(oadd.org.apache.hadoop.conf.Configuration, boolean) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
org.slf4j.Logger v;
long v;
java.io.File v;
oadd.com.google.common.collect.HashBiMap v, v;
byte v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping> = null;
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastModificationTimeStaticMap> = 0L;
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean constructFullMapAtInit> = 0;
v = staticinvoke <oadd.com.google.common.collect.HashBiMap: oadd.com.google.common.collect.HashBiMap create()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap> = v;
v = staticinvoke <oadd.com.google.common.collect.HashBiMap: oadd.com.google.common.collect.HashBiMap create()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap> = v;
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = 0L;
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean constructFullMapAtInit> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: long getLong(java.lang.String,long)>("usergroupid.update.millis", 900000L);
v = v cmp 60000L;
if v >= 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("User configured user account update time is less than 1 minute. Use 1 minute instead.");
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long timeout> = 60000L;
goto label;
label:
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long timeout> = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("static.id.mapping.file", "/etc/nfs.map");
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile> = v;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateStaticMapping()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMaps()>();
return;
}
public void <init>(oadd.org.apache.hadoop.conf.Configuration) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.org.apache.hadoop.conf.Configuration v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void <init>(oadd.org.apache.hadoop.conf.Configuration,boolean)>(v, 0);
return;
}
public long getTimeout()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
long v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long timeout>;
return v;
}
public oadd.com.google.common.collect.BiMap getUidNameMap()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
return v;
}
public oadd.com.google.common.collect.BiMap getGidNameMap()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
return v;
}
public synchronized void clearNameMaps()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v, v;
long v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: void clear()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: void clear()>();
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = v;
return;
}
private synchronized boolean isExpired()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
byte v;
long v, v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime>;
v = v - v;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long timeout>;
v = v cmp v;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void checkAndUpdateMaps()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
org.slf4j.Logger v, v;
java.io.IOException v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean isExpired()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Update cache now");
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMaps()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Can\'t update the maps. Will use the old ones, which can potentially cause problem.", v);
label:
return;
catch java.io.IOException from label to label with label;
}
private static void reportDuplicateEntry(java.lang.String, java.lang.Integer, java.lang.String, java.lang.Integer, java.lang.String)
{
java.lang.Object[] v;
org.slf4j.Logger v;
java.lang.Integer v, v;
java.lang.String v, v, v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Integer;
v := @parameter: java.lang.String;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[6];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = "The new entry is to be ignored for the following reason.";
v[5] = "NFS gateway could have problem starting with duplicate name or id on the host system.\nThis is because HDFS (non-kerberos cluster) uses name as the only way to identify a user or group.\nThe host system with duplicated user/group name or id might work fine most of the time by itself.\nHowever when NFS gateway talks to HDFS, HDFS accepts only user and group name.\nTherefore, same name means the same user or same group. To find the duplicated names/ids, one can do:\n<getent passwd | cut -d: -f,3> and <getent group | cut -d: -f,3> on Linux, BSD and Solaris systems,\n<dscl . -list /Users UniqueID> and <dscl . -list /Groups PrimaryGroupID> on MacOS.";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("new entry (%d, %s), existing entry: (%d, %s).%n%s%n%s", v);
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[])>("\n\u0001\u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
return;
}
private static java.lang.Integer parseId(java.lang.String)
{
long v;
java.lang.String v;
java.lang.Integer v;
v := @parameter: java.lang.String;
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
}
public static boolean updateMapInternal(oadd.com.google.common.collect.BiMap, java.lang.String, java.lang.String, java.lang.String, java.util.Map) throws java.io.IOException
{
java.lang.Integer v;
java.util.Map v;
boolean v, v, v, v;
java.lang.Process v;
java.lang.Runtime v;
java.lang.Throwable v;
java.lang.String[] v, v;
java.nio.charset.Charset v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
oadd.com.google.common.collect.BiMap v, v;
org.slf4j.Logger v, v, v;
java.io.IOException v, v;
java.io.InputStreamReader v;
java.lang.Object v, v, v;
java.io.BufferedReader v, v;
java.io.InputStream v;
v := @parameter: oadd.com.google.common.collect.BiMap;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = 0;
label:
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = newarray (java.lang.String)[3];
v[0] = "bash";
v[1] = "-c";
v[2] = v;
v = virtualinvoke v.<java.lang.Runtime: java.lang.Process exec(java.lang.String[])>(v);
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
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);
label:
v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
if v == null goto label;
v = lengthof v;
if v == 2 goto label;
label:
v = new java.io.IOException;
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[])>("Can\'t parse \u list entry:\u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = v[0];
v = v[1];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("add to \u0001map:\u id:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v[1];
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.Integer parseId(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v[0];
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: void reportDuplicateEntry(java.lang.String,java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String)>("Got multiple names associated with the same id: ", v, v, v, v);
goto label;
label:
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: boolean containsValue(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: oadd.com.google.common.collect.BiMap inverse()>();
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: void reportDuplicateEntry(java.lang.String,java.lang.Integer,java.lang.String,java.lang.Integer,java.lang.String)>("Got multiple ids associated with the same name: ", v, v, v, v);
goto label;
label:
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = 1;
goto label;
label:
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("Updated \u map size: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
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[])>("Can\'t update \u map");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
return v;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean checkSupportedPlatform()
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
org.slf4j.Logger v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Linux");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Mac");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SunOS");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("BSD");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
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[])>("Platform is not supported:\u. Can\'t update user map and group map and \'nobody\' will be used for any user and group.");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
return 0;
label:
return 1;
}
private static boolean isInteger(java.lang.String)
{
java.lang.NumberFormatException v;
java.lang.String v;
v := @parameter: java.lang.String;
label:
staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
return 0;
label:
return 1;
catch java.lang.NumberFormatException from label to label with label;
}
private synchronized void updateStaticMapping() throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
java.util.HashMap v, v;
long v, v, v;
byte v, v;
java.lang.String v, v;
boolean v, v, v;
org.slf4j.Logger v, v;
java.io.File v, v, v, v, v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile>;
v = virtualinvoke v.<java.io.File: long lastModified()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastModificationTimeStaticMap>;
v = v cmp v;
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
if v == 0 goto label;
v = "Using ";
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile>;
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[])>("Reloading \'\u0001\' for static UID/GID mapping...");
label:
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastModificationTimeStaticMap> = v;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping parseStaticMap(java.io.File)>(v);
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping> = v;
goto label;
label:
if v == 0 goto label;
v = new oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: void <init>(java.util.Map,java.util.Map)>(v, v);
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping> = v;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastModificationTimeStaticMap>;
v = v cmp 0L;
if v != 0 goto label;
if v == 0 goto label;
label:
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.io.File staticMappingFile>;
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 doing static UID/GID mapping because \'\u0001\' does not exist.");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastModificationTimeStaticMap> = 0L;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: void clear()>();
label:
return;
}
public synchronized void updateMaps() throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean checkSupportedPlatform()>();
if v != 0 goto label;
return;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean constructFullMapAtInit>;
if v == 0 goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void loadFullMaps()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean constructFullMapAtInit> = 0;
goto label;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateStaticMapping()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void clearNameMaps()>();
label:
return;
}
private synchronized void loadFullUserMap() throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
long v;
oadd.com.google.common.collect.HashBiMap v;
java.util.Map v, v;
java.lang.String v;
boolean v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = staticinvoke <oadd.com.google.common.collect.HashBiMap: oadd.com.google.common.collect.HashBiMap create()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Mac");
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", "dscl . -list /Users UniqueID", "\\s+", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", "getent passwd | cut -d: -f,3", ":", v);
label:
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap> = v;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = v;
return;
}
private synchronized void loadFullGroupMap() throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
long v;
oadd.com.google.common.collect.HashBiMap v;
java.util.Map v, v;
java.lang.String v;
boolean v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v = staticinvoke <oadd.com.google.common.collect.HashBiMap: oadd.com.google.common.collect.HashBiMap create()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Mac");
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", "dscl . -list /Groups PrimaryGroupID", "\\s+", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", "getent group | cut -d: -f,3", ":", v);
label:
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap> = v;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = v;
return;
}
private synchronized void loadFullMaps() throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void loadFullUserMap()>();
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void loadFullGroupMap()>();
return;
}
private java.lang.String getName2IdCmdNIX(java.lang.String, boolean)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
java.lang.String v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
v := @parameter: boolean;
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[])>("getent group \u | cut -d: -f,3");
goto label;
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[])>("id -u \u | awk \'{print \"\u0001:\"$1 }\'");
label:
return v;
}
private java.lang.String getId2NameCmdNIX(int, boolean)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
int v;
java.lang.String v, v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: int;
v := @parameter: boolean;
if v == 0 goto label;
v = "group ";
goto label;
label:
v = "passwd ";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("getent ", 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 = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
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\u | cut -d: -f,3");
return v;
}
private java.lang.String getName2IdCmdMac(java.lang.String, boolean)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
java.lang.String v, v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
v := @parameter: boolean;
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[])>("dscl . -read /Groups/\u0001");
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 | grep PrimaryGroupID | awk \'($1 == \"PrimaryGroupID:\") ");
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{ print \"\u  \" $2 }\'");
goto label;
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[])>("id -u \u | awk \'{print \"\u  \"$1 }\'");
label:
return v;
}
private java.lang.String getId2NameCmdMac(int, boolean)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: int;
v := @parameter: boolean;
if v == 0 goto label;
v = "Groups PrimaryGroupID ";
goto label;
label:
v = "Users UniqueID ";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("dscl . -search /", 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 = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
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 = 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 | sed \'N;s/\\n//g;N;s/\\n//g\' | sed \'s/");
if v == 0 goto label;
v = "PrimaryGroupID";
goto label;
label:
v = "UniqueID";
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 = 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 = (//g\' | sed \'s/)//g\' | sed \'s/\\\"//g\'");
return v;
}
private synchronized void updateMapIncr(java.lang.String, boolean) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
long v;
java.util.Map v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v;
oadd.com.google.common.collect.BiMap v, v, v, v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean checkSupportedPlatform()>();
if v != 0 goto label;
return;
label:
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean isInteger(java.lang.String)>(v);
if v == 0 goto label;
if v == 0 goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void loadFullGroupMap()>();
return;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateStaticMapping()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Linux");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SunOS");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("BSD");
if v == 0 goto label;
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getName2IdCmdNIX(java.lang.String,boolean)>(v, 1);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", v, ":", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getName2IdCmdNIX(java.lang.String,boolean)>(v, 0);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", v, ":", v);
goto label;
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getName2IdCmdMac(java.lang.String,boolean)>(v, 1);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", v, "\\s+", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getName2IdCmdMac(java.lang.String,boolean)>(v, 0);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", v, "\\s+", v);
label:
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = v;
label:
return;
}
private synchronized void updateMapIncr(int, boolean) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
long v;
java.util.Map v, v, v, v;
int v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v, v, v;
oadd.com.google.common.collect.BiMap v, v, v, v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: int;
v := @parameter: boolean;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean checkSupportedPlatform()>();
if v != 0 goto label;
return;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateStaticMapping()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("Linux");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SunOS");
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("BSD");
if v == 0 goto label;
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getId2NameCmdNIX(int,boolean)>(v, 1);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", v, ":", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getId2NameCmdNIX(int,boolean)>(v, 0);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", v, ":", v);
goto label;
label:
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getId2NameCmdMac(int,boolean)>(v, 1);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map gidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "group", v, "\\s+", v);
goto label;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String getId2NameCmdMac(int,boolean)>(v, 0);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping staticMapping>;
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: java.util.Map uidMapping>;
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: boolean updateMapInternal(oadd.com.google.common.collect.BiMap,java.lang.String,java.lang.String,java.lang.String,java.util.Map)>(v, "user", v, "\\s+", v);
label:
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.util.Time: long monotonicNow()>();
v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: long lastUpdateTime> = v;
label:
return;
}
static oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping parseStaticMap(java.io.File) throws java.io.IOException
{
java.lang.Throwable v;
java.util.HashMap v, v;
java.lang.Integer v, v;
java.util.regex.Matcher v, v, v;
java.nio.charset.Charset v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v;
org.slf4j.Logger v;
java.io.FileInputStream v;
java.io.InputStreamReader v;
java.io.File v;
java.io.BufferedReader v;
java.util.regex.Pattern v, v, v;
oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping v;
v := @parameter: java.io.File;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.io.BufferedReader;
v = new java.io.InputStreamReader;
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
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);
label:
v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
if v == null goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern EMPTY_LINE>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern COMMENT_LINE>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern MAPPING_LINE>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
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[])>("Could not parse line \'\u0001\'. Lines should be of the form \'[uid|gid] [remote id] [local id]\'. Blank lines and everything following a \'#\' on a line will be ignored.");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(1);
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(2);
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.Integer parseId(java.lang.String)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(3);
v = staticinvoke <oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.Integer parseId(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("uid");
if v == 0 goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
virtualinvoke v.<java.io.BufferedReader: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.io.BufferedReader: void close()>();
throw v;
label:
v = new oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping$StaticMapping: void <init>(java.util.Map,java.util.Map)>(v, v);
return v;
catch java.lang.Throwable from label to label with label;
}
public synchronized int getUid(java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v, v, v, v;
java.io.IOException v;
int v;
java.lang.Object v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: oadd.com.google.common.collect.BiMap inverse()>();
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMapIncr(java.lang.String,boolean)>(v, 0);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: oadd.com.google.common.collect.BiMap inverse()>();
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
v = new java.io.IOException;
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[])>("User just deleted?:\u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
return v;
}
public synchronized int getGid(java.lang.String) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v, v, v, v;
java.io.IOException v;
int v;
java.lang.Object v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: oadd.com.google.common.collect.BiMap inverse()>();
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMapIncr(java.lang.String,boolean)>(v, 1);
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: oadd.com.google.common.collect.BiMap inverse()>();
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
v = new java.io.IOException;
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[])>("No such group:\u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
return v;
}
public synchronized java.lang.String getUserName(int, java.lang.String)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v, v;
org.slf4j.Logger v;
java.lang.Integer v, v;
java.lang.Exception v;
int v;
java.lang.Object v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: int;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMapIncr(int,boolean)>(v, 0);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap uidNameMap>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
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[])>("Can\'t find user name for uid \u. Use default user name \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
public synchronized java.lang.String getGroupName(int, java.lang.String)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
oadd.com.google.common.collect.BiMap v, v;
org.slf4j.Logger v;
java.lang.Integer v, v;
java.lang.Exception v;
int v;
java.lang.Object v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: int;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
label:
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void updateMapIncr(int,boolean)>(v, 1);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: oadd.com.google.common.collect.BiMap gidNameMap>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<oadd.com.google.common.collect.BiMap: java.lang.Object get(java.lang.Object)>(v);
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
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[])>("Can\'t find group name for gid \u. Use default group name \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = v;
label:
return v;
catch java.lang.Exception from label to label with label;
}
public int getUidAllowingUnknown(java.lang.String)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
org.slf4j.Logger v;
int v;
java.io.IOException v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: int getUid(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("Can\'t map user \u. Use its string hashcode:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
return v;
catch java.io.IOException from label to label with label;
}
public int getGidAllowingUnknown(java.lang.String)
{
oadd.org.apache.hadoop.security.ShellBasedIdMapping v;
org.slf4j.Logger v;
int v;
java.io.IOException v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.ShellBasedIdMapping;
v := @parameter: java.lang.String;
specialinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: void checkAndUpdateMaps()>();
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.security.ShellBasedIdMapping: int getGid(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
v = <oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("Can\'t map group \u. Use its string hashcode:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
return v;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.lang.String v;
java.util.regex.Pattern v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/ShellBasedIdMapping;");
<oadd.org.apache.hadoop.security.ShellBasedIdMapping: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.lang.String OS> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^\\s*$");
<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern EMPTY_LINE> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^\\s*#.*$");
<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern COMMENT_LINE> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^(uid|gid)\\s+(\\d+)\\s+(0|-?[1-9]\\d*)\\s*(#.*)?$");
<oadd.org.apache.hadoop.security.ShellBasedIdMapping: java.util.regex.Pattern MAPPING_LINE> = v;
return;
}
}