public class org.apache.zookeeper.server.quorum.Leader extends org.apache.zookeeper.server.quorum.LearnerMaster
{
private static final org.slf4j.Logger LOG;
private static final boolean nodelay;
private static final java.lang.String ACK_LOGGING_FREQUENCY;
private static int ackLoggingFrequency;
final org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk;
final org.apache.zookeeper.server.quorum.QuorumPeer self;
protected boolean quorumFormed;
volatile org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor;
private final java.util.HashSet learners;
private final org.apache.zookeeper.server.quorum.BufferStats proposalStats;
private final java.util.concurrent.ConcurrentHashMap connectionBeans;
private final java.util.HashSet forwardingFollowers;
private final java.util.HashSet observingLearners;
private final java.util.Map pendingSyncs;
final java.util.concurrent.atomic.AtomicLong followerCounter;
private final java.util.List serverSockets;
static final int DIFF;
static final int TRUNC;
static final int SNAP;
static final int OBSERVERINFO;
static final int NEWLEADER;
static final int FOLLOWERINFO;
static final int UPTODATE;
public static final int LEADERINFO;
public static final int ACKEPOCH;
static final int REQUEST;
public static final int PROPOSAL;
static final int ACK;
static final int COMMIT;
static final int PING;
static final int REVALIDATE;
static final int SYNC;
static final int INFORM;
static final int COMMITANDACTIVATE;
static final int INFORMANDACTIVATE;
final java.util.concurrent.ConcurrentMap outstandingProposals;
private final java.util.concurrent.ConcurrentLinkedQueue toBeApplied;
protected final org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal;
org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary;
long epoch;
boolean waitingForNewEpoch;
boolean allowedToCommit;
private long leaderStartTime;
boolean isShutdown;
long lastCommitted;
long lastProposed;
protected final java.util.Set connectingFollowers;
private volatile boolean quitWaitForEpoch;
private volatile long timeStartWaitForEpoch;
private volatile org.apache.zookeeper.server.quorum.SyncedLearnerTracker voteSet;
public static final java.lang.String MAX_TIME_TO_WAIT_FOR_EPOCH;
private static int maxTimeToWaitForEpoch;
protected final java.util.Set electingFollowers;
protected boolean electionFinished;
public static void setAckLoggingFrequency(int)
{
int v;
v := @parameter: int;
<org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency> = v;
return;
}
public static int getAckLoggingFrequency()
{
int v;
v = <org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency>;
return v;
}
public org.apache.zookeeper.server.quorum.BufferStats getProposalStats()
{
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.BufferStats v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.BufferStats proposalStats>;
return v;
}
public java.util.List getLearners()
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.ArrayList v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
entermonitor v;
label:
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.util.List getForwardingFollowers()
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.ArrayList v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.util.List getNonVotingFollowers()
{
java.lang.Throwable v;
java.util.Iterator v;
long v;
java.util.ArrayList v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean isParticipant(long)>(v);
if v != 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
void addForwardingFollower(org.apache.zookeeper.server.quorum.LearnerHandler)
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
java.util.ArrayList v;
java.util.HashSet v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean updateNeedOracle(java.util.List)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.util.List getObservingLearners()
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.ArrayList v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
entermonitor v;
label:
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
private void addObserverLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Iterable getObservingLearnersInfo()
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.HashSet v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Map v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: java.util.Map getLearnerHandlerInfo()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void resetObserverConnectionStats()
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Iterator v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void resetObserverConnectionStats()>();
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public synchronized int getNumPendingSyncs()
{
int v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Map v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Map pendingSyncs>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
public void addLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void removeLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)
{
java.lang.Throwable v, v, v;
java.util.HashSet v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners>;
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
boolean isLearnerSynced(org.apache.zookeeper.server.quorum.LearnerHandler)
{
java.lang.Throwable v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
v = virtualinvoke v.<java.util.HashSet: boolean contains(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean isQuorumSynced(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v;
java.util.HashSet v, v, v;
java.lang.Long v, v, v, v;
java.util.Map v, v;
boolean v, v, v, v, v;
java.util.Iterator v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean synced()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean containsQuorum(java.util.Set)>(v);
return v;
catch java.lang.Throwable from label to label with label;
}
public void <init>(org.apache.zookeeper.server.quorum.QuorumPeer, org.apache.zookeeper.server.quorum.LeaderZooKeeperServer) throws java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.BufferStats v;
boolean v, v;
java.util.function.Predicate v;
java.util.concurrent.ConcurrentHashMap v, v;
java.util.Set v;
java.util.List v, v;
java.util.stream.Stream v, v, v, v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
java.util.concurrent.ConcurrentLinkedQueue v;
java.util.HashMap v;
java.util.function.Function v, v;
java.util.HashSet v, v, v, v, v;
java.lang.String v;
java.util.LinkedList v;
java.io.IOException v;
java.util.function.Consumer v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.MultipleAddresses v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPeer;
v := @parameter: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer;
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerMaster: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: boolean quorumFormed> = 0;
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor> = null;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentHashMap connectionBeans> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet observingLearners> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.Map pendingSyncs> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(-1L);
v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.atomic.AtomicLong followerCounter> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.List serverSockets> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals> = v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentLinkedQueue toBeApplied> = v;
v = new org.apache.zookeeper.server.quorum.Leader$Proposal;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal> = v;
v.<org.apache.zookeeper.server.quorum.Leader: long epoch> = -1L;
v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch> = 1;
v.<org.apache.zookeeper.server.quorum.Leader: boolean allowedToCommit> = 1;
v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted> = -1L;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers> = v;
v.<org.apache.zookeeper.server.quorum.Leader: boolean quitWaitForEpoch> = 0;
v.<org.apache.zookeeper.server.quorum.Leader: long timeStartWaitForEpoch> = -1L;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers> = v;
v.<org.apache.zookeeper.server.quorum.Leader: boolean electionFinished> = 0;
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self> = v;
v = new org.apache.zookeeper.server.quorum.BufferStats;
specialinvoke v.<org.apache.zookeeper.server.quorum.BufferStats: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.BufferStats proposalStats> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean getQuorumListenOnAllIPs()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.MultipleAddresses getQuorumAddress()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.MultipleAddresses: java.util.Set getWildcardAddresses()>();
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.MultipleAddresses getQuorumAddress()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.MultipleAddresses: java.util.Set getAllAddresses()>();
label:
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader$lambda_new_0__161: java.util.function.Function bootstrap$(org.apache.zookeeper.server.quorum.Leader,org.apache.zookeeper.server.quorum.QuorumPeer)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader$isPresent__162: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader$get__163: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.List serverSockets>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader$add__164: java.util.function.Consumer bootstrap$(java.util.List)>(v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.List serverSockets>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.Set)>(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[])>("Leader failed to initialize any of the following sockets: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk> = v;
return;
}
java.util.Optional createServerSocket(java.net.InetSocketAddress, boolean, boolean)
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.slf4j.Logger v;
java.io.IOException v;
java.net.InetSocketAddress v;
java.net.ServerSocket v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Optional v, v;
org.apache.zookeeper.common.QuorumX509Util v;
java.lang.String v;
org.apache.zookeeper.server.quorum.UnifiedServerSocket v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: boolean;
v := @parameter: boolean;
label:
if v != 0 goto label;
if v == 0 goto label;
label:
v = new org.apache.zookeeper.server.quorum.UnifiedServerSocket;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.common.QuorumX509Util getX509Util()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.UnifiedServerSocket: void <init>(org.apache.zookeeper.common.X509Util,boolean)>(v, v);
v = v;
goto label;
label:
v = new java.net.ServerSocket;
specialinvoke v.<java.net.ServerSocket: void <init>()>();
v = v;
label:
virtualinvoke v.<java.net.ServerSocket: void setReuseAddress(boolean)>(1);
virtualinvoke v.<java.net.ServerSocket: void bind(java.net.SocketAddress)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.net.InetSocketAddress: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Couldn\'t bind to {}", v, v);
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
catch java.io.IOException from label to label with label;
}
public long getUptime()
{
org.apache.zookeeper.server.quorum.Leader v;
byte v;
long v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: long leaderStartTime>;
v = v cmp 0L;
if v <= 0 goto label;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: long leaderStartTime>;
v = v - v;
return v;
label:
return 0L;
}
void lead() throws java.io.IOException, java.lang.InterruptedException
{
byte v, v, v, v, v, v;
java.lang.Long v, v, v, v, v;
java.util.Map v;
org.apache.zookeeper.server.admin.AdminServer v;
org.apache.zookeeper.server.quorum.StateSummary v, v;
java.lang.Object[] v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.IOException v;
org.apache.zookeeper.server.quorum.MultipleAddresses v;
java.util.concurrent.atomic.AtomicInteger v, v;
java.util.Collection v;
java.util.concurrent.ConcurrentMap v;
java.util.HashSet v;
int v, v;
org.slf4j.Logger v, v, v, v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.LocalPeerBean v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v, v;
org.apache.zookeeper.server.quorum.LeaderBean v;
java.lang.Exception v;
org.apache.zookeeper.server.quorum.Leader$Proposal v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer$ZabState v, v, v;
java.lang.Throwable v, v, v;
java.util.ArrayList v, v;
org.apache.zookeeper.server.ServerMetrics v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor v, v;
org.apache.zookeeper.metrics.Summary v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v, v;
org.apache.zookeeper.server.quorum.SyncedLearnerTracker v;
java.util.Iterator v, v, v, v;
java.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v.<org.apache.zookeeper.server.quorum.QuorumPeer: long end_fle> = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: long end_fle>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: long start_fle>;
v = v - v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setElectionTimeTaken(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.Summary ELECTION_TIME>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
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)>("LEADING - LEADER ELECTION TOOK - {} {}", v, "MS");
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v.<org.apache.zookeeper.server.quorum.QuorumPeer: long start_fle> = 0L;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v.<org.apache.zookeeper.server.quorum.QuorumPeer: long end_fle> = 0L;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = new org.apache.zookeeper.server.quorum.LeaderBean;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
specialinvoke v.<org.apache.zookeeper.server.quorum.LeaderBean: void <init>(org.apache.zookeeper.server.quorum.Leader,org.apache.zookeeper.server.ZooKeeperServer)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.LocalPeerBean jmxLocalPeerBean>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void registerJMX(org.apache.zookeeper.server.quorum.LeaderBean,org.apache.zookeeper.server.quorum.LocalPeerBean)>(v, v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$ZabState: org.apache.zookeeper.server.quorum.QuorumPeer$ZabState DISCOVERY>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZabState(org.apache.zookeeper.server.quorum.QuorumPeer$ZabState)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void loadData()>();
v = new org.apache.zookeeper.server.quorum.StateSummary;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getCurrentEpoch()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getLastProcessedZxid()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: void <init>(long,long)>(v, v);
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary> = v;
v = new org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor: void <init>(org.apache.zookeeper.server.quorum.Leader)>(v);
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor> = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor: void start()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getAcceptedEpoch()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: long getEpochToPropose(long,long)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long makeZxid(long,long)>(v, 0L);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void setZxid(long)>(v);
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(10, v, null, null);
v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet> = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
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()>();
v = v & 4294967295L;
v = v cmp 0L;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
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()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("NEWLEADER proposal has Zxid of {}", v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp 0L;
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp v;
if v != 0 goto label;
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[1];
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.lang.String toString()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("set lastSeenQuorumVerifier to currentQuorumVerifier (%s)", v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.lang.String toString()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier configFromString(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: void setVersion(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setLastSeenQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,boolean)>(v, 1);
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void waitForEpochAck(long,org.apache.zookeeper.server.quorum.StateSummary)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setCurrentEpoch(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.MultipleAddresses getQuorumAddress()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setLeaderAddressAndId(org.apache.zookeeper.server.quorum.MultipleAddresses,long)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$ZabState: org.apache.zookeeper.server.quorum.QuorumPeer$ZabState SYNCHRONIZATION>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZabState(org.apache.zookeeper.server.quorum.QuorumPeer$ZabState)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void waitForNewLeaderAck(long,long)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.lang.String ackSetsToString()>();
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[])>("Waiting for a quorum of followers, only synced with sids: [ \u ]");
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void shutdown(java.lang.String)>(v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: java.util.List getLearners()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = 1;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean containsQuorum(java.util.Set)>(v);
if v != 0 goto label;
v = 0;
label:
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Enough followers present. Perhaps the initTicks need to be increased.");
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void unregisterJMX(org.apache.zookeeper.server.quorum.Leader)>(v);
return;
label:
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: void startZkServer()>();
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("zookeeper.testingonly.initialZxid");
if v == null goto label;
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v = v & -4294967296L;
v = v | v;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void setZxid(long)>(v);
label:
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("zookeeper.leaderServes", "yes");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("no");
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = <org.apache.zookeeper.server.quorum.QuorumPeer$ZabState: org.apache.zookeeper.server.quorum.QuorumPeer$ZabState BROADCAST>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZabState(org.apache.zookeeper.server.quorum.QuorumPeer$ZabState)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.admin.AdminServer adminServer>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
interfaceinvoke v.<org.apache.zookeeper.server.admin.AdminServer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(v);
v = 1;
label:
entermonitor v;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v / 2;
v = v + v;
label:
v = v cmp v;
if v >= 0 goto label;
v = v - v;
virtualinvoke v.<java.lang.Object: void wait(long)>(v);
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
goto label;
label:
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
label:
v = new org.apache.zookeeper.server.quorum.SyncedLearnerTracker;
specialinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: void <init>()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: boolean addAck(java.lang.Long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: java.util.List getLearners()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: boolean synced()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: long getSid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: boolean addAck(java.lang.Long)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean isRunning()>();
if v != 0 goto label;
v = "Unexpected internal error";
exitmonitor v;
label:
goto label;
label:
if v != 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: boolean hasAllQuorums()>();
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: java.util.List getForwardingFollowers()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean overrideQuorumDecision(java.util.List)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Collection values()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted>;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean revalidateOutstandingProp(org.apache.zookeeper.server.quorum.Leader,java.util.ArrayList,long)>(v, v, v);
if v != 0 goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: java.lang.String ackSetsToString()>();
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[])>("Not sufficient followers synced, only synced with sids: [ \u ]");
exitmonitor v;
label:
goto label;
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: java.util.List getLearners()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void ping()>();
goto label;
label:
if v == null goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void shutdown(java.lang.String)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void unregisterJMX(org.apache.zookeeper.server.quorum.Leader)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void unregisterJMX(org.apache.zookeeper.server.quorum.Leader)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch 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;
}
void shutdown(java.lang.String)
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v;
java.util.HashSet v, v;
java.lang.String v;
org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor v, v;
boolean v, v;
org.apache.zookeeper.server.admin.AdminServer v;
org.slf4j.Logger v, v;
java.util.Iterator v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: java.lang.String;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Shutting down");
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean isShutdown>;
if v == 0 goto label;
return;
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Shutdown called. For the reason {}", v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor cnxAcceptor>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$LearnerCnxAcceptor: void halt()>();
goto label;
label:
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void closeSockets()>();
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(null);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.admin.AdminServer adminServer>;
interfaceinvoke v.<org.apache.zookeeper.server.admin.AdminServer: void setZooKeeperServer(org.apache.zookeeper.server.ZooKeeperServer)>(null);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void closeAllConnections()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void shutdown()>();
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet learners>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<java.util.Iterator: void remove()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void shutdown()>();
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v.<org.apache.zookeeper.server.quorum.Leader: boolean isShutdown> = 1;
return;
catch java.lang.Throwable from label to label with label;
}
synchronized void closeSockets()
{
java.util.List v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Iterator v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.List serverSockets>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.net.ServerSocket: boolean isClosed()>();
goto label;
label:
return;
}
private long getDesignatedLeader(org.apache.zookeeper.server.quorum.Leader$Proposal, long)
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v;
java.lang.Long v, v, v, v, v;
java.util.Map v, v;
boolean v, v, v, v, v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v, v;
long v, v, v, v, v, v, v;
java.util.ArrayList v, v, v;
java.util.concurrent.ConcurrentMap v, v;
java.util.HashSet v, v, v;
int v, v, v;
java.util.Iterator v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.MultipleAddresses v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.Leader$Proposal;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
v = v - 1;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer: org.apache.zookeeper.server.quorum.MultipleAddresses addr>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.MultipleAddresses getQuorumAddress()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.MultipleAddresses: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
return v;
label:
v = new java.util.HashSet;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: java.util.HashSet getAckset()>();
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v + 1L;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<java.util.HashSet: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: java.util.HashSet getAckset()>();
virtualinvoke v.<java.util.HashSet: boolean retainAll(java.util.Collection)>(v);
v = virtualinvoke v.<java.util.HashSet: boolean isEmpty()>();
if v == 0 goto label;
return v;
label:
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<java.util.HashSet: int size()>();
if v != 1 goto label;
return v;
label:
v = v + 1L;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
goto label;
label:
return v;
}
public synchronized boolean tryToCommit(org.apache.zookeeper.server.quorum.Leader$Proposal, long, java.net.SocketAddress)
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v;
java.lang.Integer v;
byte v, v;
java.lang.Long v, v, v, v, v, v;
java.util.Map v, v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
java.lang.Object[] v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v, v, v, v, v, v, v, v, v;
java.util.ArrayList v, v;
org.apache.zookeeper.server.ServerMetrics v;
java.lang.String v, v, v;
org.apache.zookeeper.txn.TxnHeader v;
java.net.SocketAddress v;
org.apache.zookeeper.metrics.Summary v;
org.apache.zookeeper.server.quorum.CommitProcessor v;
boolean v, v, v, v, v;
org.apache.zookeeper.server.Request v, v, v, v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
java.util.concurrent.ConcurrentMap v, v, v;
int v, v, v, v;
java.lang.Boolean v;
org.slf4j.Logger v, v, v, v, v;
java.util.Iterator v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.Leader$Proposal;
v := @parameter: long;
v := @parameter: java.net.SocketAddress;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = v - 1L;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: boolean hasAllQuorums()>();
if v != 0 goto label;
return 0;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted>;
v = v + 1L;
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Commiting zxid 0x{} from {} not first!", v, v);
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted>;
v = v + 1L;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("First is 0x{}", v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentLinkedQueue toBeApplied>;
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
if v != null goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Going to commit null: {}", v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
v = virtualinvoke v.<org.apache.zookeeper.server.Request: org.apache.zookeeper.txn.TxnHeader getHdr()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
if v != 16 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Committing a reconfiguration! {}", v);
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: long getDesignatedLeader(org.apache.zookeeper.server.quorum.Leader$Proposal,long)>(v, v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
v = v - 1;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker$QuorumVerifierAcksetPair: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean processReconfig(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,java.lang.Long,java.lang.Long,boolean)>(v, v, v, 1);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isReconfigEnabled()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Committing a reconfiguration (reconfigEnabled=%s); this leader is not the designated leader anymore, setting allowedToCommit=false", v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v.<org.apache.zookeeper.server.quorum.Leader: boolean allowedToCommit> = 0;
label:
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void commitAndActivate(long,long)>(v, v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void informAndActivate(org.apache.zookeeper.server.quorum.Leader$Proposal,long)>(v, v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
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 QUORUM_ACK_LATENCY>;
virtualinvoke v.<org.apache.zookeeper.server.Request: void logLatency(org.apache.zookeeper.metrics.Summary)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void commit(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void inform(org.apache.zookeeper.server.quorum.Leader$Proposal)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: org.apache.zookeeper.server.quorum.CommitProcessor commitProcessor>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.CommitProcessor: void commit(org.apache.zookeeper.server.Request)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Map pendingSyncs>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Map pendingSyncs>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendSync(org.apache.zookeeper.server.quorum.LearnerSyncRequest)>(v);
goto label;
label:
return 1;
}
public synchronized void processAck(long, long, java.net.SocketAddress)
{
java.net.SocketAddress v;
org.apache.zookeeper.metrics.SummarySet v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
byte v, v, v;
java.lang.Long v, v, v;
boolean v, v, v, v, v;
java.util.Collection v;
org.apache.zookeeper.server.Request v, v, v;
long v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentMap v, v, v, v;
org.apache.zookeeper.server.ServerMetrics v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v;
java.util.Iterator v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.net.SocketAddress;
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean allowedToCommit>;
if v != 0 goto label;
return;
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Ack zxid: 0x{}", v);
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("outstanding proposal: 0x{}", v);
goto label;
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("outstanding proposals all");
label:
v = v & 4294967295L;
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: int size()>();
if v != 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("outstanding is 0");
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted>;
v = v cmp v;
if v < 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted>;
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 debug(java.lang.String,java.lang.Object,java.lang.Object)>("proposal has already been committed, pzxid: 0x{} zxid: 0x{}", v, v);
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Trying to commit future proposal: zxid 0x{} from {}", v, v);
return;
label:
v = <org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency>;
if v <= 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency>;
v = v % v;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
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 ACK_LATENCY>;
v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.Request: void logLatency(org.apache.zookeeper.metrics.SummarySet,java.lang.String)>(v, v);
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: boolean addAck(java.lang.Long)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean tryToCommit(org.apache.zookeeper.server.quorum.Leader$Proposal,long,java.net.SocketAddress)>(v, v, v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
v = virtualinvoke v.<org.apache.zookeeper.server.Request: org.apache.zookeeper.txn.TxnHeader getHdr()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
if v != 16 goto label;
v = v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean allowedToCommit>;
if v == 0 goto label;
if v == 0 goto label;
v = v + 1L;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean tryToCommit(org.apache.zookeeper.server.quorum.Leader$Proposal,long,java.net.SocketAddress)>(v, v, null);
goto label;
label:
return;
}
void sendPacket(org.apache.zookeeper.server.quorum.QuorumPacket)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.HashSet v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.HashSet forwardingFollowers>;
v = virtualinvoke v.<java.util.HashSet: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void sendObserverPacket(org.apache.zookeeper.server.quorum.QuorumPacket)
{
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.util.List v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.Iterator v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: java.util.List getObservingLearners()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
return;
}
public void commit(long)
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.metrics.Counter v;
org.apache.zookeeper.server.ServerMetrics v;
long v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
entermonitor v;
label:
v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(4, v, null, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(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 COMMIT_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
return;
catch java.lang.Throwable from label to label with label;
}
public void commitAndActivate(long, long)
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
byte[] v;
org.apache.zookeeper.server.quorum.Leader v;
long v, v;
java.nio.ByteBuffer v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: long;
entermonitor v;
label:
v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = newarray (byte)[8];
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer putLong(long)>(v);
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(9, v, v, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
catch java.lang.Throwable from label to label with label;
}
public void inform(org.apache.zookeeper.server.quorum.Leader$Proposal)
{
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
byte[] v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
long v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.Leader$Proposal;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
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: byte[] getData()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(8, v, v, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendObserverPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
}
public static org.apache.zookeeper.server.quorum.QuorumPacket buildInformAndActivePacket(long, long, byte[])
{
byte[] v, v;
long v, v;
java.nio.ByteBuffer v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
int v, v;
v := @parameter: long;
v := @parameter: long;
v := @parameter: byte[];
v = lengthof v;
v = v + 8;
v = newarray (byte)[v];
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer putLong(long)>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(byte[])>(v);
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(19, v, v, null);
return v;
}
public void informAndActivate(org.apache.zookeeper.server.quorum.Leader$Proposal, long)
{
byte[] v;
long v, v;
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.Leader$Proposal;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request>;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
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: byte[] getData()>();
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPacket buildInformAndActivePacket(long,long,byte[])>(v, v, v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendObserverPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
}
public synchronized long getLastProposed()
{
long v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
return v;
}
public long getEpoch()
{
long v, v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
v = staticinvoke <org.apache.zookeeper.server.util.ZxidUtils: long getEpochFromZxid(long)>(v);
return v;
}
public org.apache.zookeeper.server.quorum.Leader$Proposal propose(org.apache.zookeeper.server.Request) throws org.apache.zookeeper.server.quorum.Leader$XidRolloverException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v;
byte[] v;
org.apache.zookeeper.metrics.Counter v;
org.apache.zookeeper.server.quorum.BufferStats v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v;
byte v, v;
org.apache.zookeeper.server.quorum.Leader$XidRolloverException v;
java.lang.Long v;
boolean v;
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v, v, v, v, v;
long v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentMap v;
org.apache.zookeeper.server.ServerMetrics v;
int v, v, v;
org.slf4j.Logger v, v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.server.ExitCode v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.Request;
v = virtualinvoke v.<org.apache.zookeeper.server.Request: boolean isThrottled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Throttled request send as proposal: {}. Exiting.", v);
v = <org.apache.zookeeper.server.ExitCode: org.apache.zookeeper.server.ExitCode UNEXPECTED_ERROR>;
v = virtualinvoke v.<org.apache.zookeeper.server.ExitCode: int getValue()>();
staticinvoke <org.apache.zookeeper.util.ServiceUtils: void requestSystemExit(int)>(v);
label:
v = v.<org.apache.zookeeper.server.Request: long zxid>;
v = v & 4294967295L;
v = v cmp 4294967295L;
if v != 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void shutdown(java.lang.String)>("zxid lower 32 bits have rolled over, forcing re-election, and therefore new epoch start");
v = new org.apache.zookeeper.server.quorum.Leader$XidRolloverException;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader$XidRolloverException: void <init>(java.lang.String)>("zxid lower 32 bits have rolled over, forcing re-election, and therefore new epoch start");
throw v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.Request: byte[] getSerializeData()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.BufferStats proposalStats>;
v = lengthof v;
virtualinvoke v.<org.apache.zookeeper.server.quorum.BufferStats: void setLastBufferSize(int)>(v);
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(2, v, v, null);
v = new org.apache.zookeeper.server.quorum.Leader$Proposal;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet> = v;
v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request> = v;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
v = virtualinvoke v.<org.apache.zookeeper.server.Request: org.apache.zookeeper.txn.TxnHeader getHdr()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
if v != 16 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.Request: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier qv>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setLastSeenQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,boolean)>(v, 1);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void addQuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)>(v);
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Proposing:: {}", v);
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()>();
v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed> = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendPacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
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 PROPOSAL_COUNT>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
return v;
catch java.lang.Throwable from label to label with label;
}
public synchronized void processSync(org.apache.zookeeper.server.quorum.LearnerSyncRequest)
{
org.apache.zookeeper.server.quorum.LearnerSyncRequest v;
long v;
java.util.function.Function v;
java.util.concurrent.ConcurrentMap v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Long v;
java.util.Map v;
java.lang.Object v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerSyncRequest;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean isEmpty()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void sendSync(org.apache.zookeeper.server.quorum.LearnerSyncRequest)>(v);
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Map pendingSyncs>;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = staticinvoke <org.apache.zookeeper.server.quorum.Leader$lambda_processSync_1__165: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return;
}
public void sendSync(org.apache.zookeeper.server.quorum.LearnerSyncRequest)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.LearnerSyncRequest v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerSyncRequest;
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(7, 0L, null, null);
v = v.<org.apache.zookeeper.server.quorum.LearnerSyncRequest: org.apache.zookeeper.server.quorum.LearnerHandler fh>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
}
public synchronized long startForwarding(org.apache.zookeeper.server.quorum.LearnerHandler, long)
{
org.apache.zookeeper.server.quorum.QuorumPacket v, v, v, v, v;
byte v, v, v;
org.apache.zookeeper.server.quorum.QuorumPeer$LearnerType v, v, v, v;
boolean v, v;
java.util.Set v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
java.util.concurrent.ConcurrentLinkedQueue v;
long v, v, v, v, v, v;
java.util.ArrayList v;
java.util.concurrent.ConcurrentMap v, v;
java.util.Iterator v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentLinkedQueue toBeApplied>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
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);
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
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()>();
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(4, v, null, null);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
goto label;
label:
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 PARTICIPANT>;
if v != v goto label;
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Set keySet()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
staticinvoke <java.util.Collections: void sort(java.util.List)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentMap outstandingProposals>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
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);
goto label;
label:
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 PARTICIPANT>;
if v != v goto label;
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: void addForwardingFollower(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
goto label;
label:
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: void addObserverLearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: long lastProposed>;
return v;
}
public void waitForStartup() throws java.lang.InterruptedException
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Thread v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean isRunning()>();
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: boolean isInterrupted()>();
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<java.lang.Object: void wait(long)>(20L);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public static void setMaxTimeToWaitForEpoch(int)
{
org.slf4j.Logger v;
int v, v;
java.lang.Integer v;
v := @parameter: int;
<org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch> = v;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Set {} to {}ms", "zookeeper.leader.maxTimeToWaitForEpoch", v);
return;
}
private void quitLeading()
{
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.Leader v;
org.slf4j.Logger v;
org.apache.zookeeper.metrics.Counter v;
org.apache.zookeeper.server.ServerMetrics v;
java.util.Set v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
entermonitor v;
label:
v.<org.apache.zookeeper.server.quorum.Leader: boolean quitWaitForEpoch> = 1;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
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 QUIT_LEADING_DUE_TO_DISLOYAL_VOTER>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Counter: void add(long)>(1L);
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Quit leading due to voter changed mind.");
return;
catch java.lang.Throwable from label to label with label;
}
public void setLeadingVoteSet(org.apache.zookeeper.server.quorum.SyncedLearnerTracker)
{
org.apache.zookeeper.server.quorum.SyncedLearnerTracker v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.SyncedLearnerTracker;
v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.SyncedLearnerTracker voteSet> = v;
return;
}
public void reportLookingSid(long)
{
org.apache.zookeeper.server.quorum.SyncedLearnerTracker v, v;
long v, v, v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
byte v, v;
int v, v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v = <org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch>;
if v < 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: long timeStartWaitForEpoch>;
v = v cmp 0L;
if v < 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch>;
if v != 0 goto label;
label:
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.SyncedLearnerTracker voteSet>;
if v == null goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.SyncedLearnerTracker voteSet>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.SyncedLearnerTracker: boolean hasSid(long)>(v);
if v != 0 goto label;
label:
return;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: long timeStartWaitForEpoch>;
v = v - v;
v = <org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch>;
v = v cmp v;
if v <= 0 goto label;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: void quitLeading()>();
label:
return;
}
public long getEpochToPropose(long, long) throws java.lang.InterruptedException, java.io.IOException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v, v;
byte v, v, v;
java.lang.Long v, v;
boolean v, v, v, v, v, v, v;
java.util.Set v, v, v, v, v, v;
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch>;
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: long epoch>;
exitmonitor v;
label:
return v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: long epoch>;
v = v cmp v;
if v < 0 goto label;
v = v + 1L;
v.<org.apache.zookeeper.server.quorum.Leader: long epoch> = v;
label:
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean isParticipant(long)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean containsQuorum(java.util.Set)>(v);
if v == 0 goto label;
v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch> = 0;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Leader: long epoch>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void setAcceptedEpoch(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
goto label;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v cmp v;
if v != 0 goto label;
v.<org.apache.zookeeper.server.quorum.Leader: long timeStartWaitForEpoch> = v;
label:
v = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getInitLimit()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getTickTime()>();
v = v * v;
v = v + v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch>;
if v == 0 goto label;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean quitWaitForEpoch>;
if v != 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set connectingFollowers>;
v = v - v;
virtualinvoke v.<java.lang.Object: void wait(long)>(v);
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean waitingForNewEpoch>;
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>(java.lang.String)>("Timeout while waiting for epoch from quorum");
throw v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: long epoch>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.apache.zookeeper.server.ZKDatabase getZKDatabase()
{
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
return v;
}
public void waitForEpochAck(long, org.apache.zookeeper.server.quorum.StateSummary) throws java.io.IOException, java.lang.InterruptedException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v;
byte v, v, v;
java.lang.Long v, v;
boolean v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.StateSummary v, v, v, v;
java.util.Set v, v, v, v, v, v;
java.lang.Throwable v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v, v, v, v, v, v, v;
int v, v, v;
java.lang.String v;
java.io.IOException v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: org.apache.zookeeper.server.quorum.StateSummary;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean electionFinished>;
if v == 0 goto label;
exitmonitor v;
label:
return;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: long getCurrentEpoch()>();
v = v cmp -1L;
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: boolean isMoreRecentThan(org.apache.zookeeper.server.quorum.StateSummary)>(v);
if v == 0 goto label;
v = new java.io.IOException;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: long getCurrentEpoch()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.StateSummary leaderStateSummary>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: long getLastZxid()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Follower is ahead of the leader, leader summary: \u (current epoch), \u (last zxid)");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.StateSummary: long getLastZxid()>();
v = v cmp -1L;
if v == 0 goto label;
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: boolean isParticipant(long)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: boolean containsQuorum(java.util.Set)>(v);
if v == 0 goto label;
v.<org.apache.zookeeper.server.quorum.Leader: boolean electionFinished> = 1;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
goto label;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getInitLimit()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getTickTime()>();
v = v * v;
v = v + v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean electionFinished>;
if v != 0 goto label;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.Set electingFollowers>;
v = v - v;
virtualinvoke v.<java.lang.Object: void wait(long)>(v);
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean electionFinished>;
if v != 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>(java.lang.String)>("Timeout while waiting for epoch to be acked by quorum");
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.lang.String getSidSetString(java.util.Set)
{
java.util.Iterator v;
java.util.Set v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Object v;
java.lang.StringBuilder v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: java.util.Set;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",");
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private synchronized void startZkServer()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v, v, v;
byte v;
java.lang.Long v, v;
boolean v;
org.apache.zookeeper.server.quorum.Leader$Proposal v, v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
org.slf4j.Logger v, v, v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v, v, v, v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v.<org.apache.zookeeper.server.quorum.Leader: long lastCommitted> = v;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.lang.String ackSetsToString()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Have quorum of supporters, sids: [{}]; starting up and setting last processed zxid: 0x{}", v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isReconfigEnabled()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v = specialinvoke v.<org.apache.zookeeper.server.quorum.Leader: long getDesignatedLeader(org.apache.zookeeper.server.quorum.Leader$Proposal,long)>(v, v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean processReconfig(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier,java.lang.Long,java.lang.Long,boolean)>(v, v, v, 1);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: long getMyId()>();
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("This leader is not the designated leader, it will be initialized with allowedToCommit = false");
v.<org.apache.zookeeper.server.quorum.Leader: boolean allowedToCommit> = 0;
goto label;
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Dynamic reconfig feature is disabled, skip designatedLeader calculation and reconfig processing.");
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v.<org.apache.zookeeper.server.quorum.Leader: long leaderStartTime> = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void startup()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader: long getEpoch()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: void updateElectionVote(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: org.apache.zookeeper.server.ZKDatabase getZKDatabase()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: long getZxid()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void setlastProcessedZxid(long)>(v);
return;
}
public void waitForNewLeaderAck(long, long) throws java.lang.InterruptedException
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
byte v, v;
java.lang.Long v, v;
boolean v, v, v, v;
org.apache.zookeeper.server.quorum.Leader$Proposal v, v, v, v, v, v;
java.lang.Throwable v;
java.lang.Object[] v;
long v, v, v, v, v, v, v;
java.util.ArrayList v, v, v;
int v, v, v;
java.lang.String v, v;
org.slf4j.Logger v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.InterruptedException v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
entermonitor v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean quorumFormed>;
if v == 0 goto label;
exitmonitor v;
label:
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
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()>();
v = v cmp v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
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;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("NEWLEADER ACK from sid: {} is from a different epoch - current 0x{} received 0x{}", v);
exitmonitor v;
label:
return;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: boolean addAck(java.lang.Long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: boolean hasAllQuorums()>();
if v == 0 goto label;
v.<org.apache.zookeeper.server.quorum.Leader: boolean quorumFormed> = 1;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
goto label;
label:
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getInitLimit()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: int getTickTime()>();
v = v * v;
v = v + v;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean quorumFormed>;
if v != 0 goto label;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.Leader$Proposal newLeaderProposal>;
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: java.util.ArrayList qvAcksetPairs>;
v = v - v;
virtualinvoke v.<java.lang.Object: void wait(long)>(v);
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: boolean quorumFormed>;
if v != 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>(java.lang.String)>("Timeout while waiting for NEWLEADER to be acked by quorum");
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public static java.lang.String getPacketType(int)
{
int v;
v := @parameter: int;
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:
return "DIFF";
label:
return "TRUNC";
label:
return "SNAP";
label:
return "OBSERVERINFO";
label:
return "NEWLEADER";
label:
return "FOLLOWERINFO";
label:
return "UPTODATE";
label:
return "LEADERINFO";
label:
return "ACKEPOCH";
label:
return "REQUEST";
label:
return "PROPOSAL";
label:
return "ACK";
label:
return "COMMIT";
label:
return "COMMITANDACTIVATE";
label:
return "PING";
label:
return "REVALIDATE";
label:
return "SYNC";
label:
return "INFORM";
label:
return "INFORMANDACTIVATE";
label:
return "UNKNOWN";
}
private boolean isRunning()
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
org.apache.zookeeper.server.quorum.Leader v;
boolean v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: boolean isRunning()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean isRunning()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isParticipant(long)
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Long v;
java.util.Map v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.util.Map getVotingMembers()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
return v;
}
public int getCurrentTick()
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
return v;
}
public int syncTimeout()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.Leader v;
int v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int tickTime>;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v * v;
return v;
}
public int getTickOfNextAckDeadline()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v + v;
return v;
}
public int getTickOfInitialAckDeadline()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v, v;
org.apache.zookeeper.server.quorum.Leader v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v, v, v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.concurrent.atomic.AtomicInteger tick>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int initLimit>;
v = v + v;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: int syncLimit>;
v = v + v;
return v;
}
public long getAndDecrementFollowerCounter()
{
java.util.concurrent.atomic.AtomicLong v;
long v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.atomic.AtomicLong followerCounter>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndDecrement()>();
return v;
}
public void touch(long, int)
{
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
org.apache.zookeeper.server.quorum.Leader v;
int v;
long v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v := @parameter: int;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean touch(long,int)>(v, v);
return;
}
public void submitLearnerRequest(org.apache.zookeeper.server.Request)
{
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.Request;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void submitLearnerRequest(org.apache.zookeeper.server.Request)>(v);
return;
}
public long getQuorumVerifierVersion()
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
return v;
}
public java.lang.String getPeerInfo(long)
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
org.apache.zookeeper.server.quorum.Leader v;
java.lang.Long v;
java.util.Map v;
java.lang.Object v;
long v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: java.util.Map getView()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = "";
goto label;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer: java.lang.String toString()>();
label:
return v;
}
public byte[] getQuorumVerifierBytes()
{
org.apache.zookeeper.server.quorum.QuorumPeer v;
byte[] v;
org.apache.zookeeper.server.quorum.Leader v;
java.nio.charset.Charset v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier getLastSeenQuorumVerifier()>();
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.lang.String toString()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
return v;
}
public org.apache.zookeeper.server.quorum.auth.QuorumAuthServer getQuorumAuthServer()
{
org.apache.zookeeper.server.quorum.QuorumPeer v, v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.auth.QuorumAuthServer v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
if v != null goto label;
v = null;
goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.QuorumPeer self>;
v = v.<org.apache.zookeeper.server.quorum.QuorumPeer: org.apache.zookeeper.server.quorum.auth.QuorumAuthServer authServer>;
label:
return v;
}
public void revalidateSession(org.apache.zookeeper.server.quorum.QuorumPacket, org.apache.zookeeper.server.quorum.LearnerHandler) throws java.io.IOException
{
byte[] v, v;
java.io.DataInputStream v;
java.io.ByteArrayOutputStream v;
long v;
org.apache.zookeeper.server.quorum.QuorumPacket v;
java.io.ByteArrayInputStream v;
java.io.DataOutputStream v;
int v;
java.lang.String v, v, v;
boolean v, v;
org.slf4j.Logger v, v, v;
org.apache.zookeeper.KeeperException$SessionExpiredException v;
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v, v;
org.apache.zookeeper.server.quorum.Leader v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.QuorumPacket;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = new java.io.ByteArrayInputStream;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: byte[] getData()>();
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
v = new java.io.DataInputStream;
specialinvoke v.<java.io.DataInputStream: void <init>(java.io.InputStream)>(v);
v = virtualinvoke v.<java.io.DataInputStream: long readLong()>();
v = virtualinvoke v.<java.io.DataInputStream: int readInt()>();
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
virtualinvoke v.<java.io.DataOutputStream: void writeLong(long)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean checkIfValidGlobalSession(long,int)>(v, v);
if v == 0 goto label;
label:
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: void setOwner(long,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Somehow session 0x{} expired right after being renewed! (impossible)", v, v);
label:
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Session 0x\u is valid: \u0001");
staticinvoke <org.apache.zookeeper.server.ZooTrace: void logTraceMessage(org.slf4j.Logger,long,java.lang.String)>(v, 32L, v);
label:
virtualinvoke v.<java.io.DataOutputStream: void writeBoolean(boolean)>(v);
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void setData(byte[])>(v);
virtualinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandler: void queuePacket(org.apache.zookeeper.server.quorum.QuorumPacket)>(v);
return;
catch org.apache.zookeeper.KeeperException$SessionExpiredException from label to label with label;
}
public void registerLearnerHandlerBean(org.apache.zookeeper.server.quorum.LearnerHandler, java.net.Socket)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.LeaderZooKeeperServer v;
java.net.Socket v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.server.quorum.LearnerHandlerBean v;
java.util.concurrent.ConcurrentHashMap v;
boolean v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v := @parameter: java.net.Socket;
v = new org.apache.zookeeper.server.quorum.LearnerHandlerBean;
specialinvoke v.<org.apache.zookeeper.server.quorum.LearnerHandlerBean: void <init>(org.apache.zookeeper.server.quorum.LearnerHandler,java.net.Socket)>(v, v);
v = v.<org.apache.zookeeper.server.quorum.Leader: org.apache.zookeeper.server.quorum.LeaderZooKeeperServer zk>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.LeaderZooKeeperServer: boolean registerJMX(org.apache.zookeeper.server.quorum.LearnerHandlerBean)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentHashMap connectionBeans>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return;
}
public void unregisterLearnerHandlerBean(org.apache.zookeeper.server.quorum.LearnerHandler)
{
org.apache.zookeeper.server.quorum.LearnerHandler v;
org.apache.zookeeper.server.quorum.Leader v;
org.apache.zookeeper.jmx.MBeanRegistry v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v;
v := @this: org.apache.zookeeper.server.quorum.Leader;
v := @parameter: org.apache.zookeeper.server.quorum.LearnerHandler;
v = v.<org.apache.zookeeper.server.quorum.Leader: java.util.concurrent.ConcurrentHashMap connectionBeans>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = staticinvoke <org.apache.zookeeper.jmx.MBeanRegistry: org.apache.zookeeper.jmx.MBeanRegistry getInstance()>();
virtualinvoke v.<org.apache.zookeeper.jmx.MBeanRegistry: void unregister(org.apache.zookeeper.jmx.ZKMBeanInfo)>(v);
label:
return;
}
static void <clinit>()
{
java.lang.Integer v, v, v, v;
int v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v;
boolean v, v;
org.slf4j.Logger v, v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/quorum/Leader;");
<org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("leader.nodelay", "true");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("true");
<org.apache.zookeeper.server.quorum.Leader: boolean nodelay> = v;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Leader: boolean nodelay>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("TCP NoDelay set to: {}", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.leader.ackLoggingFrequency", 1000);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency> = v;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Leader: int ackLoggingFrequency>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.leader.ackLoggingFrequency", v);
v = (int) -1;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.leader.maxTimeToWaitForEpoch", v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch> = v;
v = <org.apache.zookeeper.server.quorum.Leader: org.slf4j.Logger LOG>;
v = <org.apache.zookeeper.server.quorum.Leader: int maxTimeToWaitForEpoch>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}ms", "zookeeper.leader.maxTimeToWaitForEpoch", v);
return;
}
}