public class org.springframework.scheduling.annotation.AsyncAnnotationAdvisor extends org.springframework.aop.support.AbstractPointcutAdvisor implements org.springframework.beans.factory.BeanFactoryAware
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor
  super_class: org.springframework.aop.support.AbstractPointcutAdvisor
{
  private org.aopalliance.aop.Advice advice;
    descriptor: Lorg/aopalliance/aop/Advice;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.aop.Pointcut pointcut;
    descriptor: Lorg/springframework/aop/Pointcut;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
         0: .line 67
            aload 0 /* this */
            aconst_null
            aconst_null
            invokespecial org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.<init>:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
         1: .line 68
            return
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;

  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=3, locals=3, args_size=3
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // java.util.concurrent.Executor executor
        start local 2 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
         0: .line 82
            aload 0 /* this */
            aload 1 /* executor */
            invokestatic org.springframework.util.function.SingletonSupplier.ofNullable:(Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
            aload 2 /* exceptionHandler */
            invokestatic org.springframework.util.function.SingletonSupplier.ofNullable:(Ljava/lang/Object;)Lorg/springframework/util/function/SingletonSupplier;
            invokespecial org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.<init>:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
         1: .line 83
            return
        end local 2 // org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler exceptionHandler
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0    2     1          executor  Ljava/util/concurrent/Executor;
            0    2     2  exceptionHandler  Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      executor          
      exceptionHandler  

  public void <init>(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=4, locals=4, args_size=3
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // java.util.function.Supplier executor
        start local 2 // java.util.function.Supplier exceptionHandler
         0: .line 95
            aload 0 /* this */
            invokespecial org.springframework.aop.support.AbstractPointcutAdvisor.<init>:()V
         1: .line 98
            new java.util.LinkedHashSet
            dup
            iconst_2
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 3 /* asyncAnnotationTypes */
        start local 3 // java.util.Set asyncAnnotationTypes
         2: .line 99
            aload 3 /* asyncAnnotationTypes */
            ldc Lorg/springframework/scheduling/annotation/Async;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 101
            aload 3 /* asyncAnnotationTypes */
         4: .line 102
            ldc "javax.ejb.Asynchronous"
            ldc Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
         5: .line 101
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 103
            goto 8
         7: .line 104
      StackMap locals: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor java.util.function.Supplier java.util.function.Supplier java.util.Set
      StackMap stack: java.lang.ClassNotFoundException
            pop
         8: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* executor */
            aload 2 /* exceptionHandler */
            invokevirtual org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.buildAdvice:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)Lorg/aopalliance/aop/Advice;
            putfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.advice:Lorg/aopalliance/aop/Advice;
         9: .line 108
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* asyncAnnotationTypes */
            invokevirtual org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.buildPointcut:(Ljava/util/Set;)Lorg/springframework/aop/Pointcut;
            putfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.pointcut:Lorg/springframework/aop/Pointcut;
        10: .line 109
            return
        end local 3 // java.util.Set asyncAnnotationTypes
        end local 2 // java.util.function.Supplier exceptionHandler
        end local 1 // java.util.function.Supplier executor
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0   11     1              executor  Ljava/util/function/Supplier<Ljava/util/concurrent/Executor;>;
            0   11     2      exceptionHandler  Ljava/util/function/Supplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;
            2   11     3  asyncAnnotationTypes  Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.ClassNotFoundException
    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
      executor          
      exceptionHandler  

  public void setAsyncAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // java.lang.Class asyncAnnotationType
         0: .line 122
            aload 1 /* asyncAnnotationType */
            ldc "'asyncAnnotationType' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 123
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* asyncAnnotationTypes */
        start local 2 // java.util.Set asyncAnnotationTypes
         2: .line 124
            aload 2 /* asyncAnnotationTypes */
            aload 1 /* asyncAnnotationType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 125
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* asyncAnnotationTypes */
            invokevirtual org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.buildPointcut:(Ljava/util/Set;)Lorg/springframework/aop/Pointcut;
            putfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.pointcut:Lorg/springframework/aop/Pointcut;
         4: .line 126
            return
        end local 2 // java.util.Set asyncAnnotationTypes
        end local 1 // java.lang.Class asyncAnnotationType
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0    5     1   asyncAnnotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            2    5     2  asyncAnnotationTypes  Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
    MethodParameters:
                     Name  Flags
      asyncAnnotationType  

  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.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 133
            aload 0 /* this */
            getfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.advice:Lorg/aopalliance/aop/Advice;
            instanceof org.springframework.beans.factory.BeanFactoryAware
            ifeq 2
         1: .line 134
            aload 0 /* this */
            getfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.advice:Lorg/aopalliance/aop/Advice;
            checkcast org.springframework.beans.factory.BeanFactoryAware
            aload 1 /* beanFactory */
            invokeinterface org.springframework.beans.factory.BeanFactoryAware.setBeanFactory:(Lorg/springframework/beans/factory/BeanFactory;)V
         2: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0    3     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    MethodParameters:
             Name  Flags
      beanFactory  

  public org.aopalliance.aop.Advice getAdvice();
    descriptor: ()Lorg/aopalliance/aop/Advice;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
         0: .line 141
            aload 0 /* this */
            getfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.advice:Lorg/aopalliance/aop/Advice;
            areturn
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;

  public org.springframework.aop.Pointcut getPointcut();
    descriptor: ()Lorg/springframework/aop/Pointcut;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
         0: .line 146
            aload 0 /* this */
            getfield org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.pointcut:Lorg/springframework/aop/Pointcut;
            areturn
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;

  protected org.aopalliance.aop.Advice buildAdvice(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;)Lorg/aopalliance/aop/Advice;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // java.util.function.Supplier executor
        start local 2 // java.util.function.Supplier exceptionHandler
         0: .line 153
            new org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor
            dup
            aconst_null
            invokespecial org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor.<init>:(Ljava/util/concurrent/Executor;)V
            astore 3 /* interceptor */
        start local 3 // org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor interceptor
         1: .line 154
            aload 3 /* interceptor */
            aload 1 /* executor */
            aload 2 /* exceptionHandler */
            invokevirtual org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor.configure:(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
         2: .line 155
            aload 3 /* interceptor */
            areturn
        end local 3 // org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor interceptor
        end local 2 // java.util.function.Supplier exceptionHandler
        end local 1 // java.util.function.Supplier executor
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0    3     1          executor  Ljava/util/function/Supplier<Ljava/util/concurrent/Executor;>;
            0    3     2  exceptionHandler  Ljava/util/function/Supplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;
            1    3     3       interceptor  Lorg/springframework/scheduling/annotation/AnnotationAsyncExecutionInterceptor;
    Signature: (Ljava/util/function/Supplier<Ljava/util/concurrent/Executor;>;Ljava/util/function/Supplier<Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;>;)Lorg/aopalliance/aop/Advice;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      executor          
      exceptionHandler  

  protected org.springframework.aop.Pointcut buildPointcut(java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>>);
    descriptor: (Ljava/util/Set;)Lorg/springframework/aop/Pointcut;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
        start local 1 // java.util.Set asyncAnnotationTypes
         0: .line 164
            aconst_null
            astore 2 /* result */
        start local 2 // org.springframework.aop.support.ComposablePointcut result
         1: .line 165
            aload 1 /* asyncAnnotationTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor java.util.Set org.springframework.aop.support.ComposablePointcut top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 3 /* asyncAnnotationType */
        start local 3 // java.lang.Class asyncAnnotationType
         3: .line 166
            new org.springframework.aop.support.annotation.AnnotationMatchingPointcut
            dup
            aload 3 /* asyncAnnotationType */
            iconst_1
            invokespecial org.springframework.aop.support.annotation.AnnotationMatchingPointcut.<init>:(Ljava/lang/Class;Z)V
            astore 5 /* cpc */
        start local 5 // org.springframework.aop.Pointcut cpc
         4: .line 167
            new org.springframework.aop.support.annotation.AnnotationMatchingPointcut
            dup
            aconst_null
            aload 3 /* asyncAnnotationType */
            iconst_1
            invokespecial org.springframework.aop.support.annotation.AnnotationMatchingPointcut.<init>:(Ljava/lang/Class;Ljava/lang/Class;Z)V
            astore 6 /* mpc */
        start local 6 // org.springframework.aop.Pointcut mpc
         5: .line 168
            aload 2 /* result */
            ifnonnull 8
         6: .line 169
            new org.springframework.aop.support.ComposablePointcut
            dup
            aload 5 /* cpc */
            invokespecial org.springframework.aop.support.ComposablePointcut.<init>:(Lorg/springframework/aop/Pointcut;)V
            astore 2 /* result */
         7: .line 170
            goto 9
         8: .line 172
      StackMap locals: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor java.util.Set org.springframework.aop.support.ComposablePointcut java.lang.Class java.util.Iterator org.springframework.aop.Pointcut org.springframework.aop.Pointcut
      StackMap stack:
            aload 2 /* result */
            aload 5 /* cpc */
            invokevirtual org.springframework.aop.support.ComposablePointcut.union:(Lorg/springframework/aop/Pointcut;)Lorg/springframework/aop/support/ComposablePointcut;
            pop
         9: .line 174
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            aload 6 /* mpc */
            invokevirtual org.springframework.aop.support.ComposablePointcut.union:(Lorg/springframework/aop/Pointcut;)Lorg/springframework/aop/support/ComposablePointcut;
            astore 2 /* result */
        end local 6 // org.springframework.aop.Pointcut mpc
        end local 5 // org.springframework.aop.Pointcut cpc
        end local 3 // java.lang.Class asyncAnnotationType
        10: .line 165
      StackMap locals: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor java.util.Set org.springframework.aop.support.ComposablePointcut top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 176
            aload 2 /* result */
            ifnull 12
            aload 2 /* result */
            goto 13
      StackMap locals: org.springframework.scheduling.annotation.AsyncAnnotationAdvisor java.util.Set org.springframework.aop.support.ComposablePointcut
      StackMap stack:
        12: getstatic org.springframework.aop.Pointcut.TRUE:Lorg/springframework/aop/Pointcut;
      StackMap locals:
      StackMap stack: org.springframework.aop.Pointcut
        13: areturn
        end local 2 // org.springframework.aop.support.ComposablePointcut result
        end local 1 // java.util.Set asyncAnnotationTypes
        end local 0 // org.springframework.scheduling.annotation.AsyncAnnotationAdvisor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/springframework/scheduling/annotation/AsyncAnnotationAdvisor;
            0   14     1  asyncAnnotationTypes  Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;
            1   14     2                result  Lorg/springframework/aop/support/ComposablePointcut;
            3   10     3   asyncAnnotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
            4   10     5                   cpc  Lorg/springframework/aop/Pointcut;
            5   10     6                   mpc  Lorg/springframework/aop/Pointcut;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;)Lorg/springframework/aop/Pointcut;
    MethodParameters:
                      Name  Flags
      asyncAnnotationTypes  
}
SourceFile: "AsyncAnnotationAdvisor.java"