public class org.springframework.scheduling.concurrent.ConcurrentTaskExecutor implements org.springframework.core.task.AsyncListenableTaskExecutor, org.springframework.scheduling.SchedulingTaskExecutor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
  super_class: java.lang.Object
{
  private static java.lang.Class<?> managedExecutorServiceClass;
    descriptor: Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.util.concurrent.Executor concurrentExecutor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.core.task.support.TaskExecutorAdapter adaptedExecutor;
    descriptor: Lorg/springframework/core/task/support/TaskExecutorAdapter;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 72
            ldc "javax.enterprise.concurrent.ManagedExecutorService"
         1: .line 73
            ldc Lorg/springframework/scheduling/concurrent/ConcurrentTaskScheduler;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         2: .line 71
            invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
            putstatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.managedExecutorServiceClass:Ljava/lang/Class;
         3: .line 74
            goto 6
         4: .line 75
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         5: .line 77
            aconst_null
            putstatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.managedExecutorServiceClass:Ljava/lang/Class;
         6: .line 79
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ClassNotFoundException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            invokestatic java.util.concurrent.Executors.newSingleThreadExecutor:()Ljava/util/concurrent/ExecutorService;
            putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
         2: .line 92
            aload 0 /* this */
            new org.springframework.core.task.support.TaskExecutorAdapter
            dup
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
            invokespecial org.springframework.core.task.support.TaskExecutorAdapter.<init>:(Ljava/util/concurrent/Executor;)V
            putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
         3: .line 93
            return
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;

  public void <init>(java.util.concurrent.Executor);
    descriptor: (Ljava/util/concurrent/Executor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.util.concurrent.Executor executor
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 102
            aload 0 /* this */
            aload 1 /* executor */
            ifnull 2
            aload 1 /* executor */
            goto 3
      StackMap locals: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor java.util.concurrent.Executor
      StackMap stack: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
         2: invokestatic java.util.concurrent.Executors.newSingleThreadExecutor:()Ljava/util/concurrent/ExecutorService;
      StackMap locals: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor java.util.concurrent.Executor
      StackMap stack: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor java.util.concurrent.Executor
         3: putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
         4: .line 103
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
            invokestatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.getAdaptedExecutor:(Ljava/util/concurrent/Executor;)Lorg/springframework/core/task/support/TaskExecutorAdapter;
            putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
         5: .line 104
            return
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    6     1  executor  Ljava/util/concurrent/Executor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      executor  

  public final void setConcurrentExecutor(java.util.concurrent.Executor);
    descriptor: (Ljava/util/concurrent/Executor;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.util.concurrent.Executor executor
         0: .line 113
            aload 0 /* this */
            aload 1 /* executor */
            ifnull 1
            aload 1 /* executor */
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
         1: invokestatic java.util.concurrent.Executors.newSingleThreadExecutor:()Ljava/util/concurrent/ExecutorService;
      StackMap locals: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor java.util.concurrent.Executor
      StackMap stack: org.springframework.scheduling.concurrent.ConcurrentTaskExecutor java.util.concurrent.Executor
         2: putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
         3: .line 114
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
            invokestatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.getAdaptedExecutor:(Ljava/util/concurrent/Executor;)Lorg/springframework/core/task/support/TaskExecutorAdapter;
            putfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
         4: .line 115
            return
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    5     1  executor  Ljava/util/concurrent/Executor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      executor  

  public final java.util.concurrent.Executor getConcurrentExecutor();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
         0: .line 121
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.concurrentExecutor:Ljava/util/concurrent/Executor;
            areturn
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;

  public final void setTaskDecorator(org.springframework.core.task.TaskDecorator);
    descriptor: (Lorg/springframework/core/task/TaskDecorator;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // org.springframework.core.task.TaskDecorator taskDecorator
         0: .line 135
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* taskDecorator */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.setTaskDecorator:(Lorg/springframework/core/task/TaskDecorator;)V
         1: .line 136
            return
        end local 1 // org.springframework.core.task.TaskDecorator taskDecorator
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    2     1  taskDecorator  Lorg/springframework/core/task/TaskDecorator;
    MethodParameters:
               Name  Flags
      taskDecorator  

  public void execute(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.lang.Runnable task
         0: .line 141
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.execute:(Ljava/lang/Runnable;)V
         1: .line 142
            return
        end local 1 // java.lang.Runnable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    2     1  task  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      task  

  public void execute(java.lang.Runnable, long);
    descriptor: (Ljava/lang/Runnable;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.lang.Runnable task
        start local 2 // long startTimeout
         0: .line 146
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            lload 2 /* startTimeout */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.execute:(Ljava/lang/Runnable;J)V
         1: .line 147
            return
        end local 2 // long startTimeout
        end local 1 // java.lang.Runnable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    2     1          task  Ljava/lang/Runnable;
            0    2     2  startTimeout  J
    MethodParameters:
              Name  Flags
      task          
      startTimeout  

  public java.util.concurrent.Future<?> submit(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.lang.Runnable task
         0: .line 151
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            areturn
        end local 1 // java.lang.Runnable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    1     1  task  Ljava/lang/Runnable;
    Signature: (Ljava/lang/Runnable;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
      Name  Flags
      task  

  public <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T>);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.util.concurrent.Callable task
         0: .line 156
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 1 // java.util.concurrent.Callable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    1     1  task  Ljava/util/concurrent/Callable<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)Ljava/util/concurrent/Future<TT;>;
    MethodParameters:
      Name  Flags
      task  

  public org.springframework.util.concurrent.ListenableFuture<?> submitListenable(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lorg/springframework/util/concurrent/ListenableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.lang.Runnable task
         0: .line 161
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.submitListenable:(Ljava/lang/Runnable;)Lorg/springframework/util/concurrent/ListenableFuture;
            areturn
        end local 1 // java.lang.Runnable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    1     1  task  Ljava/lang/Runnable;
    Signature: (Ljava/lang/Runnable;)Lorg/springframework/util/concurrent/ListenableFuture<*>;
    MethodParameters:
      Name  Flags
      task  

  public <T> org.springframework.util.concurrent.ListenableFuture<T> submitListenable(java.util.concurrent.Callable<T>);
    descriptor: (Ljava/util/concurrent/Callable;)Lorg/springframework/util/concurrent/ListenableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
        start local 1 // java.util.concurrent.Callable task
         0: .line 166
            aload 0 /* this */
            getfield org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.adaptedExecutor:Lorg/springframework/core/task/support/TaskExecutorAdapter;
            aload 1 /* task */
            invokevirtual org.springframework.core.task.support.TaskExecutorAdapter.submitListenable:(Ljava/util/concurrent/Callable;)Lorg/springframework/util/concurrent/ListenableFuture;
            areturn
        end local 1 // java.util.concurrent.Callable task
        end local 0 // org.springframework.scheduling.concurrent.ConcurrentTaskExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/concurrent/ConcurrentTaskExecutor;
            0    1     1  task  Ljava/util/concurrent/Callable<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)Lorg/springframework/util/concurrent/ListenableFuture<TT;>;
    MethodParameters:
      Name  Flags
      task  

  private static org.springframework.core.task.support.TaskExecutorAdapter getAdaptedExecutor(java.util.concurrent.Executor);
    descriptor: (Ljava/util/concurrent/Executor;)Lorg/springframework/core/task/support/TaskExecutorAdapter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.Executor concurrentExecutor
         0: .line 171
            getstatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.managedExecutorServiceClass:Ljava/lang/Class;
            ifnull 2
            getstatic org.springframework.scheduling.concurrent.ConcurrentTaskExecutor.managedExecutorServiceClass:Ljava/lang/Class;
            aload 0 /* concurrentExecutor */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 172
            new org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskExecutorAdapter
            dup
            aload 0 /* concurrentExecutor */
            invokespecial org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskExecutorAdapter.<init>:(Ljava/util/concurrent/Executor;)V
            areturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            new org.springframework.core.task.support.TaskExecutorAdapter
            dup
            aload 0 /* concurrentExecutor */
            invokespecial org.springframework.core.task.support.TaskExecutorAdapter.<init>:(Ljava/util/concurrent/Executor;)V
            areturn
        end local 0 // java.util.concurrent.Executor concurrentExecutor
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0  concurrentExecutor  Ljava/util/concurrent/Executor;
    MethodParameters:
                    Name  Flags
      concurrentExecutor  
}
SourceFile: "ConcurrentTaskExecutor.java"
NestMembers:
  org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskBuilder  org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskExecutorAdapter
InnerClasses:
  protected ManagedTaskBuilder = org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskBuilder of org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
  private ManagedTaskExecutorAdapter = org.springframework.scheduling.concurrent.ConcurrentTaskExecutor$ManagedTaskExecutorAdapter of org.springframework.scheduling.concurrent.ConcurrentTaskExecutor