class oadd.org.apache.zookeeper.Login$1 extends java.lang.Object implements java.lang.Runnable
{
final oadd.org.apache.zookeeper.common.ZKConfig val$zkConfig;
final oadd.org.apache.zookeeper.Login this$0;
void <init>(oadd.org.apache.zookeeper.Login, oadd.org.apache.zookeeper.common.ZKConfig)
{
oadd.org.apache.zookeeper.common.ZKConfig v;
oadd.org.apache.zookeeper.Login$1 v;
oadd.org.apache.zookeeper.Login v;
v := @this: oadd.org.apache.zookeeper.Login$1;
v := @parameter: oadd.org.apache.zookeeper.Login;
v := @parameter: oadd.org.apache.zookeeper.common.ZKConfig;
v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0> = v;
v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.common.ZKConfig val$zkConfig> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void run()
{
byte v, v, v, v, v, v;
java.lang.Long v;
java.lang.Exception v;
java.lang.Object[] v, v, v, v;
long v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
javax.security.auth.login.LoginException v, v;
java.util.Date v, v, v, v, v, v, v, v, v, v;
boolean v, v, v;
oadd.org.apache.zookeeper.Login$1 v;
javax.security.auth.kerberos.KerberosTicket v;
java.lang.String[] v;
int v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.Login v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.common.ZKConfig v;
java.lang.InterruptedException v, v, v;
v := @this: oadd.org.apache.zookeeper.Login$1;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("TGT refresh thread started.");
label:
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = specialinvoke v.<oadd.org.apache.zookeeper.Login: javax.security.auth.kerberos.KerberosTicket getTGT()>();
v = staticinvoke <oadd.org.apache.zookeeper.common.Time: long currentWallTime()>();
if v != null goto label;
v = v + 60000L;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = v;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("No TGT found: will try again at {}", v);
goto label;
label:
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = specialinvoke v.<oadd.org.apache.zookeeper.Login: long getRefreshTime(javax.security.auth.kerberos.KerberosTicket)>(v);
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: java.util.Date getEndTime()>();
v = virtualinvoke v.<java.util.Date: long getTime()>();
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = v.<oadd.org.apache.zookeeper.Login: boolean isUsingTicketCache>;
if v == 0 goto label;
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: java.util.Date getEndTime()>();
v = virtualinvoke v.<javax.security.auth.kerberos.KerberosTicket: java.util.Date getRenewTill()>();
v = virtualinvoke v.<java.util.Date: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = v.<oadd.org.apache.zookeeper.Login: java.lang.String principal>;
v[1] = v;
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = v.<oadd.org.apache.zookeeper.Login: java.lang.String principal>;
v[2] = v;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("The TGT cannot be renewed beyond the next expiry date: {}.This process will not be able to authenticate new SASL connections after that time (for example, it will not be authenticate a new connection with a Zookeeper Quorum member).  Ask your system administrator to either increase the \'renew until\' time by doing : \'modprinc -maxrenewlife {}\' within kadmin, or instead, to generate a keytab for {}. Because the TGT\'s expiry cannot be further extended by refreshing, exiting refresh thread now.", v);
return;
label:
v = v cmp v;
if v > 0 goto label;
v = v + 60000L;
v = v cmp v;
if v <= 0 goto label;
label:
v = v;
goto label;
label:
v = v + 60000L;
v = v cmp v;
if v >= 0 goto label;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = new java.util.Date;
v = v + 60000L;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(60L);
v[2] = v;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("TGT refresh thread time adjusted from : {} to : {} since the former is sooner than the minimum refresh interval ({} seconds) from now.", v);
label:
v = v + 60000L;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
label:
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = v;
v = v cmp v;
if v <= 0 goto label;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("next refresh: {} is later than expiry {}. This may indicate a clock skew problem. Check that this host and the KDC\'s hosts\' clocks are in sync. Exiting refresh thread.", v);
return;
label:
v = v cmp v;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("refreshing now because expiry is before next scheduled refresh time.");
goto label;
label:
v = v cmp v;
if v >= 0 goto label;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.util.Date: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("TGT refresh sleeping until: {}", v);
label:
v = v - v;
staticinvoke <java.lang.Thread: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("TGT renewal thread has been interrupted and will exit.");
goto label;
label:
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("nextRefresh:{} is in the past: exiting refresh thread. Check clock sync between this host and KDC - (KDC\'s clock is likely ahead of this host). Manual intervention will be required for this client to successfully authenticate. Exiting refresh thread.", v);
goto label;
label:
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = v.<oadd.org.apache.zookeeper.Login: boolean isUsingTicketCache>;
if v == 0 goto label;
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.common.ZKConfig val$zkConfig>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.common.ZKConfig: java.lang.String getProperty(java.lang.String,java.lang.String)>("zookeeper.kinit", "/usr/bin/kinit");
v = 1;
label:
if v < 0 goto label;
label:
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("running ticket cache refresh command: {} {}", v, "-R");
v = newarray (java.lang.String)[2];
v[0] = v;
v[1] = "-R";
staticinvoke <oadd.org.apache.zookeeper.Shell: java.lang.String execCommand(java.lang.String[])>(v);
label:
goto label;
label:
v := @caughtexception;
if v <= 0 goto label;
v = v - 1;
label:
staticinvoke <java.lang.Thread: void sleep(long)>(10000L);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Interrupted while renewing TGT, exiting Login thread");
return;
label:
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = "-R";
v = virtualinvoke v.<java.lang.Exception: java.lang.String toString()>();
v[2] = v;
v[3] = v;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Could not renew TGT due to problem running shell command: \'{} {}\'; exception was:{}. Exiting refresh thread.", v);
return;
label:
v = 1;
label:
if v < 0 goto label;
label:
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
specialinvoke v.<oadd.org.apache.zookeeper.Login: void reLogin()>();
label:
goto label;
label:
v := @caughtexception;
if v <= 0 goto label;
v = v - 1;
label:
staticinvoke <java.lang.Thread: void sleep(long)>(10000L);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Interrupted during login retry after LoginException:", v);
throw v;
label:
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.Login$1: oadd.org.apache.zookeeper.Login this$0>;
v = v.<oadd.org.apache.zookeeper.Login: java.lang.String principal>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Could not refresh TGT for principal: {}.", v, v);
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.Login: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to refresh TGT: refresh thread exiting now.", v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch javax.security.auth.login.LoginException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch javax.security.auth.login.LoginException from label to label with label;
}
}