public class oadd.org.apache.zookeeper.server.quorum.LearnerHandler extends oadd.org.apache.zookeeper.server.ZooKeeperThread
{
private static final org.slf4j.Logger LOG;
protected final java.net.Socket sock;
final oadd.org.apache.zookeeper.server.quorum.Leader leader;
volatile long tickOfNextAckDeadline;
protected long sid;
protected int version;
final java.util.concurrent.LinkedBlockingQueue queuedPackets;
private oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck;
private oadd.org.apache.jute.BinaryInputArchive ia;
private oadd.org.apache.jute.BinaryOutputArchive oa;
private final java.io.BufferedInputStream bufferedInput;
private java.io.BufferedOutputStream bufferedOutput;
private volatile boolean sendingThreadStarted;
public static final java.lang.String FORCE_SNAP_SYNC;
private boolean forceSnapSync;
private boolean needOpPacket;
private long leaderLastZxid;
final oadd.org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath;
private oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType;
public java.net.Socket getSocket()
{
java.net.Socket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
return v;
}
long getSid()
{
long v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
return v;
}
int getVersion()
{
int v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: int version>;
return v;
}
void <init>(java.net.Socket, java.io.BufferedInputStream, oadd.org.apache.zookeeper.server.quorum.Leader) throws java.io.IOException
{
java.io.DataInputStream v;
java.net.Socket v;
java.io.BufferedInputStream v;
java.net.SocketAddress v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
javax.security.sasl.SaslException v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
java.lang.String v, v, v;
boolean v;
org.slf4j.Logger v, v;
oadd.org.apache.zookeeper.server.quorum.Leader v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer v, v;
java.io.IOException v;
java.util.concurrent.LinkedBlockingQueue v;
oadd.org.apache.zookeeper.server.quorum.auth.QuorumAuthServer v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: java.net.Socket;
v := @parameter: java.io.BufferedInputStream;
v := @parameter: oadd.org.apache.zookeeper.server.quorum.Leader;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.SocketAddress)>(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[])>("LearnerHandler-\u0001");
specialinvoke v.<oadd.org.apache.zookeeper.server.ZooKeeperThread: void <init>(java.lang.String)>(v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid> = 0L;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: int version> = 1;
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets> = v;
v = new oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void <init>(oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted> = 0;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync> = 0;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 1;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath> = v;
v = <oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType PARTICIPANT>;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader> = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedInputStream bufferedInput> = v;
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("zookeeper.forceSnapshotSync");
if v == 0 goto label;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync> = 1;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Forcing snapshot sync is enabled");
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: oadd.org.apache.zookeeper.server.quorum.auth.QuorumAuthServer authServer>;
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
interfaceinvoke v.<oadd.org.apache.zookeeper.server.quorum.auth.QuorumAuthServer: void authenticate(java.net.Socket,java.io.DataInputStream)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Server failed to authenticate quorum learner, addr: {}, closing connection", v, v);
v = new javax.security.sasl.SaslException;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
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[])>("Authentication failure: \u0001");
specialinvoke v.<javax.security.sasl.SaslException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
public java.lang.String toString()
{
java.net.Socket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
long v;
java.util.concurrent.LinkedBlockingQueue v;
int v;
java.lang.StringBuilder v, v, v, v, v;
java.lang.String v;
boolean v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("LearnerHandler ");
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" tickOfNextAckDeadline:");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" synced?:");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean synced()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" queuedPacketLength:");
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: int size()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType getLearnerType()
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType>;
return v;
}
private void sendPackets() throws java.lang.InterruptedException
{
java.net.Socket v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
long v, v, v;
java.io.BufferedOutputStream v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
int v, v;
java.lang.String v, v;
boolean v, v;
org.slf4j.Logger v, v, v, v;
oadd.org.apache.jute.BinaryOutputArchive v;
java.io.IOException v, v;
java.util.concurrent.LinkedBlockingQueue v, v;
java.lang.Object v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = 16L;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object poll()>();
if v != null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object take()>();
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath>;
if v == v goto label;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 5 goto label;
v = 128L;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 2 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.System: long nanoTime()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void updateProposal(long,long)>(v, v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
staticinvoke <oadd.org.apache.zookeeper.server.ZooTrace: void logQuorumPacket(org.slf4j.Logger,long,char,oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v, v, 111, v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<oadd.org.apache.jute.BinaryOutputArchive: void writeRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
label:
goto label;
label:
v := @caughtexception;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: boolean isClosed()>();
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(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[])>("Unexpected exception at \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(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[])>("Error closing socket for handler \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public static java.lang.String packetToString(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)
{
byte[] v, v;
java.io.DataInputStream v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
long v, v;
java.io.ByteArrayInputStream v;
int v, v;
java.lang.String v, v, v, v;
org.slf4j.Logger v, v;
java.io.IOException v, v;
oadd.org.apache.zookeeper.txn.TxnHeader v;
v := @parameter: oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
v = null;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
tableswitch(v)
{
case 1: goto label;
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 = "ACK";
goto label;
label:
v = "COMMIT";
goto label;
label:
v = "FOLLOWERINFO";
goto label;
label:
v = "NEWLEADER";
goto label;
label:
v = "PING";
goto label;
label:
v = "PROPOSAL";
v = new oadd.org.apache.zookeeper.txn.TxnHeader;
specialinvoke v.<oadd.org.apache.zookeeper.txn.TxnHeader: void <init>()>();
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
staticinvoke <oadd.org.apache.zookeeper.server.util.SerializeUtils: oadd.org.apache.jute.Record deserializeTxn(byte[],oadd.org.apache.zookeeper.txn.TxnHeader)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Unexpected exception", v);
goto label;
label:
v = "REQUEST";
goto label;
label:
v = "REVALIDATE";
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<oadd.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);
label:
v = virtualinvoke v.<java.io.DataInputStream: long readLong()>();
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[])>(" sessionid = \u0001");
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Unexpected exception", v);
goto label;
label:
v = "UPTODATE";
goto label;
label:
v = "DIFF";
goto label;
label:
v = "TRUNC";
goto label;
label:
v = "SNAP";
goto label;
label:
v = "ACKEPOCH";
goto label;
label:
v = "SYNC";
goto label;
label:
v = "INFORM";
goto label;
label:
v = "COMMITANDACTIVATE";
goto label;
label:
v = "INFORMANDACTIVATE";
goto label;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("UNKNOWN\u0001");
label:
v = null;
if v == null goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u \u \u0001");
label:
return v;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public void run()
{
java.io.BufferedInputStream v;
java.lang.Integer v;
oadd.org.apache.jute.BinaryInputArchive v, v, v, v, v;
java.io.Serializable v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException v;
java.io.ByteArrayOutputStream v;
java.io.ByteArrayInputStream v, v;
java.util.concurrent.atomic.AtomicInteger v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v, v, v, v, v;
java.io.DataInputStream v, v;
int 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;
oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v, v, v;
oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v, v, v, v, v, 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, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.net.SocketAddress v;
oadd.org.apache.zookeeper.server.quorum.LearnerSnapshotThrottler v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.Leader 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.util.List v, v;
oadd.org.apache.zookeeper.KeeperException$SessionExpiredException v;
java.io.OutputStream v;
byte[] v, v, v, v, v, v, v, v;
byte v;
java.lang.Long v, v;
java.util.Map v, v;
oadd.org.apache.zookeeper.server.Request v, v;
java.lang.Object[] 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;
oadd.org.apache.zookeeper.server.quorum.LearnerSyncRequest v;
java.io.IOException v, v, v;
java.util.concurrent.atomic.AtomicLong v;
oadd.org.apache.zookeeper.server.ZKDatabase v, v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v, v;
org.slf4j.Logger 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;
oadd.org.apache.jute.BinaryOutputArchive v, v, v, v, v, v;
java.lang.Object v;
java.io.DataOutputStream v;
oadd.org.apache.zookeeper.server.quorum.StateSummary v, v, v;
java.lang.Throwable v, v, v;
java.io.BufferedOutputStream v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
java.nio.ByteBuffer v, v, v, v, v;
java.util.concurrent.LinkedBlockingQueue v, v, v;
java.net.Socket v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.InterruptedException v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void addLearnerHandler(oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int initLimit>;
v = v + v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v + v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline> = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedInputStream bufferedInput>;
v = staticinvoke <oadd.org.apache.jute.BinaryInputArchive: oadd.org.apache.jute.BinaryInputArchive getArchive(java.io.InputStream)>(v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryInputArchive ia> = v;
v = new java.io.BufferedOutputStream;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: 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.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput> = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
v = staticinvoke <oadd.org.apache.jute.BinaryOutputArchive: oadd.org.apache.jute.BinaryOutputArchive getArchive(java.io.OutputStream)>(v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa> = v;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<oadd.org.apache.jute.BinaryInputArchive: void readRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 11 goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 16 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: java.lang.String toString()>();
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[])>("First packet \u is not FOLLOWERINFO or OBSERVERINFO!");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
if v == null goto label;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = lengthof v;
if v < 8 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid> = v;
label:
v = lengthof v;
if v < 12 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int getInt()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: int version> = v;
label:
v = lengthof v;
if v < 20 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp v;
if v <= 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Follower is ahead of the leader (has a later activated configuration)");
throw v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.atomic.AtomicLong followerCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndDecrement()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid> = v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: java.util.Map getView()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: java.util.Map getView()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Follower sid: \u : info : \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
goto label;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Follower sid: \u not in the current config \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 16 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType> = v;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <oadd.org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: long getEpochToPropose(long,long)>(v, v);
v = staticinvoke <oadd.org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: int getVersion()>();
if v >= 65536 goto label;
v = staticinvoke <oadd.org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = new oadd.org.apache.zookeeper.server.quorum.StateSummary;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.StateSummary: void <init>(long,long)>(v, v);
v = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void waitForEpochAck(long,oadd.org.apache.zookeeper.server.quorum.StateSummary)>(v, v);
goto label;
label:
v = newarray (byte)[4];
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer putInt(int)>(65536);
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(17, v, v, null);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<oadd.org.apache.jute.BinaryOutputArchive: void writeRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<oadd.org.apache.jute.BinaryInputArchive: void readRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 18 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u is not ACKEPOCH");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = new oadd.org.apache.zookeeper.server.quorum.StateSummary;
v = virtualinvoke v.<java.nio.ByteBuffer: int getInt()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.StateSummary: void <init>(long,long)>(v, v);
v = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void waitForEpochAck(long,oadd.org.apache.zookeeper.server.quorum.StateSummary)>(v, v);
label:
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.StateSummary: long getLastZxid()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: oadd.org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean syncFollower(long,oadd.org.apache.zookeeper.server.ZKDatabase,oadd.org.apache.zookeeper.server.quorum.Leader)>(v, v, v);
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType getLearnerType()>();
v = <oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LearnerSnapshotThrottler getLearnerSnapshotThrottler()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSnapshotThrottler: oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot beginSnapshot(boolean)>(v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: oadd.org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(15, v, null, null);
virtualinvoke v.<oadd.org.apache.jute.BinaryOutputArchive: void writeRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[0] = v;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long leaderLastZxid>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[2] = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot: int getConcurrentSnapshotNumber()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot: boolean isEssential()>();
if v == 0 goto label;
v = "exempt";
goto label;
label:
v = "not exempt";
label:
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Sending snapshot last zxid of peer is 0x{}, zxid of leader is 0x{}, send zxid of db as 0x{}, {} concurrent snapshots, snapshot was {} from throttle", v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: oadd.org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: void serializeSnapshot(oadd.org.apache.jute.OutputArchive)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<oadd.org.apache.jute.BinaryOutputArchive: void writeString(java.lang.String,java.lang.String)>("BenWasHere", "signature");
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
label:
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSnapshot: void close()>();
throw v;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
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[])>("Sending NEWLEADER message to \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: int getVersion()>();
if v >= 65536 goto label;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(10, v, null, null);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<oadd.org.apache.jute.BinaryOutputArchive: void writeRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
goto label;
label:
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = interfaceinvoke v.<oadd.org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(10, v, v, null);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void startSendingPackets()>();
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<oadd.org.apache.jute.BinaryInputArchive: void readRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 3 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String packetToString(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Next packet was supposed to be an ACK, but received packet: {}", v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
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[])>("Received NEWLEADER-ACK message from \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void waitForNewLeaderAck(long,long)>(v, v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void start()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v * v;
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
entermonitor v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean isRunning()>();
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean isInterrupted()>();
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<java.lang.Object: void wait(long)>(20L);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
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[])>("Sending UPTODATE message to \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(12, -1L, null, null);
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
label:
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<oadd.org.apache.jute.BinaryInputArchive: void readRecord(oadd.org.apache.jute.Record,java.lang.String)>(v, "packet");
v = 16L;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 5 goto label;
v = 128L;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
staticinvoke <oadd.org.apache.zookeeper.server.ZooTrace: void logQuorumPacket(org.slf4j.Logger,long,char,oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v, v, 105, v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v + v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline> = v;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType>;
v = <oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: oadd.org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
if v != v goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
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[])>("Received ACK from Observer  \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void updateAck(long)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getLocalSocketAddress()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void processAck(long,long,java.net.SocketAddress)>(v, v, v);
goto label;
label:
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<oadd.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);
label:
v = virtualinvoke v.<java.io.DataInputStream: int available()>();
if v <= 0 goto label;
v = virtualinvoke v.<java.io.DataInputStream: long readLong()>();
v = virtualinvoke v.<java.io.DataInputStream: int readInt()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean touch(long,int)>(v, v);
goto label;
label:
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<oadd.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: int readInt()>();
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);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean checkIfValidGlobalSession(long,int)>(v, v);
if v == 0 goto label;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void setOwner(long,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: 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[])>("Somehow session \u expired right after being renewed! (impossible)");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: 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 <oadd.org.apache.zookeeper.server.ZooTrace: void logTraceMessage(org.slf4j.Logger,long,java.lang.String)>(v, 32L, v);
label:
virtualinvoke v.<java.io.DataOutputStream: void writeBoolean(boolean)>(v);
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void setData(byte[])>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<oadd.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 getInt()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int getInt()>();
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer slice()>();
if v != 9 goto label;
v = new oadd.org.apache.zookeeper.server.quorum.LearnerSyncRequest;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: java.util.List getAuthinfo()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerSyncRequest: void <init>(oadd.org.apache.zookeeper.server.quorum.LearnerHandler,long,int,int,java.nio.ByteBuffer,java.util.List)>(v, v, v, v, v, v);
v = v;
goto label;
label:
v = new oadd.org.apache.zookeeper.server.Request;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: java.util.List getAuthinfo()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.Request: void <init>(oadd.org.apache.zookeeper.server.ServerCnxn,long,int,int,java.nio.ByteBuffer,java.util.List)>(null, v, v, v, v, v);
v = v;
label:
virtualinvoke v.<oadd.org.apache.zookeeper.server.Request: void setOwner(java.lang.Object)>(v);
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void submitLearnerRequest(oadd.org.apache.zookeeper.server.Request)>(v);
goto label;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String packetToString(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("unexpected quorum packet, type: {}", v);
goto label;
label:
v := @caughtexception;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: boolean isClosed()>();
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Unexpected exception causing shutdown while sock still open", v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Unexpected exception causing shutdown", v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException)>(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[])>("too many concurrent snapshots: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
goto label;
label:
v = "<null>";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable)>(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[])>("******* GOODBYE \u ********");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch oadd.org.apache.zookeeper.KeeperException$SessionExpiredException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException 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.InterruptedException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException from label to label with label;
catch oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException from label to label with label;
catch oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException from label to label with label;
catch oadd.org.apache.zookeeper.server.quorum.SnapshotThrottleException 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.Throwable 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.Throwable from label to label with label;
}
protected void startSendingPackets()
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$1 v;
org.slf4j.Logger v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
boolean v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted>;
if v != 0 goto label;
v = new oadd.org.apache.zookeeper.server.quorum.LearnerHandler$1;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$1: void <init>(oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$1: void start()>();
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted> = 1;
goto label;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Attempting to start sending thread after it already started");
label:
return;
}
public boolean syncFollower(long, oadd.org.apache.zookeeper.server.ZKDatabase, oadd.org.apache.zookeeper.server.quorum.Leader)
{
byte v, v, v, v, v, v;
java.lang.Long v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v;
java.lang.Throwable v;
java.lang.Object[] v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
boolean v, v, v, v, v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.Leader v;
java.util.List v, v, v;
oadd.org.apache.zookeeper.server.ZKDatabase v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v, v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: long;
v := @parameter: oadd.org.apache.zookeeper.server.ZKDatabase;
v := @parameter: oadd.org.apache.zookeeper.server.quorum.Leader;
v = v & 4294967295L;
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v;
v = 1;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: boolean isTxnLogSyncEnabled()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock getLogLock()>();
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long getmaxCommittedLog()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long getminCommittedLog()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[2] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[3] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Synchronizing with Follower sid: {} maxCommittedLog=0x{} minCommittedLog=0x{} lastProcessedZxid=0x{} peerLastZxid=0x{}", v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: java.util.List getCommittedLog()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v;
v = v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync>;
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Forcing snapshot sync - should not see this in production");
goto label;
label:
v = v cmp v;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending DIFF zxid=0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
v = 0;
goto label;
label:
v = v cmp v;
if v <= 0 goto label;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending TRUNC to follower zxidToSend=0x\u for peer sid:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(14, v);
v = v;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
v = 0;
goto label;
label:
v = v cmp v;
if v < 0 goto label;
v = v cmp v;
if v > 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
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[])>("Using committedLog for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: java.util.List getCommittedLog()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long queueCommittedProposals(java.util.Iterator,long,java.lang.Long,java.lang.Long)>(v, v, null, v);
v = 0;
goto label;
label:
v = v cmp v;
if v >= 0 goto label;
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: long calculateTxnLogSizeLimit()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: java.util.Iterator getProposalsFromTxnLog(long,long)>(v, v);
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
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[])>("Use txnlog and committedLog for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long queueCommittedProposals(java.util.Iterator,long,java.lang.Long,java.lang.Long)>(v, v, v, v);
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: 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[])>("Queueing committedLog 0x\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.ZKDatabase: java.util.List getCommittedLog()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long queueCommittedProposals(java.util.Iterator,long,java.lang.Long,java.lang.Long)>(v, v, null, v);
v = 0;
label:
v = v instanceof oadd.org.apache.zookeeper.server.TxnLogProposalIterator;
if v == 0 goto label;
virtualinvoke v.<oadd.org.apache.zookeeper.server.TxnLogProposalIterator: void close()>();
goto label;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
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[])>("Unhandled scenario for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Start forwarding 0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: long startForwarding(oadd.org.apache.zookeeper.server.quorum.LearnerHandler,long)>(v, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long leaderLastZxid> = v;
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
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[])>("Unhandled scenario for peer sid: \u fall back to use snapshot");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = 1;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
protected long queueCommittedProposals(java.util.Iterator, long, java.lang.Long, java.lang.Long)
{
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
byte v, v, v, v, v, v, v;
java.lang.Long v, v;
boolean v, v, v, v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: java.util.Iterator;
v := @parameter: long;
v := @parameter: java.lang.Long;
v := @parameter: java.lang.Long;
v = v & 4294967295L;
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v;
v = -1L;
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.<oadd.org.apache.zookeeper.server.quorum.Leader$Proposal: oadd.org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v > 0 goto label;
label:
v = v cmp v;
if v >= 0 goto label;
v = v;
goto label;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
v = v cmp v;
if v != 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending DIFF zxid=0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
goto label;
label:
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending DIFF zxid=0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
goto label;
label:
v = v cmp v;
if v <= 0 goto label;
v = staticinvoke <oadd.org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = staticinvoke <oadd.org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = v cmp v;
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
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[])>("Cannot send TRUNC to peer sid: \u peer zxid is from different epoch");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
return v;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending TRUNC zxid=0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(14, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
label:
v = v cmp v;
if v <= 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader$Proposal: oadd.org.apache.zookeeper.server.quorum.QuorumPacket packet>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(4, v);
v = v;
goto label;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
if v == 0 goto label;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Sending DIFF zxid=0x\u for peer sid: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
label:
return v;
}
public void shutdown()
{
java.net.Socket v, v, v;
org.slf4j.Logger v, v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.Leader v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
java.io.IOException v;
java.util.concurrent.LinkedBlockingQueue v;
java.lang.InterruptedException v;
boolean v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: void put(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Ignoring unexpected exception", v);
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: boolean isClosed()>();
if v != 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Ignoring unexpected exception during socket close", v);
label:
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void interrupt()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.Leader: void removeLearnerHandler(oadd.org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
return;
catch java.lang.InterruptedException from label to label with label;
catch java.io.IOException from label to label with label;
}
public long tickOfNextAckDeadline()
{
long v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline>;
return v;
}
public void ping()
{
java.lang.Throwable v;
org.slf4j.Logger v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.Leader v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
long v, v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
boolean v, v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted>;
if v != 0 goto label;
return;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: boolean check(long)>(v);
if v == 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
entermonitor v;
label:
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(5, v, null, null);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
v = <oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Closing connection to peer due to transaction timeout.");
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void queueOpPacket(int, long)
{
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
int v;
long v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: int;
v := @parameter: long;
v = new oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<oadd.org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(v, v, null, null);
virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
}
void queuePacket(oadd.org.apache.zookeeper.server.quorum.QuorumPacket)
{
java.util.concurrent.LinkedBlockingQueue v;
oadd.org.apache.zookeeper.server.quorum.QuorumPacket v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: oadd.org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
return;
}
public boolean synced()
{
oadd.org.apache.zookeeper.server.quorum.Leader v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
oadd.org.apache.zookeeper.server.quorum.QuorumPeer v;
long v;
byte v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
boolean v, v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = virtualinvoke v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean isAlive()>();
if v == 0 goto label;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: oadd.org.apache.zookeeper.server.quorum.Leader leader>;
v = v.<oadd.org.apache.zookeeper.server.quorum.Leader: oadd.org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<oadd.org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline>;
v = v cmp v;
if v > 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.Queue getQueuedPackets()
{
java.util.concurrent.LinkedBlockingQueue v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
return v;
}
public void setFirstPacket(boolean)
{
boolean v;
oadd.org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: oadd.org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: boolean;
v.<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/zookeeper/server/quorum/LearnerHandler;");
<oadd.org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG> = v;
return;
}
}