public abstract class org.springframework.aop.interceptor.AsyncExecutionAspectSupport implements org.springframework.beans.factory.BeanFactoryAware
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.aop.interceptor.AsyncExecutionAspectSupport
  super_class: java.lang.Object
{
  public static final java.lang.String DEFAULT_TASK_EXECUTOR_BEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "taskExecutor"

  protected final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.Map<java.lang.reflect.Method, org.springframework.core.task.AsyncTaskExecutor> executors;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/reflect/Method;Lorg/springframework/core/task/AsyncTaskExecutor;>;

  private org.springframework.util.function.SingletonSupplier<java.util.concurrent.Executor> defaultExecutor;
    descriptor: Lorg/springframework/util/function/SingletonSupplier;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/springframework/util/function/SingletonSupplier<Ljava/util/concurrent/Executor;>;

  private org.springframework.util.function.SingletonSupplier<org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler> exceptionHandler;
    descriptor: Lorg/springframework/util/function/SingletonSupplier;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/springframework/util/function/SingletonSupplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;

  private org.springframework.beans.factory.BeanFactory beanFactory;
    descriptor: Lorg/springframework/beans/factory/BeanFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>(java.util.concurrent.Executor);
    descriptor: (Ljava/util/concurrent/Executor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.util.concurrent.Executor defaultExecutor
         0: .line 92
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
         2: .line 75
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 16
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
         3: .line 93
            aload 0 /* this */
            new org.springframework.util.function.SingletonSupplier
            dup
            aload 1 /* defaultExecutor */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/AsyncExecutionAspectSupport.lambda$0()Ljava/util/concurrent/Executor; (7)
                  ()Ljava/util/concurrent/Executor;
            invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/lang/Object;Ljava/util/function/Supplier;)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.defaultExecutor:Lorg/springframework/util/function/SingletonSupplier;
         4: .line 94
            aload 0 /* this */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/SimpleAsyncUncaughtExceptionHandler.<init>()V (8)
                  ()Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;
            invokestatic org.springframework.util.function.SingletonSupplier.of:(Ljava/util/function/Supplier;)Lorg/springframework/util/function/SingletonSupplier;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.exceptionHandler:Lorg/springframework/util/function/SingletonSupplier;
         5: .line 95
            return
        end local 1 // java.util.concurrent.Executor defaultExecutor
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    6     1  defaultExecutor  Ljava/util/concurrent/Executor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      defaultExecutor  

  public void <init>(java.util.concurrent.Executor, org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler);
    descriptor: (Ljava/util/concurrent/Executor;Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.util.concurrent.Executor defaultExecutor
        start local 2 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
         0: .line 105
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
         2: .line 75
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 16
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
         3: .line 106
            aload 0 /* this */
            new org.springframework.util.function.SingletonSupplier
            dup
            aload 1 /* defaultExecutor */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/AsyncExecutionAspectSupport.lambda$2()Ljava/util/concurrent/Executor; (7)
                  ()Ljava/util/concurrent/Executor;
            invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/lang/Object;Ljava/util/function/Supplier;)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.defaultExecutor:Lorg/springframework/util/function/SingletonSupplier;
         4: .line 107
            aload 0 /* this */
            aload 2 /* exceptionHandler */
            invokestatic org.springframework.util.function.SingletonSupplier.of:(Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.exceptionHandler:Lorg/springframework/util/function/SingletonSupplier;
         5: .line 108
            return
        end local 2 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
        end local 1 // java.util.concurrent.Executor defaultExecutor
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    6     1   defaultExecutor  Ljava/util/concurrent/Executor;
            0    6     2  exceptionHandler  Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
                  Name  Flags
      defaultExecutor   
      exceptionHandler  

  public void configure(java.util.function.Supplier<java.util.concurrent.Executor>, java.util.function.Supplier<org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler>);
    descriptor: (Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.util.function.Supplier defaultExecutor
        start local 2 // java.util.function.Supplier exceptionHandler
         0: .line 119
            aload 0 /* this */
            new org.springframework.util.function.SingletonSupplier
            dup
            aload 1 /* defaultExecutor */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/AsyncExecutionAspectSupport.lambda$3()Ljava/util/concurrent/Executor; (7)
                  ()Ljava/util/concurrent/Executor;
            invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.defaultExecutor:Lorg/springframework/util/function/SingletonSupplier;
         1: .line 120
            aload 0 /* this */
            new org.springframework.util.function.SingletonSupplier
            dup
            aload 2 /* exceptionHandler */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/SimpleAsyncUncaughtExceptionHandler.<init>()V (8)
                  ()Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;
            invokespecial org.springframework.util.function.SingletonSupplier.<init>:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.exceptionHandler:Lorg/springframework/util/function/SingletonSupplier;
         2: .line 121
            return
        end local 2 // java.util.function.Supplier exceptionHandler
        end local 1 // java.util.function.Supplier defaultExecutor
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    3     1   defaultExecutor  Ljava/util/function/Supplier<Ljava/util/concurrent/Executor;>;
            0    3     2  exceptionHandler  Ljava/util/function/Supplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;
    Signature: (Ljava/util/function/Supplier<Ljava/util/concurrent/Executor;>;Ljava/util/function/Supplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      defaultExecutor   
      exceptionHandler  

  public void setExecutor(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.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.util.concurrent.Executor defaultExecutor
         0: .line 134
            aload 0 /* this */
            aload 1 /* defaultExecutor */
            invokestatic org.springframework.util.function.SingletonSupplier.of:(Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.defaultExecutor:Lorg/springframework/util/function/SingletonSupplier;
         1: .line 135
            return
        end local 1 // java.util.concurrent.Executor defaultExecutor
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    2     1  defaultExecutor  Ljava/util/concurrent/Executor;
    MethodParameters:
                 Name  Flags
      defaultExecutor  

  public void setExceptionHandler(org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler);
    descriptor: (Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
         0: .line 142
            aload 0 /* this */
            aload 1 /* exceptionHandler */
            invokestatic org.springframework.util.function.SingletonSupplier.of:(Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.exceptionHandler:Lorg/springframework/util/function/SingletonSupplier;
         1: .line 143
            return
        end local 1 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    2     1  exceptionHandler  Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;
    MethodParameters:
                  Name  Flags
      exceptionHandler  

  public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 153
            aload 0 /* this */
            aload 1 /* beanFactory */
            putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
         1: .line 154
            return
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    2     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    MethodParameters:
             Name  Flags
      beanFactory  

  protected org.springframework.core.task.AsyncTaskExecutor determineAsyncExecutor(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Lorg/springframework/core/task/AsyncTaskExecutor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.lang.reflect.Method method
         0: .line 164
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.task.AsyncTaskExecutor
            astore 2 /* executor */
        start local 2 // org.springframework.core.task.AsyncTaskExecutor executor
         1: .line 165
            aload 2 /* executor */
            ifnonnull 14
         2: .line 167
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.getExecutorQualifier:(Ljava/lang/reflect/Method;)Ljava/lang/String;
            astore 4 /* qualifier */
        start local 4 // java.lang.String qualifier
         3: .line 168
            aload 4 /* qualifier */
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 169
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            aload 4 /* qualifier */
            invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.findQualifiedExecutor:(Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/String;)Ljava/util/concurrent/Executor;
            astore 3 /* targetExecutor */
        start local 3 // java.util.concurrent.Executor targetExecutor
         5: .line 170
            goto 7
        end local 3 // java.util.concurrent.Executor targetExecutor
         6: .line 172
      StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport java.lang.reflect.Method org.springframework.core.task.AsyncTaskExecutor top java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.defaultExecutor:Lorg/springframework/util/function/SingletonSupplier;
            invokevirtual org.springframework.util.function.SingletonSupplier.get:()Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
            astore 3 /* targetExecutor */
        start local 3 // java.util.concurrent.Executor targetExecutor
         7: .line 174
      StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport java.lang.reflect.Method org.springframework.core.task.AsyncTaskExecutor java.util.concurrent.Executor java.lang.String
      StackMap stack:
            aload 3 /* targetExecutor */
            ifnonnull 9
         8: .line 175
            aconst_null
            areturn
         9: .line 177
      StackMap locals:
      StackMap stack:
            aload 3 /* targetExecutor */
            instanceof org.springframework.core.task.AsyncListenableTaskExecutor
            ifeq 11
        10: .line 178
            aload 3 /* targetExecutor */
            checkcast org.springframework.core.task.AsyncListenableTaskExecutor
            goto 12
      StackMap locals:
      StackMap stack:
        11: new org.springframework.core.task.support.TaskExecutorAdapter
            dup
            aload 3 /* targetExecutor */
            invokespecial org.springframework.core.task.support.TaskExecutorAdapter.<init>:(Ljava/util/concurrent/Executor;)V
        12: .line 177
      StackMap locals:
      StackMap stack: org.springframework.core.task.AsyncListenableTaskExecutor
            astore 2 /* executor */
        13: .line 179
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
            aload 1 /* method */
            aload 2 /* executor */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String qualifier
        end local 3 // java.util.concurrent.Executor targetExecutor
        14: .line 181
      StackMap locals:
      StackMap stack:
            aload 2 /* executor */
            areturn
        end local 2 // org.springframework.core.task.AsyncTaskExecutor executor
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0   15     1          method  Ljava/lang/reflect/Method;
            1   15     2        executor  Lorg/springframework/core/task/AsyncTaskExecutor;
            5    6     3  targetExecutor  Ljava/util/concurrent/Executor;
            7   14     3  targetExecutor  Ljava/util/concurrent/Executor;
            3   14     4       qualifier  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      method  

  protected abstract java.lang.String getExecutorQualifier(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      method  

  protected java.util.concurrent.Executor findQualifiedExecutor(org.springframework.beans.factory.BeanFactory, java.lang.String);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/String;)Ljava/util/concurrent/Executor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        start local 2 // java.lang.String qualifier
         0: .line 207
            aload 1 /* beanFactory */
            ifnonnull 4
         1: .line 208
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "BeanFactory must be set on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 209
            ldc " to access qualified executor '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* qualifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 208
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 211
      StackMap locals:
      StackMap stack:
            aload 1 /* beanFactory */
            ldc Ljava/util/concurrent/Executor;
            aload 2 /* qualifier */
            invokestatic org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType:(Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
            areturn
        end local 2 // java.lang.String qualifier
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0    5     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
            0    5     2    qualifier  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      beanFactory  
      qualifier    

  protected java.util.concurrent.Executor getDefaultExecutor(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)Ljava/util/concurrent/Executor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 228
            aload 1 /* beanFactory */
            ifnull 19
         1: .line 233
            aload 1 /* beanFactory */
            ldc Lorg/springframework/core/task/TaskExecutor;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
         2: areturn
         3: .line 235
      StackMap locals:
      StackMap stack: org.springframework.beans.factory.NoUniqueBeanDefinitionException
            astore 2 /* ex */
        start local 2 // org.springframework.beans.factory.NoUniqueBeanDefinitionException ex
         4: .line 236
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            ldc "Could not find unique TaskExecutor bean"
            aload 2 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 238
            aload 1 /* beanFactory */
            ldc "taskExecutor"
            ldc Ljava/util/concurrent/Executor;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
         6: areturn
         7: .line 240
      StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport org.springframework.beans.factory.BeanFactory org.springframework.beans.factory.NoUniqueBeanDefinitionException
      StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
            pop
         8: .line 241
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 19
         9: .line 242
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "More than one TaskExecutor bean found within the context, and none is named 'taskExecutor'. Mark one of them as primary or name it 'taskExecutor' (possibly as an alias) in order to use it for async processing: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 244
            aload 2 /* ex */
            invokevirtual org.springframework.beans.factory.NoUniqueBeanDefinitionException.getBeanNamesFound:()Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 242
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        end local 2 // org.springframework.beans.factory.NoUniqueBeanDefinitionException ex
        12: goto 19
        13: .line 248
      StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport org.springframework.beans.factory.BeanFactory
      StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
            astore 2 /* ex */
        start local 2 // org.springframework.beans.factory.NoSuchBeanDefinitionException ex
        14: .line 249
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            ldc "Could not find default TaskExecutor bean"
            aload 2 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        15: .line 251
            aload 1 /* beanFactory */
            ldc "taskExecutor"
            ldc Ljava/util/concurrent/Executor;
            invokeinterface org.springframework.beans.factory.BeanFactory.getBean:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.concurrent.Executor
        16: areturn
        17: .line 253
      StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport org.springframework.beans.factory.BeanFactory org.springframework.beans.factory.NoSuchBeanDefinitionException
      StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
            pop
        18: .line 254
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            ldc "No task executor bean found for async processing: no bean of type TaskExecutor and no bean named 'taskExecutor' either"
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        end local 2 // org.springframework.beans.factory.NoSuchBeanDefinitionException ex
        19: .line 260
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0   20     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
            4   12     2           ex  Lorg/springframework/beans/factory/NoUniqueBeanDefinitionException;
           14   19     2           ex  Lorg/springframework/beans/factory/NoSuchBeanDefinitionException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.springframework.beans.factory.NoUniqueBeanDefinitionException
           5     6       7  Class org.springframework.beans.factory.NoSuchBeanDefinitionException
           1     2      13  Class org.springframework.beans.factory.NoSuchBeanDefinitionException
          15    16      17  Class org.springframework.beans.factory.NoSuchBeanDefinitionException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      beanFactory  

  protected  doSubmit(java.util.concurrent.Callable<java.lang.Object>, org.springframework.core.task.AsyncTaskExecutor, java.lang.Class<?>);
    descriptor: (Ljava/util/concurrent/Callable;Lorg/springframework/core/task/AsyncTaskExecutor;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.util.concurrent.Callable task
        start local 2 // org.springframework.core.task.AsyncTaskExecutor executor
        start local 3 // java.lang.Class returnType
         0: .line 273
            ldc Ljava/util/concurrent/CompletableFuture;
            aload 3 /* returnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         1: .line 274
            aload 1 /* task */
            invokedynamic get(Ljava/util/concurrent/Callable;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/aop/interceptor/AsyncExecutionAspectSupport.lambda$5(Ljava/util/concurrent/Callable;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
         2: .line 281
            aload 2 /* executor */
         3: .line 274
            invokestatic java.util.concurrent.CompletableFuture.supplyAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
            areturn
         4: .line 283
      StackMap locals:
      StackMap stack:
            ldc Lorg/springframework/util/concurrent/ListenableFuture;
            aload 3 /* returnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         5: .line 284
            aload 2 /* executor */
            checkcast org.springframework.core.task.AsyncListenableTaskExecutor
            aload 1 /* task */
            invokeinterface org.springframework.core.task.AsyncListenableTaskExecutor.submitListenable:(Ljava/util/concurrent/Callable;)Lorg/springframework/util/concurrent/ListenableFuture;
            areturn
         6: .line 286
      StackMap locals:
      StackMap stack:
            ldc Ljava/util/concurrent/Future;
            aload 3 /* returnType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 287
            aload 2 /* executor */
            aload 1 /* task */
            invokeinterface org.springframework.core.task.AsyncTaskExecutor.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
         8: .line 290
      StackMap locals:
      StackMap stack:
            aload 2 /* executor */
            aload 1 /* task */
            invokeinterface org.springframework.core.task.AsyncTaskExecutor.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
         9: .line 291
            aconst_null
            areturn
        end local 3 // java.lang.Class returnType
        end local 2 // org.springframework.core.task.AsyncTaskExecutor executor
        end local 1 // java.util.concurrent.Callable task
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0   10     1        task  Ljava/util/concurrent/Callable<Ljava/lang/Object;>;
            0   10     2    executor  Lorg/springframework/core/task/AsyncTaskExecutor;
            0   10     3  returnType  Ljava/lang/Class<*>;
    Signature: (Ljava/util/concurrent/Callable<Ljava/lang/Object;>;Lorg/springframework/core/task/AsyncTaskExecutor;Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      task        
      executor    
      returnType  

  protected void handleError(java.lang.Throwable, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
        start local 1 // java.lang.Throwable ex
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.Object[] params
         0: .line 308
            ldc Ljava/util/concurrent/Future;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         1: .line 309
            aload 1 /* ex */
            invokestatic org.springframework.util.ReflectionUtils.rethrowException:(Ljava/lang/Throwable;)V
         2: .line 310
            goto 9
         3: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.exceptionHandler:Lorg/springframework/util/function/SingletonSupplier;
            invokevirtual org.springframework.util.function.SingletonSupplier.obtain:()Ljava/lang/Object;
            checkcast org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler
            aload 1 /* ex */
            aload 2 /* method */
            aload 3 /* params */
            invokeinterface org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler.handleUncaughtException:(Ljava/lang/Throwable;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
         4: .line 315
            goto 9
         5: .line 316
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* ex2 */
        start local 4 // java.lang.Throwable ex2
         6: .line 317
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Exception handler for async method '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.toGenericString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 318
            ldc "' threw unexpected exception itself"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex2 */
         8: .line 317
            invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable ex2
         9: .line 321
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object[] params
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Throwable ex
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;
            0   10     1      ex  Ljava/lang/Throwable;
            0   10     2  method  Ljava/lang/reflect/Method;
            0   10     3  params  [Ljava/lang/Object;
            6    9     4     ex2  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      ex      
      method  
      params  

  private java.util.concurrent.Executor lambda$0();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
         0: .line 93
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.getDefaultExecutor:(Lorg/springframework/beans/factory/BeanFactory;)Ljava/util/concurrent/Executor;
            areturn
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;

  private java.util.concurrent.Executor lambda$2();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
         0: .line 106
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.getDefaultExecutor:(Lorg/springframework/beans/factory/BeanFactory;)Ljava/util/concurrent/Executor;
            areturn
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;

  private java.util.concurrent.Executor lambda$3();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
         0: .line 119
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
            invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.getDefaultExecutor:(Lorg/springframework/beans/factory/BeanFactory;)Ljava/util/concurrent/Executor;
            areturn
        end local 0 // org.springframework.aop.interceptor.AsyncExecutionAspectSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/interceptor/AsyncExecutionAspectSupport;

  private static java.lang.Object lambda$5(java.util.concurrent.Callable);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
         0: .line 276
            aload 0
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
         1: areturn
         2: .line 278
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
         3: .line 279
            new java.util.concurrent.CompletionException
            dup
            aload 1 /* ex */
            invokespecial java.util.concurrent.CompletionException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Throwable ex
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    4     1    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
}
SourceFile: "AsyncExecutionAspectSupport.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles