public class org.apache.zookeeper.server.quorum.LearnerHandler extends org.apache.zookeeper.server.ZooKeeperThread
{
private static final org.slf4j.Logger LOG;
public static final java.lang.String LEADER_CLOSE_SOCKET_ASYNC;
public static final boolean closeSocketAsync;
protected final java.net.Socket sock;
java.util.concurrent.atomic.AtomicBoolean sockBeingClosed;
final org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster;
volatile long tickOfNextAckDeadline;
protected long sid;
protected int version;
final java.util.concurrent.LinkedBlockingQueue queuedPackets;
private final java.util.concurrent.atomic.AtomicLong queuedPacketsSize;
protected final java.util.concurrent.atomic.AtomicLong packetsReceived;
protected final java.util.concurrent.atomic.AtomicLong packetsSent;
protected final java.util.concurrent.atomic.AtomicLong requestsReceived;
protected volatile long lastZxid;
protected final java.util.Date established;
private final int markerPacketInterval;
private java.util.concurrent.atomic.AtomicInteger packetCounter;
private org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck;
private org.apache.jute.BinaryInputArchive ia;
private org.apache.jute.BinaryOutputArchive oa;
private final java.io.BufferedInputStream bufferedInput;
private java.io.BufferedOutputStream bufferedOutput;
protected final org.apache.zookeeper.server.util.MessageTracker messageTracker;
private volatile boolean sendingThreadStarted;
public static final java.lang.String FORCE_SNAP_SYNC;
private boolean forceSnapSync;
private boolean needOpPacket;
private long leaderLastZxid;
private org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler;
final org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath;
private org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType;
public java.net.Socket getSocket()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.net.Socket v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
return v;
}
long getSid()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
long v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
return v;
}
java.lang.String getRemoteAddress()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.net.Socket v, v;
java.net.SocketAddress v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v != null goto label;
v = "<null>";
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getRemoteSocketAddress()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
label:
return v;
}
int getVersion()
{
int v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: int version>;
return v;
}
public synchronized long getLastZxid()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
long v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long lastZxid>;
return v;
}
public java.util.Date getEstablished()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.lang.Object v;
java.util.Date v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.Date established>;
v = virtualinvoke v.<java.util.Date: java.lang.Object clone()>();
return v;
}
protected void setOutputArchive(org.apache.jute.BinaryOutputArchive)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.jute.BinaryOutputArchive v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: org.apache.jute.BinaryOutputArchive;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa> = v;
return;
}
protected void setBufferedOutput(java.io.BufferedOutputStream)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.io.BufferedOutputStream v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: java.io.BufferedOutputStream;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput> = v;
return;
}
void <init>(java.net.Socket, java.io.BufferedInputStream, org.apache.zookeeper.server.quorum.LearnerMaster) throws java.io.IOException
{
java.io.DataInputStream v;
java.net.Socket v;
java.io.BufferedInputStream v;
java.net.SocketAddress v, v;
java.util.Date v;
java.util.concurrent.atomic.AtomicBoolean v;
javax.security.sasl.SaslException v;
org.apache.zookeeper.server.util.MessageTracker v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v;
int v;
java.lang.String v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
boolean v;
org.slf4j.Logger v, v;
org.apache.zookeeper.server.quorum.auth.QuorumAuthServer v;
java.io.IOException v;
java.util.concurrent.LinkedBlockingQueue v;
org.apache.zookeeper.server.quorum.LearnerMaster v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.util.concurrent.atomic.AtomicLong v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: java.net.Socket;
v := @parameter: java.io.BufferedInputStream;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerMaster;
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.<org.apache.zookeeper.server.ZooKeeperThread: void <init>(java.lang.String)>(v);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicBoolean sockBeingClosed> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid> = 0L;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: int version> = 1;
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong queuedPacketsSize> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsReceived> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsSent> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong requestsReceived> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long lastZxid> = -1L;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.Date established> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: int markerPacketInterval> = 1000;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicInteger packetCounter> = v;
v = new org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck;
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void <init>(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted> = 0;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync> = 0;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 1;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath> = v;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType PARTICIPANT>;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock> = v;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster> = v;
v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync> = 1;
v = <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 = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.quorum.auth.QuorumAuthServer getQuorumAuthServer()>();
if v == null goto label;
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
interfaceinvoke v.<org.apache.zookeeper.server.quorum.auth.QuorumAuthServer: void authenticate(java.net.Socket,java.io.DataInputStream)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <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);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSocket()>();
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:
v = new org.apache.zookeeper.server.util.MessageTracker;
v = <org.apache.zookeeper.server.util.MessageTracker: int BUFFERED_MESSAGE_SIZE>;
specialinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void <init>(int)>(v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker> = v;
return;
catch java.io.IOException from label to label with label;
}
public java.lang.String toString()
{
java.net.Socket v;
long v;
java.util.concurrent.LinkedBlockingQueue v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
int v;
java.lang.StringBuilder v, v, v, v, v;
java.lang.String v;
boolean v;
v := @this: 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.<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.<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.<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.<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 org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType getLearnerType()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType>;
return v;
}
private void sendPackets() throws java.lang.InterruptedException
{
org.apache.jute.BinaryOutputArchive v;
org.apache.zookeeper.server.util.MessageTracker v;
org.apache.zookeeper.metrics.SummarySet v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
byte v;
boolean v, v;
java.util.concurrent.LinkedBlockingQueue v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
long v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.BufferedOutputStream v;
org.apache.zookeeper.server.ServerMetrics v, v;
int v, v, v, v;
java.lang.String v, v;
org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
org.slf4j.Logger v, v, v;
java.io.IOException v;
java.util.concurrent.atomic.AtomicLong v, v;
java.lang.Object v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: java.lang.Object take()>();
label:
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.SummarySet LEARNER_HANDLER_QP_SIZE>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: int size()>();
interfaceinvoke v.<org.apache.zookeeper.metrics.SummarySet: void add(java.lang.String,long)>(v, v);
v = v instanceof org.apache.zookeeper.server.quorum.LearnerHandler$MarkerQuorumPacket;
if v == 0 goto label;
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.SummarySet LEARNER_HANDLER_QP_TIME>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler$MarkerQuorumPacket: long time>;
v = v - v;
v = v / 1000000L;
interfaceinvoke v.<org.apache.zookeeper.metrics.SummarySet: void add(java.lang.String,long)>(v, v);
label:
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong queuedPacketsSize>;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler: long packetSize(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
v = neg v;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPacket proposalOfDeath>;
if v == v goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 2 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <java.lang.System: long nanoTime()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void updateProposal(long,long)>(v, v);
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = 16L;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 5 goto label;
v = 128L;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logQuorumPacket(org.slf4j.Logger,long,char,org.apache.zookeeper.server.quorum.QuorumPacket)>(v, v, 111, v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long lastZxid> = v;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsSent>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackSent(int)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Exception while sending packets in LearnerHandler", v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSocket()>();
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(org.apache.zookeeper.server.quorum.QuorumPacket)
{
byte[] v;
java.io.DataInputStream v;
org.slf4j.Logger v;
java.io.IOException v;
long v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.io.ByteArrayInputStream v;
int v, v;
java.lang.String v, v, v, v;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = null;
v = virtualinvoke v.<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";
goto label;
label:
v = "REQUEST";
goto label;
label:
v = "REVALIDATE";
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
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 = <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.<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.<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;
}
public void run()
{
java.io.BufferedInputStream v;
org.apache.zookeeper.metrics.Counter v, v, v, v;
java.lang.Integer v;
org.apache.zookeeper.server.quorum.StateSummary v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.LearnerSyncRequest v;
org.apache.jute.BinaryOutputArchive v, v, v, v, v, v;
java.io.ByteArrayInputStream v;
java.io.DataInputStream 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, v;
org.apache.jute.BinaryInputArchive v, v, v, v, v;
org.apache.zookeeper.server.RequestRecord v, v;
java.lang.Exception v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.net.SocketAddress v;
org.apache.zookeeper.metrics.Summary v, v, v, v;
boolean v, v, v, v, v;
org.apache.zookeeper.server.Request v, v;
java.util.List v, v;
java.io.OutputStream v;
byte[] v, v, v, v, v, v;
byte v;
java.lang.Long v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerMaster 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.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;
java.io.IOException v, v, v;
java.util.concurrent.atomic.AtomicLong 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;
org.apache.zookeeper.server.util.MessageTracker v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v, v, v, v, v, v, v, v;
java.lang.Throwable v, v;
org.apache.zookeeper.server.ZKDatabase v, v;
java.io.BufferedOutputStream v, v, v, v, v, v;
org.apache.zookeeper.server.ServerMetrics v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v, v;
java.nio.ByteBuffer v, v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v, v, v, v, v;
org.apache.zookeeper.server.quorum.SyncThrottleException v;
java.util.concurrent.LinkedBlockingQueue v, v;
java.net.Socket v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerSyncThrottler 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.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void addLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: int getTickOfInitialAckDeadline()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline> = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedInputStream bufferedInput>;
v = staticinvoke <org.apache.jute.BinaryInputArchive: org.apache.jute.BinaryInputArchive getArchive(java.io.InputStream)>(v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryInputArchive ia> = v;
v = new java.io.BufferedOutputStream;
v = v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput> = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
v = staticinvoke <org.apache.jute.BinaryOutputArchive: org.apache.jute.BinaryOutputArchive getArchive(java.io.OutputStream)>(v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa> = v;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<org.apache.jute.BinaryInputArchive: void readRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackReceived(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 11 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 16 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("First packet {} is not FOLLOWERINFO or OBSERVERINFO!", v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = v instanceof org.apache.zookeeper.server.quorum.ObserverMaster;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 16 goto label;
v = new java.io.IOException;
v = virtualinvoke v.<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[])>("Non observer attempting to connect to ObserverMaster. type = \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<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.<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.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long getQuorumVerifierVersion()>();
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.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long getAndDecrementFollowerCounter()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid> = v;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: java.lang.String getPeerInfo(long)>(v);
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long getQuorumVerifierVersion()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Follower sid: {} not in the current config {}", v, v);
goto label;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Follower sid: {} : info : {}", v, v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 16 goto label;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType> = v;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void registerLearnerHandlerBean(org.apache.zookeeper.server.quorum.LearnerHandler,java.net.Socket)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long getEpochToPropose(long,long)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: int getVersion()>();
if v >= 65536 goto label;
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = new org.apache.zookeeper.server.quorum.StateSummary;
specialinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: void <init>(long,long)>(v, v);
v = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void waitForEpochAck(long,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 org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(17, v, v, null);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackSent(int)>(17);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<org.apache.jute.BinaryInputArchive: void readRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackReceived(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 18 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("{} is not ACKEPOCH", v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = new org.apache.zookeeper.server.quorum.StateSummary;
v = virtualinvoke v.<java.nio.ByteBuffer: int getInt()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: void <init>(long,long)>(v, v);
v = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void waitForEpochAck(long,org.apache.zookeeper.server.quorum.StateSummary)>(v, v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: long getLastZxid()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean syncFollower(long,org.apache.zookeeper.server.quorum.LearnerMaster)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType getLearnerType()>();
v = <org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.quorum.LearnerSyncThrottler getLearnerSnapSyncThrottler()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void beginSync(boolean)>(v);
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary INFLIGHT_SNAP_COUNT>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: int getSyncInProgress()>();
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(15, v, null, null);
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackSent(int)>(15);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
v = <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.<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 = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: int getSyncInProgress()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
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 snapshot sync, snapshot sync was {} from throttle", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void serializeSnapshot(org.apache.jute.OutputArchive)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeString(java.lang.String,java.lang.String)>("BenWasHere", "signature");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
label:
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Counter SNAP_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Counter SNAP_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.quorum.LearnerSyncThrottler getLearnerDiffSyncThrottler()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void beginSync(boolean)>(v);
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary INFLIGHT_DIFF_COUNT>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: int getSyncInProgress()>();
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Counter DIFF_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Sending NEWLEADER message to {}", v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: int getVersion()>();
if v >= 65536 goto label;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(10, v, null, null);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryOutputArchive oa>;
virtualinvoke v.<org.apache.jute.BinaryOutputArchive: void writeRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
goto label;
label:
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: byte[] getQuorumVerifierBytes()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(10, v, v, null);
v = v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: java.io.BufferedOutputStream bufferedOutput>;
virtualinvoke v.<java.io.BufferedOutputStream: void flush()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void startSendingPackets()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<org.apache.jute.BinaryInputArchive: void readRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackReceived(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v == 3 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String packetToString(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Next packet was supposed to be an ACK, but received packet: {}", v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
return;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Received NEWLEADER-ACK message from {}", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void waitForNewLeaderAck(long,long)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void start()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
if v == 0 goto label;
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary INFLIGHT_SNAP_COUNT>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: int getSyncInProgress()>();
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
goto label;
label:
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary INFLIGHT_DIFF_COUNT>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: int getSyncInProgress()>();
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
label:
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: int syncTimeout()>();
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void waitForStartup()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Sending UPTODATE message to {}", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<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 org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.jute.BinaryInputArchive ia>;
virtualinvoke v.<org.apache.jute.BinaryInputArchive: void readRecord(org.apache.jute.Record,java.lang.String)>(v, "packet");
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void trackReceived(int)>(v);
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = 16L;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: int getType()>();
if v != 5 goto label;
v = 128L;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logQuorumPacket(org.slf4j.Logger,long,char,org.apache.zookeeper.server.quorum.QuorumPacket)>(v, v, 105, v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: int getTickOfNextAckDeadline()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline> = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsReceived>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = virtualinvoke v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType learnerType>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType: org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType OBSERVER>;
if v != v goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Received ACK from Observer {}", v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: void updateAck(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long sid>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
v = virtualinvoke v.<java.net.Socket: java.net.SocketAddress getLocalSocketAddress()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void processAck(long,long,java.net.SocketAddress)>(v, v, v);
goto label;
label:
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
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.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void touch(long,int)>(v, v);
goto label;
label:
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Counter REVALIDATE_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void revalidateSession(org.apache.zookeeper.server.quorum.QuorumPacket,org.apache.zookeeper.server.quorum.LearnerHandler)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: long getLong()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int 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 org.apache.zookeeper.server.quorum.LearnerSyncRequest;
v = staticinvoke <org.apache.zookeeper.server.RequestRecord: org.apache.zookeeper.server.RequestRecord fromBytes(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: java.util.List getAuthinfo()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncRequest: void <init>(org.apache.zookeeper.server.quorum.LearnerHandler,long,int,int,org.apache.zookeeper.server.RequestRecord,java.util.List)>(v, v, v, v, v, v);
v = v;
goto label;
label:
v = new org.apache.zookeeper.server.Request;
v = staticinvoke <org.apache.zookeeper.server.RequestRecord: org.apache.zookeeper.server.RequestRecord fromBytes(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: java.util.List getAuthinfo()>();
specialinvoke v.<org.apache.zookeeper.server.Request: void <init>(org.apache.zookeeper.server.ServerCnxn,long,int,int,org.apache.zookeeper.server.RequestRecord,java.util.List)>(null, v, v, v, v, v);
v = v;
label:
virtualinvoke v.<org.apache.zookeeper.server.Request: void setOwner(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void submitLearnerRequest(org.apache.zookeeper.server.Request)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong requestsReceived>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
goto label;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String packetToString(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("unexpected quorum packet, type: {}", v);
goto label;
label:
v := @caughtexception;
v = <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 in LearnerHandler: ", v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSocket()>();
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <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 in LearnerHandler.", v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("too many concurrent sync.", v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
v := @caughtexception;
v = <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 in LearnerHandler.", v);
throw v;
label:
v := @caughtexception;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerSyncThrottler: void endSync()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerSyncThrottler syncThrottler> = null;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("******* GOODBYE {} ********", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.util.MessageTracker messageTracker>;
virtualinvoke v.<org.apache.zookeeper.server.util.MessageTracker: void dumpToLog(java.lang.String)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
throw v;
label:
return;
catch java.lang.Throwable 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 org.apache.zookeeper.server.quorum.SyncThrottleException from label to label with label;
catch org.apache.zookeeper.server.quorum.SyncThrottleException from label to label with label;
catch org.apache.zookeeper.server.quorum.SyncThrottleException from label to label with label;
catch org.apache.zookeeper.server.quorum.SyncThrottleException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception 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()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.slf4j.Logger v;
org.apache.zookeeper.server.quorum.LearnerHandler$1 v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted>;
if v != 0 goto label;
v = new org.apache.zookeeper.server.quorum.LearnerHandler$1;
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$1: void <init>(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$1: void start()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted> = 1;
goto label;
label:
v = <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;
}
protected boolean shouldSendMarkerPacketForLogging()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
return 1;
}
boolean syncFollower(long, org.apache.zookeeper.server.quorum.LearnerMaster)
{
byte v, v, v, v, v, v, v;
java.lang.Long v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v;
org.apache.zookeeper.server.quorum.LearnerMaster v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.lang.Throwable v;
java.lang.Object[] v, v;
org.apache.zookeeper.server.ZKDatabase 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;
boolean v, v, v, v, v, v, v, v, v;
java.util.Collection v, v, v;
java.util.concurrent.LinkedBlockingQueue v;
java.lang.Boolean v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: long;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerMaster;
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.<org.apache.zookeeper.server.quorum.LearnerMaster: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: boolean isTxnLogSyncEnabled()>();
v = virtualinvoke v.<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.<org.apache.zookeeper.server.ZKDatabase: long getmaxCommittedLog()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: long getminCommittedLog()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = virtualinvoke v.<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 Learner sid: {} maxCommittedLog=0x{} minCommittedLog=0x{} lastProcessedZxid=0x{} peerLastZxid=0x{}", v);
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.Collection getCommittedLog()>();
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v == 0 goto label;
v = v;
v = v;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean forceSnapSync>;
if v == 0 goto label;
v = <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 = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Sending DIFF zxid=0x{} for peer sid: {}", v, v);
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<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 = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Sending TRUNC to follower zxidToSend=0x{} for peer sid:{}", v, v);
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(14, v);
v = v;
v.<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 = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Using committedLog for peer sid: {}", v);
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.Collection getCommittedLog()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<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.<org.apache.zookeeper.server.ZKDatabase: long calculateTxnLogSizeLimit()>();
v = virtualinvoke v.<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 = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Use txnlog and committedLog for peer sid: {}", 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.<org.apache.zookeeper.server.quorum.LearnerHandler: long queueCommittedProposals(java.util.Iterator,long,java.lang.Long,java.lang.Long)>(v, v, v, v);
v = v cmp v;
if v >= 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Detected gap between end of txnlog: 0x{} and start of committedLog: 0x{}", v, v);
v = v;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: void clear()>();
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 1;
goto label;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Queueing committedLog 0x{}", v);
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.Collection getCommittedLog()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<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 org.apache.zookeeper.server.TxnLogProposalIterator;
if v == 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.TxnLogProposalIterator: void close()>();
goto label;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[6];
v = virtualinvoke v.<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;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[5] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Unhandled scenario for peer sid: {} maxCommittedLog=0x{} minCommittedLog=0x{} lastProcessedZxid=0x{} peerLastZxid=0x{} txnLogSyncEnabled={}", v);
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: long getDataTreeLastProcessedZxid()>();
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Start forwarding 0x{} for peer sid: {}", v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long startForwarding(org.apache.zookeeper.server.quorum.LearnerHandler,long)>(v, v);
v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Unhandled scenario for peer sid: {} fall back to use snapshot", 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)
{
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
byte v, v, v, v, v, v, v;
java.lang.Long v, v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler 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;
org.slf4j.Logger v, v, v, v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: 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.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
v = v cmp v;
if v != 0 goto label;
v = <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.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Sending DIFF zxid=0x{}  for peer sid: {}", v, v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
goto label;
label:
if v == 0 goto label;
v = <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.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Sending DIFF zxid=0x{}  for peer sid: {}", v, v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
goto label;
label:
v = v cmp v;
if v <= 0 goto label;
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<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 = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Sending TRUNC zxid=0x{}  for peer sid: {}", v, v);
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(14, v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
label:
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(4, v);
v = v;
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket>;
if v == 0 goto label;
if v == 0 goto label;
v = <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.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Sending DIFF zxid=0x{}  for peer sid: {}", v, v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queueOpPacket(int,long)>(13, v);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = 0;
label:
return v;
}
public void shutdown()
{
org.slf4j.Logger v;
java.util.concurrent.LinkedBlockingQueue v, v;
org.apache.zookeeper.server.quorum.LearnerMaster v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: void clear()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: 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 = <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:
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSocket()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void interrupt()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void removeLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void unregisterLearnerHandlerBean(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
return;
catch java.lang.InterruptedException from label to label with label;
}
public long tickOfNextAckDeadline()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
long v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: long tickOfNextAckDeadline>;
return v;
}
public void ping()
{
org.slf4j.Logger v;
long v, v;
org.apache.zookeeper.server.quorum.LearnerMaster v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean sendingThreadStarted>;
if v != 0 goto label;
return;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck syncLimitCheck>;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$SyncLimitCheck: boolean check(long)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: long getLastProposed()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(5, v, null, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
v = <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.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
label:
return;
}
private void queueOpPacket(int, long)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
int v;
long v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: int;
v := @parameter: long;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(v, v, null, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
}
void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)
{
long v, v;
java.util.concurrent.LinkedBlockingQueue v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.util.concurrent.atomic.AtomicLong v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v;
org.apache.zookeeper.server.quorum.LearnerHandler$MarkerQuorumPacket v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean shouldSendMarkerPacketForLogging()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicInteger packetCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndIncrement()>();
v = v % 1000;
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = new org.apache.zookeeper.server.quorum.LearnerHandler$MarkerQuorumPacket;
v = staticinvoke <java.lang.System: long nanoTime()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler$MarkerQuorumPacket: void <init>(long)>(v);
virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong queuedPacketsSize>;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler: long packetSize(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
return;
}
static long packetSize(org.apache.zookeeper.server.quorum.QuorumPacket)
{
org.apache.zookeeper.server.quorum.QuorumPacket v;
byte[] v;
int v;
long v;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = 28L;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
if v == null goto label;
v = lengthof v;
v = 28L + v;
label:
return v;
}
public boolean synced()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
byte v;
int v;
long v;
boolean v, v;
org.apache.zookeeper.server.quorum.LearnerMaster v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean isAlive()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: org.apache.zookeeper.server.quorum.LearnerMaster learnerMaster>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: int getCurrentTick()>();
v = v.<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 synchronized java.util.Map getLearnerHandlerInfo()
{
java.util.Date v;
long v, v, v, v, v, v;
java.lang.Integer v;
java.util.LinkedHashMap v;
java.lang.Long v, v, v, v, v, v;
int v;
java.lang.String v;
java.util.concurrent.LinkedBlockingQueue v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.util.concurrent.atomic.AtomicLong v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(9);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.lang.String getRemoteAddress()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("remote_socket_address", v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("sid", v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.Date getEstablished()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("established", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
v = virtualinvoke v.<java.util.concurrent.LinkedBlockingQueue: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("queued_packets", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong queuedPacketsSize>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("queued_packets_size", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsReceived>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("packets_received", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsSent>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("packets_sent", v);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong requestsReceived>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long longValue()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("requests", v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getLastZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("last_zxid", v);
return v;
}
public synchronized void resetObserverConnectionStats()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.util.concurrent.atomic.AtomicLong v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsReceived>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong packetsSent>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicLong requestsReceived>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
v.<org.apache.zookeeper.server.quorum.LearnerHandler: long lastZxid> = -1L;
return;
}
public java.util.Queue getQueuedPackets()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.util.concurrent.LinkedBlockingQueue v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.LinkedBlockingQueue queuedPackets>;
return v;
}
public void setFirstPacket(boolean)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: boolean;
v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean needOpPacket> = v;
return;
}
void closeSocket()
{
java.net.Socket v, v;
org.slf4j.Logger v, v;
java.util.concurrent.atomic.AtomicBoolean v;
long v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.lang.Long v, v;
boolean v, v, v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = v.<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.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.concurrent.atomic.AtomicBoolean sockBeingClosed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: boolean closeSocketAsync>;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Asynchronously closing socket to learner {}.", v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSockAsync()>();
goto label;
label:
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Synchronously closing socket to learner {}.", v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void closeSockSync()>();
label:
return;
}
void closeSockAsync()
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.lang.Thread v;
long v;
java.lang.String v;
java.lang.Runnable v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
v = new java.lang.Thread;
v = staticinvoke <org.apache.zookeeper.server.quorum.LearnerHandler$lambda_closeSockAsync_0__179: java.lang.Runnable bootstrap$(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
v = v.<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[])>("CloseSocketThread(sid:\u0001");
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable,java.lang.String)>(v, v);
virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
virtualinvoke v.<java.lang.Thread: void start()>();
return;
}
void closeSockSync()
{
java.net.Socket v, v;
org.slf4j.Logger v;
java.io.IOException v;
long v, v, v, v;
org.apache.zookeeper.metrics.Summary v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.lang.Long v;
org.apache.zookeeper.server.ServerMetrics v;
v := @this: org.apache.zookeeper.server.quorum.LearnerHandler;
label:
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
if v == null goto label;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.net.Socket sock>;
virtualinvoke v.<java.net.Socket: void close()>();
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary SOCKET_CLOSING_TIME>;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v - v;
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Ignoring error closing connection to learner {}", v, v);
label:
return;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v, v;
java.lang.Boolean v;
java.lang.String v;
boolean v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/quorum/LearnerHandler;");
<org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG> = v;
v = staticinvoke <org.apache.zookeeper.server.util.ConfigUtils: java.lang.String getPropertyBackwardCompatibleWay(java.lang.String)>("zookeeper.leader.closeSocketAsync");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
<org.apache.zookeeper.server.quorum.LearnerHandler: boolean closeSocketAsync> = v;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.LearnerHandler: boolean closeSocketAsync>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.leader.closeSocketAsync", v);
return;
}
}