public abstract class org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer<T extends java.lang.Throwable> extends org.springframework.boot.diagnostics.AbstractFailureAnalyzer<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer
  super_class: org.springframework.boot.diagnostics.AbstractFailureAnalyzer
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
         0: .line 36
            aload 0 /* this */
            invokespecial org.springframework.boot.diagnostics.AbstractFailureAnalyzer.<init>:()V
            return
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;

  protected final org.springframework.boot.diagnostics.FailureAnalysis analyze(java.lang.Throwable, T);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)Lorg/springframework/boot/diagnostics/FailureAnalysis;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
        start local 1 // java.lang.Throwable rootFailure
        start local 2 // java.lang.Throwable cause
         0: .line 40
            aload 0 /* this */
            aload 1 /* rootFailure */
            aload 2 /* cause */
            aload 0 /* this */
            aload 1 /* rootFailure */
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.getDescription:(Ljava/lang/Throwable;)Ljava/lang/String;
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.analyze:(Ljava/lang/Throwable;Ljava/lang/Throwable;Ljava/lang/String;)Lorg/springframework/boot/diagnostics/FailureAnalysis;
            areturn
        end local 2 // java.lang.Throwable cause
        end local 1 // java.lang.Throwable rootFailure
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;
            0    1     1  rootFailure  Ljava/lang/Throwable;
            0    1     2        cause  TT;
    Signature: (Ljava/lang/Throwable;TT;)Lorg/springframework/boot/diagnostics/FailureAnalysis;
    MethodParameters:
             Name  Flags
      rootFailure  
      cause        

  private java.lang.String getDescription(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
        start local 1 // java.lang.Throwable rootFailure
         0: .line 44
            aload 0 /* this */
            aload 1 /* rootFailure */
         1: .line 45
            ldc Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
         2: .line 44
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.findMostNestedCause:(Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/Exception;
            checkcast org.springframework.beans.factory.UnsatisfiedDependencyException
            astore 2 /* unsatisfiedDependency */
        start local 2 // org.springframework.beans.factory.UnsatisfiedDependencyException unsatisfiedDependency
         3: .line 46
            aload 2 /* unsatisfiedDependency */
            ifnull 5
         4: .line 47
            aload 0 /* this */
            aload 2 /* unsatisfiedDependency */
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.getDescription:(Lorg/springframework/beans/factory/UnsatisfiedDependencyException;)Ljava/lang/String;
            areturn
         5: .line 49
      StackMap locals: org.springframework.beans.factory.UnsatisfiedDependencyException
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rootFailure */
         6: .line 50
            ldc Lorg/springframework/beans/BeanInstantiationException;
         7: .line 49
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.findMostNestedCause:(Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/Exception;
            checkcast org.springframework.beans.BeanInstantiationException
            astore 3 /* beanInstantiationException */
        start local 3 // org.springframework.beans.BeanInstantiationException beanInstantiationException
         8: .line 51
            aload 3 /* beanInstantiationException */
            ifnull 10
         9: .line 52
            aload 0 /* this */
            aload 3 /* beanInstantiationException */
            invokevirtual org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer.getDescription:(Lorg/springframework/beans/BeanInstantiationException;)Ljava/lang/String;
            areturn
        10: .line 54
      StackMap locals: org.springframework.beans.BeanInstantiationException
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.springframework.beans.BeanInstantiationException beanInstantiationException
        end local 2 // org.springframework.beans.factory.UnsatisfiedDependencyException unsatisfiedDependency
        end local 1 // java.lang.Throwable rootFailure
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   11     0                        this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;
            0   11     1                 rootFailure  Ljava/lang/Throwable;
            3   11     2       unsatisfiedDependency  Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
            8   11     3  beanInstantiationException  Lorg/springframework/beans/BeanInstantiationException;
    MethodParameters:
             Name  Flags
      rootFailure  

  private <C extends java.lang.Exception> C findMostNestedCause(java.lang.Throwable, java.lang.Class<C>);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/Exception;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
        start local 1 // java.lang.Throwable root
        start local 2 // java.lang.Class type
         0: .line 59
            aload 1 /* root */
            astore 3 /* candidate */
        start local 3 // java.lang.Throwable candidate
         1: .line 60
            aconst_null
            astore 4 /* result */
        start local 4 // java.lang.Exception result
         2: .line 61
            goto 6
         3: .line 62
      StackMap locals: java.lang.Throwable java.lang.Exception
      StackMap stack:
            aload 2 /* type */
            aload 3 /* candidate */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 63
            aload 3 /* candidate */
            checkcast java.lang.Exception
            astore 4 /* result */
         5: .line 65
      StackMap locals:
      StackMap stack:
            aload 3 /* candidate */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 3 /* candidate */
         6: .line 61
      StackMap locals:
      StackMap stack:
            aload 3 /* candidate */
            ifnonnull 3
         7: .line 67
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Exception result
        end local 3 // java.lang.Throwable candidate
        end local 2 // java.lang.Class type
        end local 1 // java.lang.Throwable root
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;
            0    8     1       root  Ljava/lang/Throwable;
            0    8     2       type  Ljava/lang/Class<TC;>;
            1    8     3  candidate  Ljava/lang/Throwable;
            2    8     4     result  TC;
    Signature: <C:Ljava/lang/Exception;>(Ljava/lang/Throwable;Ljava/lang/Class<TC;>;)TC;
    MethodParameters:
      Name  Flags
      root  
      type  

  private java.lang.String getDescription(org.springframework.beans.factory.UnsatisfiedDependencyException);
    descriptor: (Lorg/springframework/beans/factory/UnsatisfiedDependencyException;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
        start local 1 // org.springframework.beans.factory.UnsatisfiedDependencyException ex
         0: .line 71
            aload 1 /* ex */
            invokevirtual org.springframework.beans.factory.UnsatisfiedDependencyException.getInjectionPoint:()Lorg/springframework/beans/factory/InjectionPoint;
            astore 2 /* injectionPoint */
        start local 2 // org.springframework.beans.factory.InjectionPoint injectionPoint
         1: .line 72
            aload 2 /* injectionPoint */
            ifnull 17
         2: .line 73
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getField:()Ljava/lang/reflect/Field;
            ifnull 6
         3: .line 74
            ldc "Field %s in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getField:()Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         4: .line 75
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getField:()Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         5: .line 74
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
         6: .line 77
      StackMap locals: org.springframework.beans.factory.InjectionPoint
      StackMap stack:
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            ifnull 17
         7: .line 78
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getConstructor:()Ljava/lang/reflect/Constructor;
            ifnull 12
         8: .line 79
            ldc "Parameter %d of constructor in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 80
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getParameterIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
        10: .line 81
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        11: .line 79
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        12: .line 83
      StackMap locals:
      StackMap stack:
            ldc "Parameter %d of method %s in %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 84
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getParameterIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
        14: .line 85
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        15: .line 86
            aload 2 /* injectionPoint */
            invokevirtual org.springframework.beans.factory.InjectionPoint.getMethodParameter:()Lorg/springframework/core/MethodParameter;
            invokevirtual org.springframework.core.MethodParameter.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        16: .line 83
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        17: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* ex */
            invokevirtual org.springframework.beans.factory.UnsatisfiedDependencyException.getResourceDescription:()Ljava/lang/String;
            areturn
        end local 2 // org.springframework.beans.factory.InjectionPoint injectionPoint
        end local 1 // org.springframework.beans.factory.UnsatisfiedDependencyException ex
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;
            0   18     1              ex  Lorg/springframework/beans/factory/UnsatisfiedDependencyException;
            1   18     2  injectionPoint  Lorg/springframework/beans/factory/InjectionPoint;
    MethodParameters:
      Name  Flags
      ex    

  private java.lang.String getDescription(org.springframework.beans.BeanInstantiationException);
    descriptor: (Lorg/springframework/beans/BeanInstantiationException;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
        start local 1 // org.springframework.beans.BeanInstantiationException ex
         0: .line 93
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getConstructingMethod:()Ljava/lang/reflect/Method;
            ifnull 4
         1: .line 94
            ldc "Method %s in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getConstructingMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 95
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getConstructingMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         3: .line 94
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
         4: .line 97
      StackMap locals:
      StackMap stack:
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getConstructor:()Ljava/lang/reflect/Constructor;
            ifnull 8
         5: .line 98
            ldc "Constructor in %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 99
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getConstructor:()Ljava/lang/reflect/Constructor;
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokestatic org.springframework.util.ClassUtils.getUserClass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         7: .line 98
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
         8: .line 101
      StackMap locals:
      StackMap stack:
            aload 1 /* ex */
            invokevirtual org.springframework.beans.BeanInstantiationException.getBeanClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 1 // org.springframework.beans.BeanInstantiationException ex
        end local 0 // org.springframework.boot.diagnostics.analyzer.AbstractInjectionFailureAnalyzer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/boot/diagnostics/analyzer/AbstractInjectionFailureAnalyzer<TT;>;
            0    9     1    ex  Lorg/springframework/beans/BeanInstantiationException;
    MethodParameters:
      Name  Flags
      ex    

  protected abstract org.springframework.boot.diagnostics.FailureAnalysis analyze(java.lang.Throwable, T, java.lang.String);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;Ljava/lang/String;)Lorg/springframework/boot/diagnostics/FailureAnalysis;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Ljava/lang/Throwable;TT;Ljava/lang/String;)Lorg/springframework/boot/diagnostics/FailureAnalysis;
    MethodParameters:
             Name  Flags
      rootFailure  
      cause        
      description  
}
Signature: <T:Ljava/lang/Throwable;>Lorg/springframework/boot/diagnostics/AbstractFailureAnalyzer<TT;>;
SourceFile: "AbstractInjectionFailureAnalyzer.java"