public abstract class org.apache.sling.event.impl.jobs.Utility extends java.lang.Object
{
private static final int READ_ERROR_SILENCE_LIMIT;
private static final java.util.concurrent.atomic.AtomicInteger readErrorWarnCount;
private static final java.util.Comparator RESOURCE_COMPARATOR;
public void <init>()
{
org.apache.sling.event.impl.jobs.Utility v;
v := @this: org.apache.sling.event.impl.jobs.Utility;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.String checkJobTopic(java.lang.Object)
{
java.lang.Object[] v;
java.lang.Object v;
java.lang.String v;
java.lang.IllegalArgumentException v;
org.osgi.service.event.Event v;
java.util.Dictionary v;
boolean v;
v := @parameter: java.lang.Object;
v = null;
if v == null goto label;
v = v instanceof java.lang.String;
if v == 0 goto label;
label:
v = new org.osgi.service.event.Event;
v = null;
specialinvoke v.<org.osgi.service.event.Event: void <init>(java.lang.String,java.util.Dictionary)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Discarding job - job has an illegal job topic \'%s\'", v);
goto label;
label:
v = "Discarding job - job topic is not of type string";
goto label;
label:
v = "Discarding job - job topic is missing";
label:
return v;
catch java.lang.IllegalArgumentException from label to label with label;
}
public static java.lang.String checkJob(java.lang.Object, java.util.Map)
{
java.util.Iterator v;
java.util.Collection v;
java.util.Map v;
java.lang.Object v, v;
java.lang.String v, v;
boolean v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.util.Map;
v = staticinvoke <org.apache.sling.event.impl.jobs.Utility: java.lang.String checkJobTopic(java.lang.Object)>(v);
if v != null goto label;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: 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()>();
if v == null goto label;
v = v instanceof java.io.Serializable;
if v != 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,java.util.Map)>(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[])>("Discarding job - properties must be serializable: \u : \u0001");
return v;
label:
return v;
}
public static org.osgi.service.event.Event toEvent(org.apache.sling.event.jobs.Job)
{
java.util.Map v;
java.util.HashMap v;
org.apache.sling.event.jobs.Job v;
java.lang.String v, v;
org.osgi.service.event.Event v;
v := @parameter: org.apache.sling.event.jobs.Job;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.JobImpl: java.util.Map getProperties()>();
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
v = interfaceinvoke v.<org.apache.sling.event.jobs.Job: java.lang.String getId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("slingevent:eventId", v);
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(":sling:jobs:asynchandler");
v = new org.osgi.service.event.Event;
v = interfaceinvoke v.<org.apache.sling.event.jobs.Job: java.lang.String getTopic()>();
specialinvoke v.<org.osgi.service.event.Event: void <init>(java.lang.String,java.util.Map)>(v, v);
return v;
}
private static void appendProperties(java.lang.StringBuilder, java.util.Map)
{
java.util.Iterator v;
java.util.Date v;
java.util.Set v;
java.util.Map v;
java.lang.Class v;
java.lang.Object v, v;
java.lang.StringBuilder v;
java.lang.String v;
boolean v, v, v, v, v;
v := @parameter: java.lang.StringBuilder;
v := @parameter: java.util.Map;
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", properties=");
v = 1;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
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()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("slingevent:eventId");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("event.job.topic");
if v != 0 goto label;
if v == 0 goto label;
v = 0;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(",");
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(61);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof java.util.Calendar;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(40);
v = virtualinvoke v.<java.util.Calendar: java.util.Date getTime()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(41);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
goto label;
label:
return;
}
public static java.lang.String toString(java.lang.String, java.util.Map)
{
java.util.Map v;
java.lang.StringBuilder v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Sling Job ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("[topic=");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
staticinvoke <org.apache.sling.event.impl.jobs.Utility: void appendProperties(java.lang.StringBuilder,java.util.Map)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("]");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public static java.lang.String toString(org.apache.sling.event.jobs.Job)
{
java.util.Map v;
java.lang.StringBuilder v;
org.apache.sling.event.jobs.Job v;
java.lang.String v, v, v;
v := @parameter: org.apache.sling.event.jobs.Job;
if v == null goto label;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Sling Job ");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("[topic=");
v = interfaceinvoke v.<org.apache.sling.event.jobs.Job: java.lang.String getTopic()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", id=");
v = interfaceinvoke v.<org.apache.sling.event.jobs.Job: java.lang.String getId()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.sling.event.impl.jobs.JobImpl: java.util.Map getProperties()>();
staticinvoke <org.apache.sling.event.impl.jobs.Utility: void appendProperties(java.lang.StringBuilder,java.util.Map)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("]");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
label:
return "<null>";
}
public static org.apache.sling.event.impl.jobs.JobImpl readJob(org.slf4j.Logger, org.apache.sling.api.resource.Resource)
{
org.apache.sling.api.resource.ValueMap v;
org.apache.sling.api.resource.ResourceResolver v, v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.Map v;
java.lang.InstantiationException v;
boolean v, v;
java.lang.Throwable v, v, v, v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.sling.api.resource.Resource v;
java.lang.RuntimeException v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v;
org.apache.sling.event.impl.jobs.JobImpl v, v;
v := @parameter: org.slf4j.Logger;
v := @parameter: org.apache.sling.api.resource.Resource;
v = null;
if v == null goto label;
label:
v = staticinvoke <org.apache.sling.event.impl.support.ResourceHelper: org.apache.sling.api.resource.ValueMap getValueMap(org.apache.sling.api.resource.Resource)>(v);
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.Object)>("event.job.topic");
v = staticinvoke <org.apache.sling.event.impl.jobs.Utility: java.lang.String checkJobTopic(java.lang.Object)>(v);
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("slingevent:eventId", class "Ljava/lang/String;");
if v != null goto label;
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("event.job.topic", class "Ljava/lang/String;");
v = staticinvoke <org.apache.sling.event.impl.support.ResourceHelper: java.util.Map cloneValueMap(org.apache.sling.api.resource.ValueMap)>(v);
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getPath()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("slingevent:path", v);
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("event.job.retries", class "Ljava/lang/Integer;");
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("event.job.retries", v);
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("event.job.retrycount", class "Ljava/lang/Integer;");
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("event.job.retrycount", v);
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.Object)>("slingevent:progressSteps");
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("slingevent:progressSteps", class "Ljava/lang/Integer;");
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("slingevent:progressSteps", v);
label:
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.Object)>("slingevent:progressStep");
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.ValueMap: java.lang.Object get(java.lang.String,java.lang.Class)>("slingevent:progressStep", class "Ljava/lang/Integer;");
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("slingevent:progressStep", v);
label:
v = <org.apache.sling.event.impl.support.ResourceHelper: java.lang.String PROPERTY_MARKER_READ_ERROR_LIST>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
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 = <org.apache.sling.event.impl.jobs.Utility: java.util.concurrent.atomic.AtomicInteger readErrorWarnCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndIncrement()>();
if v != 1000 goto label;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("Too many \'Unable to read job from \' messages - silencing 99% of them from now on.");
goto label;
label:
if v <= 1000 goto label;
v = v % 100;
if v != 0 goto label;
if v <= 1000 goto label;
v = "[unsilenced] ";
goto label;
label:
v = "";
label:
v = virtualinvoke v.<java.lang.Exception: java.lang.Throwable getCause()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Exception: java.lang.Throwable getCause()>();
v = v instanceof java.lang.ClassNotFoundException;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getPath()>();
v = virtualinvoke v.<java.lang.Exception: java.lang.Throwable getCause()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.Exception,java.lang.Throwable)>(v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001Unable to read job from \u, exception: \u, cause: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
goto label;
label:
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getPath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001Unable to read job from \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v = new org.apache.sling.event.impl.jobs.JobImpl;
specialinvoke v.<org.apache.sling.event.impl.jobs.JobImpl: void <init>(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
v = v;
goto label;
label:
if v == null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getPath()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("{} : {}", v, v);
goto label;
label:
if v != null goto label;
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getPath()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Discarding job - no job id found : {}", v);
label:
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: org.apache.sling.api.resource.ResourceResolver getResourceResolver()>();
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void delete(org.apache.sling.api.resource.Resource)>(v);
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: org.apache.sling.api.resource.ResourceResolver getResourceResolver()>();
interfaceinvoke v.<org.apache.sling.api.resource.ResourceResolver: void commit()>();
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Unable to remove job resource.", v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Unable to instantiate resource.", v);
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Unable to read resource.", v);
label:
return v;
catch org.apache.sling.api.resource.PersistenceException from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
}
public static java.util.List getSortedChildren(org.slf4j.Logger, java.lang.String, org.apache.sling.api.resource.Resource)
{
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.sling.api.resource.Resource v;
java.util.ArrayList v;
java.lang.Object v;
java.lang.String v, v;
java.util.Comparator v;
boolean v;
v := @parameter: org.slf4j.Logger;
v := @parameter: java.lang.String;
v := @parameter: org.apache.sling.api.resource.Resource;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.util.Iterator listChildren()>();
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.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<org.apache.sling.api.resource.Resource: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Found {} : {}", v, v);
goto label;
label:
v = <org.apache.sling.event.impl.jobs.Utility: java.util.Comparator RESOURCE_COMPARATOR>;
staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
return v;
}
static void <clinit>()
{
org.apache.sling.event.impl.jobs.Utility$1 v;
java.util.concurrent.atomic.AtomicInteger v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>()>();
<org.apache.sling.event.impl.jobs.Utility: java.util.concurrent.atomic.AtomicInteger readErrorWarnCount> = v;
v = new org.apache.sling.event.impl.jobs.Utility$1;
specialinvoke v.<org.apache.sling.event.impl.jobs.Utility$1: void <init>()>();
<org.apache.sling.event.impl.jobs.Utility: java.util.Comparator RESOURCE_COMPARATOR> = v;
return;
}
}