public abstract class org.springframework.scheduling.concurrent.ExecutorConfigurationSupport extends org.springframework.scheduling.concurrent.CustomizableThreadFactory implements org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
{
protected final org.apache.commons.logging.Log logger;
private java.util.concurrent.ThreadFactory threadFactory;
private boolean threadNamePrefixSet;
private java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler;
private boolean waitForTasksToCompleteOnShutdown;
private int awaitTerminationSeconds;
private java.lang.String beanName;
private java.util.concurrent.ExecutorService executor;
public void <init>()
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
java.util.concurrent.ThreadPoolExecutor$AbortPolicy v;
java.lang.Class v;
org.apache.commons.logging.Log v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
specialinvoke v.<org.springframework.scheduling.concurrent.CustomizableThreadFactory: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger> = v;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ThreadFactory threadFactory> = v;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean threadNamePrefixSet> = 0;
v = new java.util.concurrent.ThreadPoolExecutor$AbortPolicy;
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor$AbortPolicy: void <init>()>();
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler> = v;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean waitForTasksToCompleteOnShutdown> = 0;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: int awaitTerminationSeconds> = 0;
return;
}
public void setThreadFactory(java.util.concurrent.ThreadFactory)
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
java.util.concurrent.ThreadFactory v, v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: java.util.concurrent.ThreadFactory;
if v == null goto label;
v = v;
goto label;
label:
v = v;
label:
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ThreadFactory threadFactory> = v;
return;
}
public void setThreadNamePrefix(java.lang.String)
{
java.lang.String v;
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: java.lang.String;
specialinvoke v.<org.springframework.scheduling.concurrent.CustomizableThreadFactory: void setThreadNamePrefix(java.lang.String)>(v);
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean threadNamePrefixSet> = 1;
return;
}
public void setRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler)
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
java.util.concurrent.RejectedExecutionHandler v, v;
java.util.concurrent.ThreadPoolExecutor$AbortPolicy v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: java.util.concurrent.RejectedExecutionHandler;
if v == null goto label;
v = v;
goto label;
label:
v = new java.util.concurrent.ThreadPoolExecutor$AbortPolicy;
v = v;
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor$AbortPolicy: void <init>()>();
label:
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler> = v;
return;
}
public void setWaitForTasksToCompleteOnShutdown(boolean)
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
boolean v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: boolean;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean waitForTasksToCompleteOnShutdown> = v;
return;
}
public void setAwaitTerminationSeconds(int)
{
int v;
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: int;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: int awaitTerminationSeconds> = v;
return;
}
public void setBeanName(java.lang.String)
{
java.lang.String v;
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: java.lang.String;
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName> = v;
return;
}
public void afterPropertiesSet()
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
virtualinvoke v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: void initialize()>();
return;
}
public void initialize()
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
java.util.concurrent.RejectedExecutionHandler v;
org.apache.commons.logging.Log v, v;
java.lang.String v, v, v, v, v, v, v;
java.util.concurrent.ThreadFactory v;
java.util.concurrent.ExecutorService v;
boolean v, v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
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[])>(" \'\u0001\'");
goto label;
label:
v = "";
label:
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[])>("Initializing ExecutorService\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean threadNamePrefixSet>;
if v != 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
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[])>("\u0001-");
virtualinvoke v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: void setThreadNamePrefix(java.lang.String)>(v);
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ThreadFactory threadFactory>;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.RejectedExecutionHandler rejectedExecutionHandler>;
v = virtualinvoke v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService initializeExecutor(java.util.concurrent.ThreadFactory,java.util.concurrent.RejectedExecutionHandler)>(v, v);
v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService executor> = v;
return;
}
protected abstract java.util.concurrent.ExecutorService initializeExecutor(java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler);
public void destroy()
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
virtualinvoke v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: void shutdown()>();
return;
}
public void shutdown()
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
org.apache.commons.logging.Log v, v;
java.lang.String v, v, v, v;
java.util.concurrent.ExecutorService v, v, v, v;
boolean v, v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
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[])>(" \'\u0001\'");
goto label;
label:
v = "";
label:
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[])>("Shutting down ExecutorService\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void info(java.lang.Object)>(v);
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService executor>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: boolean waitForTasksToCompleteOnShutdown>;
if v == 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService executor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
goto label;
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService executor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.List shutdownNow()>();
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.util.concurrent.ExecutorService executor>;
specialinvoke v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: void awaitTerminationIfNecessary(java.util.concurrent.ExecutorService)>(v);
label:
return;
}
private void awaitTerminationIfNecessary(java.util.concurrent.ExecutorService)
{
org.springframework.scheduling.concurrent.ExecutorConfigurationSupport v;
java.lang.Thread v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.util.concurrent.ExecutorService v;
boolean v, v, v;
java.util.concurrent.TimeUnit v;
java.lang.InterruptedException v;
org.apache.commons.logging.Log v, v, v, v;
v := @this: org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
v := @parameter: java.util.concurrent.ExecutorService;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: int awaitTerminationSeconds>;
if v <= 0 goto label;
label:
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: int awaitTerminationSeconds>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = interfaceinvoke v.<java.util.concurrent.ExecutorService: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(v, v);
if v != 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isWarnEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
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[])>(" \'\u0001\'");
goto label;
label:
v = "";
label:
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[])>("Timed out while waiting for executor\u to terminate");
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isWarnEnabled()>();
if v == 0 goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: org.apache.commons.logging.Log logger>;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
if v == null goto label;
v = v.<org.springframework.scheduling.concurrent.ExecutorConfigurationSupport: java.lang.String beanName>;
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[])>(" \'\u0001\'");
goto label;
label:
v = "";
label:
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[])>("Interrupted while waiting for executor\u to terminate");
interfaceinvoke v.<org.apache.commons.logging.Log: void warn(java.lang.Object)>(v);
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
}