public class oadd.org.apache.curator.framework.recipes.leader.LeaderSelector extends java.lang.Object implements java.io.Closeable
{
private final org.slf4j.Logger log;
private final oadd.org.apache.curator.framework.CuratorFramework client;
private final oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener listener;
private final oadd.org.apache.curator.utils.CloseableExecutorService executorService;
private final oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex;
private final java.util.concurrent.atomic.AtomicReference state;
private final java.util.concurrent.atomic.AtomicBoolean autoRequeue;
private final java.util.concurrent.atomic.AtomicReference ourTask;
private volatile boolean hasLeadership;
private volatile java.lang.String id;
volatile java.util.concurrent.CountDownLatch debugLeadershipLatch;
volatile java.util.concurrent.CountDownLatch debugLeadershipWaitLatch;
private boolean isQueued;
private static final java.util.concurrent.ThreadFactory defaultThreadFactory;
volatile java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount;
public void <init>(oadd.org.apache.curator.framework.CuratorFramework, java.lang.String, oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
java.lang.String v;
oadd.org.apache.curator.framework.CuratorFramework v;
java.util.concurrent.ThreadFactory v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
java.util.concurrent.ExecutorService v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener;
v = new oadd.org.apache.curator.utils.CloseableExecutorService;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.ThreadFactory defaultThreadFactory>;
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newSingleThreadExecutor(java.util.concurrent.ThreadFactory)>(v);
specialinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: void <init>(java.util.concurrent.ExecutorService,boolean)>(v, 1);
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void <init>(oadd.org.apache.curator.framework.CuratorFramework,java.lang.String,oadd.org.apache.curator.utils.CloseableExecutorService,oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)>(v, v, v, v);
return;
}
public void <init>(oadd.org.apache.curator.framework.CuratorFramework, java.lang.String, java.util.concurrent.ThreadFactory, java.util.concurrent.Executor, oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)
{
java.util.concurrent.Executor v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.String v;
java.util.concurrent.ThreadFactory v;
java.util.concurrent.ExecutorService v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.lang.String;
v := @parameter: java.util.concurrent.ThreadFactory;
v := @parameter: java.util.concurrent.Executor;
v := @parameter: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener;
v = new oadd.org.apache.curator.utils.CloseableExecutorService;
v = staticinvoke <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.ExecutorService wrapExecutor(java.util.concurrent.Executor)>(v);
specialinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: void <init>(java.util.concurrent.ExecutorService,boolean)>(v, 1);
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void <init>(oadd.org.apache.curator.framework.CuratorFramework,java.lang.String,oadd.org.apache.curator.utils.CloseableExecutorService,oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)>(v, v, v, v);
return;
}
public void <init>(oadd.org.apache.curator.framework.CuratorFramework, java.lang.String, java.util.concurrent.ExecutorService, oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
java.lang.String v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
java.util.concurrent.ExecutorService v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.lang.String;
v := @parameter: java.util.concurrent.ExecutorService;
v := @parameter: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener;
v = new oadd.org.apache.curator.utils.CloseableExecutorService;
specialinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: void <init>(java.util.concurrent.ExecutorService)>(v);
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void <init>(oadd.org.apache.curator.framework.CuratorFramework,java.lang.String,oadd.org.apache.curator.utils.CloseableExecutorService,oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)>(v, v, v, v);
return;
}
public void <init>(oadd.org.apache.curator.framework.CuratorFramework, java.lang.String, oadd.org.apache.curator.utils.CloseableExecutorService, oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State v;
org.slf4j.Logger v;
java.util.concurrent.atomic.AtomicBoolean v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
java.util.concurrent.atomic.AtomicReference v, v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$1 v;
java.lang.Class v;
java.lang.String v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$WrappedListener v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.lang.String;
v := @parameter: oadd.org.apache.curator.utils.CloseableExecutorService;
v := @parameter: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(v);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: org.slf4j.Logger log> = v;
v = new java.util.concurrent.atomic.AtomicReference;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State LATENT>;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference state> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicBoolean autoRequeue> = v;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(null);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference ourTask> = v;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.lang.String id> = "";
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipLatch> = null;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipWaitLatch> = null;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean isQueued> = 0;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount> = null;
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "client cannot be null");
staticinvoke <oadd.org.apache.curator.utils.PathUtils: java.lang.String validatePath(java.lang.String)>(v);
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "listener cannot be null");
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client> = v;
v = new oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$WrappedListener;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$WrappedListener: void <init>(oadd.org.apache.curator.framework.recipes.leader.LeaderSelector,oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener)>(v, v);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener listener> = v;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership> = 0;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.utils.CloseableExecutorService executorService> = v;
v = new oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$1;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$1: void <init>(oadd.org.apache.curator.framework.recipes.leader.LeaderSelector,oadd.org.apache.curator.framework.CuratorFramework,java.lang.String)>(v, v, v);
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex> = v;
return;
}
static byte[] getIdBytes(java.lang.String)
{
byte[] v;
java.lang.Error v;
java.lang.String v;
java.io.UnsupportedEncodingException v;
v := @parameter: java.lang.String;
label:
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>("UTF-8");
label:
return v;
label:
v := @caughtexception;
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.UnsupportedEncodingException from label to label with label;
}
public void autoRequeue()
{
java.util.concurrent.atomic.AtomicBoolean v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicBoolean autoRequeue>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
return;
}
public void setId(java.lang.String)
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.String v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v := @parameter: java.lang.String;
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "id cannot be null");
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.lang.String id> = v;
return;
}
public java.lang.String getId()
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.String v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.lang.String id>;
return v;
}
public void start()
{
oadd.org.apache.curator.framework.listen.Listenable v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State v, v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
java.util.concurrent.atomic.AtomicReference v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
boolean v, v, v, v, v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference state>;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State LATENT>;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State STARTED>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Cannot be started more than once");
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.utils.CloseableExecutorService executorService>;
v = virtualinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: boolean isShutdown()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Already started");
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Already has leadership");
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client>;
v = interfaceinvoke v.<oadd.org.apache.curator.framework.CuratorFramework: oadd.org.apache.curator.framework.listen.Listenable getConnectionStateListenable()>();
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener listener>;
interfaceinvoke v.<oadd.org.apache.curator.framework.listen.Listenable: void addListener(java.lang.Object)>(v);
virtualinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean requeue()>();
return;
}
public boolean requeue()
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
boolean v, v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State STARTED>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "close() has already been called");
v = specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean internalRequeue()>();
return v;
}
private synchronized boolean internalRequeue()
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$2 v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
java.util.concurrent.atomic.AtomicReference v, v;
java.util.concurrent.Future v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.Object v;
boolean v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean isQueued>;
if v != 0 goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State STARTED>;
if v != v goto label;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean isQueued> = 1;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.utils.CloseableExecutorService executorService>;
v = new oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$2;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$2: void <init>(oadd.org.apache.curator.framework.recipes.leader.LeaderSelector)>(v);
v = virtualinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: java.util.concurrent.Future submit(java.util.concurrent.Callable)>(v);
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference ourTask>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
return 1;
label:
return 0;
}
public synchronized void close()
{
oadd.org.apache.curator.framework.listen.Listenable v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State v, v;
oadd.org.apache.curator.utils.CloseableExecutorService v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
java.util.concurrent.atomic.AtomicReference v, v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
boolean v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference state>;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State STARTED>;
v = <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$State CLOSED>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <oadd.org.apache.curator.shaded.com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Already closed or has not been started");
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client>;
v = interfaceinvoke v.<oadd.org.apache.curator.framework.CuratorFramework: oadd.org.apache.curator.framework.listen.Listenable getConnectionStateListenable()>();
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener listener>;
interfaceinvoke v.<oadd.org.apache.curator.framework.listen.Listenable: void removeListener(java.lang.Object)>(v);
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.utils.CloseableExecutorService executorService>;
virtualinvoke v.<oadd.org.apache.curator.utils.CloseableExecutorService: void close()>();
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference ourTask>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
return;
}
public java.util.Collection getParticipants() throws java.lang.Exception
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex v;
java.util.Collection v, v;
oadd.org.apache.curator.framework.CuratorFramework v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex>;
v = virtualinvoke v.<oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex: java.util.Collection getParticipantNodes()>();
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client>;
v = staticinvoke <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.Collection getParticipants(oadd.org.apache.curator.framework.CuratorFramework,java.util.Collection)>(v, v);
return v;
}
static java.util.Collection getParticipants(oadd.org.apache.curator.framework.CuratorFramework, java.util.Collection) throws java.lang.Exception
{
oadd.org.apache.curator.framework.recipes.leader.Participant v;
java.util.Iterator v;
java.util.Collection v;
oadd.org.apache.curator.framework.CuratorFramework v;
oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList v;
oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList$Builder v;
java.lang.Object v;
boolean v, v;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.util.Collection;
v = staticinvoke <oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList: oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList$Builder builder()>();
v = 1;
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 = staticinvoke <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.Participant participantForPath(oadd.org.apache.curator.framework.CuratorFramework,java.lang.String,boolean)>(v, v, v);
if v == null goto label;
virtualinvoke v.<oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList$Builder: oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList$Builder add(java.lang.Object)>(v);
v = 0;
goto label;
label:
v = virtualinvoke v.<oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList$Builder: oadd.org.apache.curator.shaded.com.google.common.collect.ImmutableList build()>();
return v;
}
public oadd.org.apache.curator.framework.recipes.leader.Participant getLeader() throws java.lang.Exception
{
oadd.org.apache.curator.framework.recipes.leader.Participant v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex v;
java.util.Collection v;
oadd.org.apache.curator.framework.CuratorFramework v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex>;
v = virtualinvoke v.<oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex: java.util.Collection getParticipantNodes()>();
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client>;
v = staticinvoke <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.Participant getLeader(oadd.org.apache.curator.framework.CuratorFramework,java.util.Collection)>(v, v);
return v;
}
static oadd.org.apache.curator.framework.recipes.leader.Participant getLeader(oadd.org.apache.curator.framework.CuratorFramework, java.util.Collection) throws java.lang.Exception
{
oadd.org.apache.curator.framework.recipes.leader.Participant v, v;
java.util.Iterator v;
java.util.Collection v;
oadd.org.apache.curator.framework.CuratorFramework v;
int v;
java.lang.Object v;
boolean v;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.util.Collection;
v = null;
v = interfaceinvoke v.<java.util.Collection: int size()>();
if v <= 0 goto label;
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 = staticinvoke <oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.Participant participantForPath(oadd.org.apache.curator.framework.CuratorFramework,java.lang.String,boolean)>(v, v, 1);
if v == null goto label;
label:
if v != null goto label;
v = new oadd.org.apache.curator.framework.recipes.leader.Participant;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.Participant: void <init>()>();
v = v;
label:
return v;
}
public boolean hasLeadership()
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
boolean v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership>;
return v;
}
public synchronized void interruptLeadership()
{
java.lang.Object v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicReference ourTask>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
interfaceinvoke v.<java.util.concurrent.Future: boolean cancel(boolean)>(1);
label:
return;
}
private static oadd.org.apache.curator.framework.recipes.leader.Participant participantForPath(oadd.org.apache.curator.framework.CuratorFramework, java.lang.String, boolean) throws java.lang.Exception
{
oadd.org.apache.curator.framework.recipes.leader.Participant v;
oadd.org.apache.curator.framework.api.GetDataBuilder v;
oadd.org.apache.zookeeper.KeeperException$NoNodeException v;
oadd.org.apache.curator.framework.CuratorFramework v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @parameter: oadd.org.apache.curator.framework.CuratorFramework;
v := @parameter: java.lang.String;
v := @parameter: boolean;
label:
v = interfaceinvoke v.<oadd.org.apache.curator.framework.CuratorFramework: oadd.org.apache.curator.framework.api.GetDataBuilder getData()>();
v = interfaceinvoke v.<oadd.org.apache.curator.framework.api.GetDataBuilder: java.lang.Object forPath(java.lang.String)>(v);
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(byte[],java.lang.String)>(v, "UTF-8");
v = new oadd.org.apache.curator.framework.recipes.leader.Participant;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.Participant: void <init>(java.lang.String,boolean)>(v, v);
label:
return v;
label:
v := @caughtexception;
return null;
catch oadd.org.apache.zookeeper.KeeperException$NoNodeException from label to label with label;
}
void doWork() throws java.lang.Exception
{
java.util.concurrent.atomic.AtomicInteger v, v, v, v;
java.lang.Thread v, v, v, v, v, v, v, v;
boolean v, v, v, v;
oadd.org.apache.curator.framework.CuratorFramework v;
java.lang.Exception v, v;
java.util.concurrent.CountDownLatch v, v, v, v;
java.lang.Throwable v, v, v, v, v;
org.slf4j.Logger v, v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
java.lang.InterruptedException v, v;
oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex v, v, v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership> = 0;
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex>;
virtualinvoke v.<oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex: void acquire()>();
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership> = 1;
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipLatch>;
if v == null goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void countDown()>();
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipWaitLatch>;
if v == null goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.CountDownLatch debugLeadershipWaitLatch>;
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener listener>;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.CuratorFramework client>;
interfaceinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelectorListener: void takeLeadership(oadd.org.apache.curator.framework.CuratorFramework)>(v);
label:
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void clearIsQueued()>();
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
throw v;
label:
v := @caughtexception;
staticinvoke <oadd.org.apache.curator.utils.ThreadUtils: boolean checkInterrupted(java.lang.Throwable)>(v);
label:
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void clearIsQueued()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void clearIsQueued()>();
throw v;
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership>;
if v == 0 goto label;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership> = 0;
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex>;
virtualinvoke v.<oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex: void release()>();
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount>;
if v == null goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
label:
staticinvoke <oadd.org.apache.curator.utils.ThreadUtils: boolean checkInterrupted(java.lang.Throwable)>(v);
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("The leader threw an exception", v);
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
throw v;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
throw v;
label:
v := @caughtexception;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership>;
if v == 0 goto label;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean hasLeadership> = 0;
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
label:
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex mutex>;
virtualinvoke v.<oadd.org.apache.curator.framework.recipes.locks.InterProcessMutex: void release()>();
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount>;
if v == null goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicInteger failedMutexReleaseCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
label:
staticinvoke <oadd.org.apache.curator.utils.ThreadUtils: boolean checkInterrupted(java.lang.Throwable)>(v);
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("The leader threw an exception", v);
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
throw v;
label:
throw v;
label:
return;
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.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void doWorkLoop() throws java.lang.Exception
{
java.util.concurrent.atomic.AtomicBoolean v;
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
oadd.org.apache.zookeeper.KeeperException$SessionExpiredException v;
java.lang.InterruptedException v;
java.lang.Thread v;
oadd.org.apache.zookeeper.KeeperException$ConnectionLossException v;
oadd.org.apache.zookeeper.KeeperException v;
boolean v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v = null;
label:
virtualinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: void doWork()>();
label:
goto label;
label:
v := @caughtexception;
v = v;
goto label;
label:
v := @caughtexception;
v = v;
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
if v == null goto label;
v = v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.atomic.AtomicBoolean autoRequeue>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
throw v;
label:
return;
catch oadd.org.apache.zookeeper.KeeperException$ConnectionLossException from label to label with label;
catch oadd.org.apache.zookeeper.KeeperException$SessionExpiredException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
private synchronized void clearIsQueued()
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector v;
v := @this: oadd.org.apache.curator.framework.recipes.leader.LeaderSelector;
v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: boolean isQueued> = 0;
return;
}
private static java.util.concurrent.ExecutorService wrapExecutor(java.util.concurrent.Executor)
{
oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$3 v;
java.util.concurrent.Executor v;
v := @parameter: java.util.concurrent.Executor;
v = new oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$3;
specialinvoke v.<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector$3: void <init>(java.util.concurrent.Executor)>(v);
return v;
}
static void <clinit>()
{
java.util.concurrent.ThreadFactory v;
v = staticinvoke <oadd.org.apache.curator.utils.ThreadUtils: java.util.concurrent.ThreadFactory newThreadFactory(java.lang.String)>("LeaderSelector");
<oadd.org.apache.curator.framework.recipes.leader.LeaderSelector: java.util.concurrent.ThreadFactory defaultThreadFactory> = v;
return;
}
}