public class org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask extends java.lang.Object
{
private final org.slf4j.Logger logger;
private final org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration;
private final org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps;
public void <init>(org.apache.sling.event.impl.jobs.config.JobManagerConfiguration)
{
org.slf4j.Logger v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v;
java.lang.Class v;
org.apache.sling.event.impl.jobs.config.JobManagerConfiguration v, v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v := @parameter: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration;
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.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger> = v;
v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration> = v;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.event.impl.jobs.config.TopologyCapabilities getTopologyCapabilities()>();
v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps> = v;
return;
}
private void reassignJobsFromStoppedInstances()
{
java.lang.Throwable v;
org.apache.sling.api.resource.ResourceResolver v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v, v, v, v;
java.lang.String v, v;
boolean v, v, v, v, v;
org.slf4j.Logger v, v, v;
java.util.Iterator v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.api.resource.Resource v;
org.apache.sling.event.impl.jobs.config.JobManagerConfiguration v, v;
java.lang.Object v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isLeader()>();
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checking for stopped instances...");
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.api.resource.ResourceResolver createResourceResolver()>();
if v == null goto label;
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: java.lang.String getAssginedJobsPath()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: org.apache.sling.api.resource.Resource getResource(java.lang.String)>(v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Got jobs root {}", v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.util.Iterator listChildren()>();
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getName()>();
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive(java.lang.String)>(v);
if v != 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Found stopped instance {}", v);
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: void assignJobs(org.apache.sling.api.resource.Resource,boolean)>(v, 1);
goto label;
label:
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void reassignStaleJobs()
{
java.lang.Throwable v;
org.apache.sling.api.resource.ResourceResolver v;
org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v, v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.api.resource.Resource v;
org.apache.sling.event.impl.jobs.config.JobManagerConfiguration v, v, v;
org.apache.sling.event.impl.jobs.config.QueueConfigurationManager v;
java.util.List v;
java.lang.Object v, v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$1 v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checking for stale jobs...");
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.api.resource.ResourceResolver createResourceResolver()>();
if v == null goto label;
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: java.lang.String getLocalJobsPath()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: org.apache.sling.api.resource.Resource getResource(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.util.Iterator listChildren()>();
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Checking topic {}...", v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: java.util.List getPotentialTargets(java.lang.String)>(v);
v = 1;
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 = interfaceinvoke v.<org.apache.sling.discovery.InstanceDescription: boolean isLocal()>();
if v == 0 goto label;
v = 0;
label:
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.event.impl.jobs.config.QueueConfigurationManager getQueueConfigurationManager()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.QueueConfigurationManager: org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo getQueueInfo(java.lang.String)>(v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Start reassigning stale jobs");
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
v = new org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$1;
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$1: void <init>(org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask,java.lang.String,org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo,org.apache.sling.api.resource.Resource,org.apache.sling.api.resource.ResourceResolver)>(v, v, v, v, v);
staticinvoke <org.apache.sling.event.impl.jobs.JobTopicTraverser: void traverse(org.slf4j.Logger,org.apache.sling.api.resource.Resource,org.apache.sling.event.impl.jobs.JobTopicTraverser$ResourceCallback)>(v, v, v);
goto label;
label:
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void assignUnassignedJobs()
{
java.lang.Throwable v;
org.apache.sling.api.resource.ResourceResolver v;
org.slf4j.Logger v, v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.api.resource.Resource v;
org.apache.sling.event.impl.jobs.config.JobManagerConfiguration v, v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v, v, v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
if v == null goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isLeader()>();
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checking unassigned jobs...");
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.api.resource.ResourceResolver createResourceResolver()>();
if v == null goto label;
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: java.lang.String getUnassignedJobsPath()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: org.apache.sling.api.resource.Resource getResource(java.lang.String)>(v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Got unassigned root {}", v);
if v == null goto label;
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: void assignJobs(org.apache.sling.api.resource.Resource,boolean)>(v, 0);
label:
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void assignJobs(org.apache.sling.api.resource.Resource, boolean)
{
org.apache.sling.api.resource.ResourceResolver v;
org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo v;
int v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v, v, v;
java.lang.String v, v;
boolean v, v, v, v;
org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.api.resource.Resource v;
org.apache.sling.event.impl.jobs.config.JobManagerConfiguration v;
org.apache.sling.event.impl.jobs.config.QueueConfigurationManager v;
java.util.List v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$3 v;
java.lang.Object v;
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$2 v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v := @parameter: org.apache.sling.api.resource.Resource;
v := @parameter: boolean;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: org.apache.sling.api.resource.ResourceResolver getResourceResolver()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.util.Iterator listChildren()>();
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Found topic {}", v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: java.util.List getPotentialTargets(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.JobManagerConfiguration configuration>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.JobManagerConfiguration: org.apache.sling.event.impl.jobs.config.QueueConfigurationManager getQueueConfigurationManager()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.QueueConfigurationManager: org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo getQueueInfo(java.lang.String)>(v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
v = v.<org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo: org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration queueConfiguration>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Found queue {} for {}", v, v);
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
v = new org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$2;
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$2: void <init>(org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask,java.lang.String,org.apache.sling.event.impl.jobs.config.QueueConfigurationManager$QueueInfo,org.apache.sling.api.resource.Resource,org.apache.sling.api.resource.ResourceResolver)>(v, v, v, v, v);
staticinvoke <org.apache.sling.event.impl.jobs.JobTopicTraverser: void traverse(org.slf4j.Logger,org.apache.sling.api.resource.Resource,org.apache.sling.event.impl.jobs.JobTopicTraverser$ResourceCallback)>(v, v, v);
label:
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.config.TopologyCapabilities: boolean isActive()>();
if v == 0 goto label;
if v == 0 goto label;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.slf4j.Logger logger>;
v = new org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$3;
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask$3: void <init>(org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask,org.apache.sling.api.resource.Resource,org.apache.sling.api.resource.ResourceResolver)>(v, v, v);
staticinvoke <org.apache.sling.event.impl.jobs.JobTopicTraverser: void traverse(org.slf4j.Logger,org.apache.sling.api.resource.Resource,org.apache.sling.event.impl.jobs.JobTopicTraverser$ResourceCallback)>(v, v, v);
goto label;
label:
return;
}
public void fullRun()
{
org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask v;
org.apache.sling.event.impl.jobs.config.TopologyCapabilities v;
v := @this: org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask;
v = v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: org.apache.sling.event.impl.jobs.config.TopologyCapabilities caps>;
if v == null goto label;
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: void reassignJobsFromStoppedInstances()>();
specialinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: void reassignStaleJobs()>();
virtualinvoke v.<org.apache.sling.event.impl.jobs.tasks.CheckTopologyTask: void assignUnassignedJobs()>();
label:
return;
}
}