public class org.apache.zookeeper.server.quorum.Learner extends java.lang.Object
{
org.apache.zookeeper.server.quorum.QuorumPeer self;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk;
protected java.io.BufferedOutputStream bufferedOutput;
protected java.net.Socket sock;
protected org.apache.zookeeper.server.quorum.MultipleAddresses leaderAddr;
protected java.util.concurrent.atomic.AtomicBoolean sockBeingClosed;
org.apache.zookeeper.server.quorum.LearnerSender sender;
protected org.apache.jute.InputArchive leaderIs;
protected org.apache.jute.OutputArchive leaderOs;
protected int leaderProtocolVersion;
private static final int BUFFERED_MESSAGE_SIZE;
protected final org.apache.zookeeper.server.util.MessageTracker messageTracker;
protected static final org.slf4j.Logger LOG;
private static final int leaderConnectDelayDuringRetryMs;
private static final boolean nodelay;
public static final java.lang.String LEARNER_ASYNC_SENDING;
private static boolean asyncSending;
public static final java.lang.String LEARNER_CLOSE_SOCKET_ASYNC;
public static final boolean closeSocketAsync;
final java.util.concurrent.ConcurrentHashMap pendingRevalidations;
public void <init>()
{
java.util.concurrent.ConcurrentHashMap v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.zookeeper.server.util.MessageTracker v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.atomic.AtomicBoolean sockBeingClosed> = v;
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender> = null;
v.<org.apache.zookeeper.server.quorum.Learner: int leaderProtocolVersion> = 1;
v = new org.apache.zookeeper.server.util.MessageTracker;
specialinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void <init>(int)>(10);
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.util.MessageTracker messageTracker> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.ConcurrentHashMap pendingRevalidations> = v;
return;
}
public java.net.Socket getSocket()
{
java.net.Socket v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
return v;
}
public int getPendingRevalidationsCount()
{
int v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.ConcurrentHashMap pendingRevalidations>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
return v;
}
protected static void setAsyncSending(boolean)
{
org.slf4j.Logger v;
java.lang.Boolean v;
boolean v, v;
v := @parameter: boolean;
<org.apache.zookeeper.server.quorum.Learner: boolean asyncSending> = v;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Learner: boolean asyncSending>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.learner.asyncSending", v);
return;
}
protected static boolean getAsyncSending()
{
boolean v;
v = <org.apache.zookeeper.server.quorum.Learner: boolean asyncSending>;
return v;
}
void validateSession(org.apache.zookeeper.server.ServerCnxn, long, int) throws java.io.IOException
{
byte[] v;
java.io.ByteArrayOutputStream v;
long v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.io.DataOutputStream v;
java.lang.Long v;
int v;
org.apache.zookeeper.server.ServerCnxn v;
java.lang.String v, v, v;
boolean v;
org.slf4j.Logger v, v, v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.ServerCnxn;
v := @parameter: long;
v := @parameter: int;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Revalidating client: 0x{}", v);
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.DataOutputStream: void writeLong(long)>(v);
virtualinvoke v.<java.io.DataOutputStream: void writeInt(int)>(v);
virtualinvoke v.<java.io.DataOutputStream: void close()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(6, -1L, v, null);
v = v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.ConcurrentHashMap pendingRevalidations>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
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[])>("To validate session 0x\u0001");
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logTraceMessage(org.slf4j.Logger,long,java.lang.String)>(v, 32L, v);
label:
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
return;
}
void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket, boolean) throws java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.LearnerSender v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v := @parameter: boolean;
v = <org.apache.zookeeper.server.quorum.Learner: boolean asyncSending>;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacketNow(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, v);
label:
return;
}
void writePacketNow(org.apache.zookeeper.server.quorum.QuorumPacket, boolean) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.zookeeper.server.util.MessageTracker v;
java.io.BufferedOutputStream v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
int v;
org.apache.jute.OutputArchive v, v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v := @parameter: boolean;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.OutputArchive leaderOs>;
entermonitor v;
label:
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackSent(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.OutputArchive leaderOs>;
interfaceinvoke v.<org.apache.jute.OutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
label:
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void startSendingThread()
{
org.apache.zookeeper.server.quorum.LearnerSender v, v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = new org.apache.zookeeper.server.quorum.LearnerSender;
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void <init>(org.apache.zookeeper.server.quorum.Learner)>(v);
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void start()>();
return;
}
void readPacket(org.apache.zookeeper.server.quorum.QuorumPacket) throws java.io.IOException
{
java.lang.Throwable v;
org.slf4j.Logger v, v;
org.apache.jute.InputArchive v, v;
long v;
org.apache.zookeeper.server.util.MessageTracker v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
int v, v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.InputArchive leaderIs>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.InputArchive leaderIs>;
interfaceinvoke v.<org.apache.jute.InputArchive: void readRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackReceived(int)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 5 goto label;
v = 128L;
goto label;
label:
v = 16L;
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logQuorumPacket(org.slf4j.Logger,long,char,org.apache.zookeeper.server.quorum.QuorumPacket)>(v, v, 105, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
void request(org.apache.zookeeper.server.Request) throws java.io.IOException
{
byte[] v, v;
org.slf4j.Logger v;
java.io.ByteArrayOutputStream v;
long v;
org.apache.zookeeper.server.ExitCode v;
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.util.List v;
java.io.DataOutputStream v;
int v, v, v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.Request;
v = virtualinvoke v.<org.apache.zookeeper.server.Request: boolean isThrottled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Throttled request sent to leader: {}. Exiting", v);
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
label:
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
v = v.<org.apache.zookeeper.server.Request: long sessionId>;
virtualinvoke v.<java.io.DataOutputStream: void writeLong(long)>(v);
v = v.<org.apache.zookeeper.server.Request: int cxid>;
virtualinvoke v.<java.io.DataOutputStream: void writeInt(int)>(v);
v = v.<org.apache.zookeeper.server.Request: int type>;
virtualinvoke v.<java.io.DataOutputStream: void writeInt(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.Request: byte[] readRequestBytes()>();
if v == null goto label;
virtualinvoke v.<java.io.DataOutputStream: void write(byte[])>(v);
label:
virtualinvoke v.<java.io.DataOutputStream: void close()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
v = v.<org.apache.zookeeper.server.Request: java.util.List authInfo>;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(1, -1L, v, v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
return;
}
protected org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer findLeader()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.Vote v;
long v, v, v;
byte v;
java.lang.Long v;
java.util.Map v;
boolean v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Collection v;
org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer v;
java.lang.Object v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = null;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.Vote getCurrentVote()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.Map getView()>();
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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 = v.<org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer: long id>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Vote: long getId()>();
v = v cmp v;
if v != 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer: void recreateSocketAddresses()>();
v = v;
label:
if v != null goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Vote: long getId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Couldn\'t find the leader with id = {}", v);
label:
return v;
}
protected long nanoTime()
{
long v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = staticinvoke <java.lang.System: long nanoTime()>();
return v;
}
protected void sockConnect(java.net.Socket, java.net.InetSocketAddress, int) throws java.io.IOException
{
java.net.Socket v;
int v;
java.net.InetSocketAddress v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: java.net.Socket;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: int;
virtualinvoke v.<java.net.Socket: void connect(java.net.SocketAddress,int)>(v, v);
return;
}
protected void connectToLeader(org.apache.zookeeper.server.quorum.MultipleAddresses, java.lang.String) throws java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.jute.BinaryOutputArchive v;
java.io.BufferedInputStream v;
boolean v, v, v, v, v;
java.util.Set v;
java.util.concurrent.CountDownLatch v;
java.util.stream.Stream v, v;
java.lang.Throwable v;
java.net.Socket v, v, v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.concurrent.atomic.AtomicReference v;
java.util.function.Function v;
java.io.BufferedOutputStream v, v;
int v, v;
java.lang.String v, v;
java.util.concurrent.ExecutorService v;
java.io.OutputStream v;
org.slf4j.Logger v, v, v, v, v, v, v;
java.io.IOException v;
org.apache.jute.BinaryInputArchive v;
java.util.concurrent.TimeUnit v, v, v;
java.util.function.Consumer v;
org.apache.zookeeper.server.quorum.MultipleAddresses v;
java.lang.InterruptedException v, v, v, v;
org.apache.zookeeper.server.quorum.auth.QuorumAuthLearner v;
java.lang.Object v, v;
org.apache.zookeeper.server.quorum.Learner v;
java.io.InputStream v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.MultipleAddresses;
v := @parameter: java.lang.String;
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.MultipleAddresses leaderAddr> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isMultiAddressReachabilityCheckEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.MultipleAddresses: java.util.Set getAllReachableAddressesOrAll()>();
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.MultipleAddresses: java.util.Set getAllAddresses()>();
label:
v = interfaceinvoke v.<java.util.Set: int size()>();
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int)>(v);
v = new java.util.concurrent.CountDownLatch;
v = interfaceinvoke v.<java.util.Set: int size()>();
specialinvoke v.<java.util.concurrent.CountDownLatch: void <init>(int)>(v);
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(null);
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.zookeeper.server.quorum.Learner$lambda_connectToLeader_0__176: java.util.function.Function bootstrap$(org.apache.zookeeper.server.quorum.Learner,java.util.concurrent.atomic.AtomicReference,java.util.concurrent.CountDownLatch)>(v, v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.zookeeper.server.quorum.Learner$submit__177: java.util.function.Consumer bootstrap$(java.util.concurrent.ExecutorService)>(v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
label:
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
label:
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(1L, v);
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("not all the LeaderConnector terminated properly");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Interrupted while terminating LeaderConnector executor.", v);
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Interrupted while trying to connect to Leader", v);
label:
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(1L, v);
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("not all the LeaderConnector terminated properly");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Interrupted while terminating LeaderConnector executor.", v);
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(1L, v);
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("not all the LeaderConnector terminated properly");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Interrupted while terminating LeaderConnector executor.", v);
label:
throw v;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v != null goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.zookeeper.server.quorum.MultipleAddresses)>(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[])>("Failed connect to \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.atomic.AtomicBoolean sockBeingClosed>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.auth.QuorumAuthLearner authLearner>;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
interfaceinvoke v.<org.apache.zookeeper.server.quorum.auth.QuorumAuthLearner: void authenticate(java.net.Socket,java.lang.String)>(v, v);
v = new java.io.BufferedInputStream;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.io.InputStream getInputStream()>();
specialinvoke v.<java.io.BufferedInputStream: void <init>(java.io.InputStream)>(v);
v = staticinvoke <org.apache.jute.BinaryInputArchive: org.apache.jute.BinaryInputArchive getArchive(java.io.InputStream)>(v);
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.InputArchive leaderIs> = v;
v = new java.io.BufferedOutputStream;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.io.OutputStream getOutputStream()>();
specialinvoke v.<java.io.BufferedOutputStream: void <init>(java.io.OutputStream)>(v);
v.<org.apache.zookeeper.server.quorum.Learner: java.io.BufferedOutputStream bufferedOutput> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.io.BufferedOutputStream bufferedOutput>;
v = staticinvoke <org.apache.jute.BinaryOutputArchive: org.apache.jute.BinaryOutputArchive getArchive(java.io.OutputStream)>(v);
v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.OutputArchive leaderOs> = v;
v = <org.apache.zookeeper.server.quorum.Learner: boolean asyncSending>;
if v == 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void startSendingThread()>();
label:
return;
catch java.lang.InterruptedException 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;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
protected java.net.Socket createSocket() throws org.apache.zookeeper.common.X509Exception, java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v;
java.net.Socket v, v;
int v, v, v;
org.apache.zookeeper.common.QuorumX509Util v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isSslQuorum()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.common.QuorumX509Util getX509Util()>();
v = virtualinvoke v.<org.apache.zookeeper.common.QuorumX509Util: javax.net.ssl.SSLSocket createSSLSocket()>();
goto label;
label:
v = new java.net.Socket;
specialinvoke v.<java.net.Socket: void <init>()>();
v = v;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int initLimit>;
v = v * v;
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
return v;
}
protected long registerWithLeader(int) throws java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v, v, v, v, v, v, v;
byte[] v, v, v;
org.apache.jute.BinaryOutputArchive v;
java.nio.ByteBuffer v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
byte v, v, v;
java.io.ByteArrayOutputStream v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v;
java.lang.String v;
org.slf4j.Logger v;
org.apache.zookeeper.server.quorum.LearnerInfo v;
java.io.IOException v, v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: int;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getLastLoggedZxid()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void setType(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void setZxid(long)>(v);
v = new org.apache.zookeeper.server.quorum.LearnerInfo;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerInfo: void <init>(long,int,long)>(v, 65536, v);
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = staticinvoke <org.apache.jute.BinaryOutputArchive: org.apache.jute.BinaryOutputArchive getArchive(java.io.OutputStream)>(v);
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "LearnerInfo");
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void setData(byte[])>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void readPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 17 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: int getInt()>();
v.<org.apache.zookeeper.server.quorum.Learner: int leaderProtocolVersion> = v;
v = newarray (byte)[4];
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getCurrentEpoch()>();
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer putInt(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setAcceptedEpoch(long)>(v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = v cmp v;
if v != 0 goto label;
v = (int) -1;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer putInt(int)>(v);
goto label;
label:
v = new java.io.IOException;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(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[])>("Leaders epoch, \u is less than accepted epoch, \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(18, v, v, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
return v;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setAcceptedEpoch(long)>(v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 10 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("First packet should have been NEWLEADER");
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("First packet should have been NEWLEADER");
throw v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
return v;
}
protected void syncWithLeader(long) throws java.lang.Exception
{
org.apache.zookeeper.server.admin.AdminServer v;
org.apache.jute.Record v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.Learner v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.nio.charset.Charset v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode v, v, v, v;
java.lang.Exception v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.txn.TxnHeader v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.ArrayDeque v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.txn.TxnDigest v, v, v, v, v, v;
byte[] v, v, v, v, v, v, v, v, v, v, v;
byte v, v, v, v, v;
java.lang.Long v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.IOException v;
org.apache.zookeeper.server.TxnLogEntry v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.ExitCode v, v;
java.lang.Object v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.jute.InputArchive v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v, v;
org.apache.zookeeper.server.quorum.Learner$PacketInFlight v, v;
java.lang.Throwable v;
org.apache.zookeeper.server.ZKDatabase v, v, v, v, v, v;
java.lang.UnsupportedOperationException v;
java.nio.ByteBuffer v, v;
java.net.Socket v;
java.util.Iterator v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: long;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(3, 0L, null, null);
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = null;
v = 1;
v = 0;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void readPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
entermonitor v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 13 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Getting a diff from the leader 0x{}", v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode DIFF>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setSyncMode(org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: boolean shouldForceWriteInitialSnapshotAfterLeaderElection()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Forcing a snapshot write as part of upgrading from an older Zookeeper. This should only happen while upgrading.");
v = 1;
v = 1;
goto label;
label:
v = 0;
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 15 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode SNAP>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setSyncMode(org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode)>(v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Getting a snapshot from leader 0x{}", v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.InputArchive leaderIs>;
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void deserializeSnapshot(org.apache.jute.InputArchive)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isReconfigEnabled()>();
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Reset config node content from local config after deserialization of snapshot.");
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void initConfigInZKDatabase(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.jute.InputArchive leaderIs>;
v = interfaceinvoke v.<org.apache.jute.InputArchive: java.lang.String readString(java.lang.String)>("signature");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("BenWasHere");
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Missing signature. Got {}", v);
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Missing signature");
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void setlastProcessedZxid(long)>(v);
v = 1;
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 14 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode TRUNC>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setSyncMode(org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode)>(v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Truncating log to get in sync with the leader 0x{}", v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: boolean truncateLog(long)>(v);
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Not able to truncate the log 0x{}", v);
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode QUORUM_PACKET_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void setlastProcessedZxid(long)>(v);
goto label;
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String packetToString(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Got unexpected packet from leader: {}, exiting ... ", v);
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode QUORUM_PACKET_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void initConfigInZKDatabase(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: void createSessionTracker()>();
v = 0L;
v = 1;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isRunning()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void readPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
tableswitch(v)
{
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
case 14: goto label;
case 15: goto label;
case 16: goto label;
case 17: goto label;
case 18: goto label;
case 19: goto label;
default: goto label;
};
label:
v = new org.apache.zookeeper.server.quorum.Learner$PacketInFlight;
specialinvoke v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: void <init>()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: org.apache.zookeeper.server.TxnLogEntry deserializeTxn(byte[])>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnHeader getHeader()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.jute.Record getTxn()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnDigest getDigest()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = v + 1L;
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = v + 1L;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Got zxid 0x{} expected 0x{}", v, v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
if v != 16 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = new java.lang.String;
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: byte[] getData()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier configFromString(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setLastSeenQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,boolean)>(v, 1);
label:
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v cmp v;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 9 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = new java.lang.String;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: byte[] getData()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier configFromString(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean processReconfig(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,java.lang.Long,java.lang.Long,boolean)>(v, v, v, 1);
if v == 0 goto label;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("changes proposed in reconfig");
throw v;
label:
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Committing 0x{}, but next proposal is 0x{}", v, v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.DataTree$ProcessTxnResult processTxn(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record)>(v, v);
interfaceinvoke v.<java.util.Deque: java.lang.Object remove()>();
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.apache.zookeeper.server.quorum.Learner$PacketInFlight;
specialinvoke v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: void <init>()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 19 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = newarray (byte)[v];
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer get(byte[])>(v);
v = staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: org.apache.zookeeper.server.TxnLogEntry deserializeTxn(byte[])>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnHeader getHeader()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.jute.Record getTxn()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnDigest getDigest()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = new java.lang.String;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
v = virtualinvoke v.<org.apache.zookeeper.txn.SetDataTxn: byte[] getData()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier configFromString(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean processReconfig(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,java.lang.Long,java.lang.Long,boolean)>(v, v, v, 1);
if v == 0 goto label;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("changes proposed in reconfig");
throw v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: org.apache.zookeeper.server.TxnLogEntry deserializeTxn(byte[])>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.jute.Record getTxn()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnHeader getHeader()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.TxnLogEntry: org.apache.zookeeper.txn.TxnDigest getDigest()>();
v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest> = v;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = v + 1L;
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = v + 1L;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Got zxid 0x{} expected 0x{}", v, v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
label:
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: org.apache.zookeeper.server.DataTree$ProcessTxnResult processTxn(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record)>(v, v);
goto label;
label:
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Learner received UPTODATE message");
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean processReconfig(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,java.lang.Long,java.lang.Long,boolean)>(v, null, null, 1);
if v == 0 goto label;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("changes proposed in reconfig");
throw v;
label:
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: java.io.File takeSnapshot(boolean)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setCurrentEpoch(long)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.admin.AdminServer adminServer>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
interfaceinvoke v.<org.apache.zookeeper.server.admin.AdminServer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(v);
goto label;
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Learner received NEWLEADER message");
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = lengthof v;
if v <= 1 goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = new java.lang.String;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.lang.String: void <init>(byte[],java.nio.charset.Charset)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier configFromString(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setLastSeenQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,boolean)>(v, 1);
v = v;
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
label:
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: java.io.File takeSnapshot(boolean)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setCurrentEpoch(long)>(v);
v = 1;
v = 0;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v * v;
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode NONE>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setSyncMode(org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: void startupWithoutServing()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v instanceof org.apache.zookeeper.server.quorum.FollowerZooKeeperServer;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = interfaceinvoke v.<java.util.Deque: 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 = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.FollowerZooKeeperServer: void logRequest(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,org.apache.zookeeper.txn.TxnDigest)>(v, v, v);
goto label;
label:
interfaceinvoke v.<java.util.Deque: void clear()>();
label:
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(3, v, null, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void setZxid(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: void startServing()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void updateElectionVote(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v instanceof org.apache.zookeeper.server.quorum.FollowerZooKeeperServer;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = interfaceinvoke v.<java.util.Deque: 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 = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.FollowerZooKeeperServer: void logRequest(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,org.apache.zookeeper.txn.TxnDigest)>(v, v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.Deque: 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.Long: long longValue()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.FollowerZooKeeperServer: void commit(long)>(v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v instanceof org.apache.zookeeper.server.quorum.ObserverZooKeeperServer;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = interfaceinvoke v.<java.util.Deque: 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 = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Committing 0x{}, but next proposal is 0x{}", v, v);
goto label;
label:
interfaceinvoke v.<java.util.Deque: java.lang.Object remove()>();
v = new org.apache.zookeeper.server.Request;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getClientId()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getCxid()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnHeader hdr>;
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.jute.Record rec>;
specialinvoke v.<org.apache.zookeeper.server.Request: void <init>(long,int,int,org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,long)>(v, v, v, v, v, -1L);
v = v.<org.apache.zookeeper.server.quorum.Learner$PacketInFlight: org.apache.zookeeper.txn.TxnDigest digest>;
virtualinvoke v.<org.apache.zookeeper.server.Request: void setTxnDigest(org.apache.zookeeper.txn.TxnDigest)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.ObserverZooKeeperServer: void commitRequest(org.apache.zookeeper.server.Request)>(v);
goto label;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Unknown server type");
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void revalidate(org.apache.zookeeper.server.quorum.QuorumPacket) throws java.io.IOException
{
byte[] v;
java.io.DataInputStream v;
long v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.io.ByteArrayInputStream v;
java.lang.Long v;
java.lang.String v, v, v;
boolean v, v;
org.slf4j.Logger v, v, v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v;
java.lang.Object v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
v = virtualinvoke v.<java.io.DataInputStream: long readLong()>();
v = virtualinvoke v.<java.io.DataInputStream: boolean readBoolean()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.ConcurrentHashMap pendingRevalidations>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v != null goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Missing session 0x{} for validation", v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: void finishSessionInit(org.apache.zookeeper.server.ServerCnxn,boolean)>(v, v);
label:
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean)>(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[])>("Session 0x\u is valid: \u0001");
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logTraceMessage(org.slf4j.Logger,long,java.lang.String)>(v, 32L, v);
label:
return;
}
protected void ping(org.apache.zookeeper.server.quorum.QuorumPacket) throws java.io.IOException
{
byte[] v;
java.io.ByteArrayOutputStream v;
long v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
java.io.DataOutputStream v;
java.util.Map v;
int v, v;
boolean v;
java.util.Iterator v;
java.util.Set v;
java.util.List v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v;
java.lang.Object v, v, v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: java.util.Map getTouchSnapshot()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<java.io.DataOutputStream: void writeLong(long)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
virtualinvoke v.<java.io.DataOutputStream: void writeInt(int)>(v);
goto label;
label:
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: java.util.List getAuthinfo()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(v, v, v, v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void writePacket(org.apache.zookeeper.server.quorum.QuorumPacket,boolean)>(v, 1);
return;
}
public void shutdown()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerSender v, v;
org.apache.zookeeper.server.admin.AdminServer v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v, v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v;
org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode v, v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(null);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void closeAllConnections()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.admin.AdminServer adminServer>;
interfaceinvoke v.<org.apache.zookeeper.server.admin.AdminServer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(null);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerSender sender>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSender: void shutdown()>();
label:
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void closeSocket()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode getSyncMode()>();
v = <org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode SNAP>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer$SyncMode: boolean equals(java.lang.Object)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: void shutdown(boolean)>(v);
label:
return;
}
boolean isRunning()
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isRunning()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: boolean isRunning()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
void closeSocket()
{
java.net.Socket v;
java.util.concurrent.atomic.AtomicBoolean v;
long v;
java.lang.Runnable v;
java.lang.Thread v;
org.apache.zookeeper.server.quorum.LearnerZooKeeperServer v;
java.lang.String v;
org.apache.zookeeper.server.quorum.Learner v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.util.concurrent.atomic.AtomicBoolean sockBeingClosed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Learner: boolean closeSocketAsync>;
if v == 0 goto label;
v = new java.lang.Thread;
v = staticinvoke <org.apache.zookeeper.server.quorum.Learner$lambda_closeSocket_1__178: java.lang.Runnable bootstrap$(org.apache.zookeeper.server.quorum.Learner)>(v);
v = v.<org.apache.zookeeper.server.quorum.Learner: org.apache.zookeeper.server.quorum.LearnerZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerZooKeeperServer: long getServerId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("CloseSocketThread(sid:\u0001");
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable,java.lang.String)>(v, v);
virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
virtualinvoke v.<java.lang.Thread: void start()>();
goto label;
label:
virtualinvoke v.<org.apache.zookeeper.server.quorum.Learner: void closeSockSync()>();
label:
return;
}
void closeSockSync()
{
java.net.Socket v, v;
org.slf4j.Logger v;
java.io.IOException v;
long v, v, v;
org.apache.zookeeper.metrics.Summary v;
org.apache.zookeeper.server.ServerMetrics v;
org.apache.zookeeper.server.quorum.Learner v;
v := @this: org.apache.zookeeper.server.quorum.Learner;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock>;
virtualinvoke v.<java.net.Socket: void close()>();
v.<org.apache.zookeeper.server.quorum.Learner: java.net.Socket sock> = null;
label:
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary SOCKET_CLOSING_TIME>;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v - v;
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Ignoring error closing connection to leader", v);
label:
return;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
java.lang.Integer v, v;
int v, v;
java.lang.Boolean v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/quorum/Learner;");
<org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.leaderConnectDelayDuringRetryMs", 100);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.apache.zookeeper.server.quorum.Learner: int leaderConnectDelayDuringRetryMs> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("follower.nodelay", "true");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("true");
<org.apache.zookeeper.server.quorum.Learner: boolean nodelay> = v;
v = staticinvoke <org.apache.zookeeper.server.util.ConfigUtils: java.lang.String getPropertyBackwardCompatibleWay(java.lang.String)>("zookeeper.learner.asyncSending");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
<org.apache.zookeeper.server.quorum.Learner: boolean asyncSending> = v;
v = staticinvoke <org.apache.zookeeper.server.util.ConfigUtils: java.lang.String getPropertyBackwardCompatibleWay(java.lang.String)>("zookeeper.learner.closeSocketAsync");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
<org.apache.zookeeper.server.quorum.Learner: boolean closeSocketAsync> = v;
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Learner: int leaderConnectDelayDuringRetryMs>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("leaderConnectDelayDuringRetryMs: {}", v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Learner: boolean nodelay>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("TCP NoDelay set to: {}", v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Learner: boolean asyncSending>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.learner.asyncSending", v);
v = <org.apache.zookeeper.server.quorum.Learner: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Learner: boolean closeSocketAsync>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.learner.closeSocketAsync", v);
return;
}
}