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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
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: aload 0
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: aload 0
new org.springframework.util.function.SingletonSupplier
dup
aload 1
aload 0
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: aload 0
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: return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
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: aload 0
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: aload 0
new org.springframework.util.function.SingletonSupplier
dup
aload 1
aload 0
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: aload 0
aload 2
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: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
new org.springframework.util.function.SingletonSupplier
dup
aload 1
aload 0
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: aload 0
new org.springframework.util.function.SingletonSupplier
dup
aload 2
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: return
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
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: return
end local 1 end local 0 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 start local 1 0: aload 0
aload 1
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: return
end local 1 end local 0 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 start local 1 0: aload 0
aload 1
putfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
1: return
end local 1 end local 0 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 start local 1 0: aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.core.task.AsyncTaskExecutor
astore 2
start local 2 1: aload 2
ifnonnull 14
2: aload 0
aload 1
invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.getExecutorQualifier:(Ljava/lang/reflect/Method;)Ljava/lang/String;
astore 4
start local 4 3: aload 4
invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
ifeq 6
4: aload 0
aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.beanFactory:Lorg/springframework/beans/factory/BeanFactory;
aload 4
invokevirtual org.springframework.aop.interceptor.AsyncExecutionAspectSupport.findQualifiedExecutor:(Lorg/springframework/beans/factory/BeanFactory;Ljava/lang/String;)Ljava/util/concurrent/Executor;
astore 3
start local 3 5: goto 7
end local 3 6: StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport java.lang.reflect.Method org.springframework.core.task.AsyncTaskExecutor top java.lang.String
StackMap stack:
aload 0
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
start local 3 7: 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
ifnonnull 9
8: aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 3
instanceof org.springframework.core.task.AsyncListenableTaskExecutor
ifeq 11
10: aload 3
checkcast org.springframework.core.task.AsyncListenableTaskExecutor
goto 12
StackMap locals:
StackMap stack:
11: new org.springframework.core.task.support.TaskExecutorAdapter
dup
aload 3
invokespecial org.springframework.core.task.support.TaskExecutorAdapter.<init>:(Ljava/util/concurrent/Executor;)V
12: StackMap locals:
StackMap stack: org.springframework.core.task.AsyncListenableTaskExecutor
astore 2
13: aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.executors:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 end local 3 14: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 1
ifnonnull 4
1: 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
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: ldc " to access qualified executor '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
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: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/util/concurrent/Executor;
aload 2
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 end local 1 end local 0 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 start local 1 0: aload 1
ifnull 19
1: aload 1
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: StackMap locals:
StackMap stack: org.springframework.beans.factory.NoUniqueBeanDefinitionException
astore 2
start local 2 4: aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
ldc "Could not find unique TaskExecutor bean"
aload 2
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
5: aload 1
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: 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: aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 19
9: aload 0
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: aload 2
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: invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
end local 2 12: goto 19
13: StackMap locals: org.springframework.aop.interceptor.AsyncExecutionAspectSupport org.springframework.beans.factory.BeanFactory
StackMap stack: org.springframework.beans.factory.NoSuchBeanDefinitionException
astore 2
start local 2 14: aload 0
getfield org.springframework.aop.interceptor.AsyncExecutionAspectSupport.logger:Lorg/apache/commons/logging/Log;
ldc "Could not find default TaskExecutor bean"
aload 2
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
15: aload 1
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: 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: aload 0
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 19: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 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 start local 1 start local 2 start local 3 0: ldc Ljava/util/concurrent/CompletableFuture;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 4
1: aload 1
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: aload 2
3: invokestatic java.util.concurrent.CompletableFuture.supplyAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
areturn
4: StackMap locals:
StackMap stack:
ldc Lorg/springframework/util/concurrent/ListenableFuture;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 6
5: aload 2
checkcast org.springframework.core.task.AsyncListenableTaskExecutor
aload 1
invokeinterface org.springframework.core.task.AsyncListenableTaskExecutor.submitListenable:(Ljava/util/concurrent/Callable;)Lorg/springframework/util/concurrent/ListenableFuture;
areturn
6: StackMap locals:
StackMap stack:
ldc Ljava/util/concurrent/Future;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 8
7: aload 2
aload 1
invokeinterface org.springframework.core.task.AsyncTaskExecutor.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
areturn
8: StackMap locals:
StackMap stack:
aload 2
aload 1
invokeinterface org.springframework.core.task.AsyncTaskExecutor.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
pop
9: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: ldc Ljava/util/concurrent/Future;
aload 2
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 3
1: aload 1
invokestatic org.springframework.util.ReflectionUtils.rethrowException:(Ljava/lang/Throwable;)V
2: goto 9
3: StackMap locals:
StackMap stack:
aload 0
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
aload 2
aload 3
invokeinterface org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler.handleUncaughtException:(Ljava/lang/Throwable;Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
4: goto 9
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 6: aload 0
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
invokevirtual java.lang.reflect.Method.toGenericString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: 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
8: invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 0: aload 0
aload 0
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 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 0: aload 0
aload 0
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 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 0: aload 0
aload 0
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 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: aload 0
invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 3: new java.util.concurrent.CompletionException
dup
aload 1
invokespecial java.util.concurrent.CompletionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 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