public class org.springframework.boot.DefaultBootstrapContext implements org.springframework.boot.ConfigurableBootstrapContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.boot.DefaultBootstrapContext
  super_class: java.lang.Object
{
  private final java.util.Map<java.lang.Class<?>, org.springframework.boot.BootstrapRegistry$InstanceSupplier<?>> instanceSuppliers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<*>;>;

  private final java.util.Map<java.lang.Class<?>, java.lang.Object> instances;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Object;>;

  private final org.springframework.context.event.ApplicationEventMulticaster events;
    descriptor: Lorg/springframework/context/event/ApplicationEventMulticaster;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
         2: .line 40
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.boot.DefaultBootstrapContext.instances:Ljava/util/Map;
         3: .line 42
            aload 0 /* this */
            new org.springframework.context.event.SimpleApplicationEventMulticaster
            dup
            invokespecial org.springframework.context.event.SimpleApplicationEventMulticaster.<init>:()V
            putfield org.springframework.boot.DefaultBootstrapContext.events:Lorg/springframework/context/event/ApplicationEventMulticaster;
         4: .line 36
            return
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/DefaultBootstrapContext;

  public <T> void register(java.lang.Class<T>, org.springframework.boot.BootstrapRegistry$InstanceSupplier<T>);
    descriptor: (Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         0: .line 46
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* instanceSupplier */
            iconst_1
            invokevirtual org.springframework.boot.DefaultBootstrapContext.register:(Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;Z)V
         1: .line 47
            return
        end local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    2     1              type  Ljava/lang/Class<TT;>;
            0    2     2  instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;)V
    MethodParameters:
                  Name  Flags
      type              
      instanceSupplier  

  public <T> void registerIfAbsent(java.lang.Class<T>, org.springframework.boot.BootstrapRegistry$InstanceSupplier<T>);
    descriptor: (Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         0: .line 51
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* instanceSupplier */
            iconst_0
            invokevirtual org.springframework.boot.DefaultBootstrapContext.register:(Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;Z)V
         1: .line 52
            return
        end local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    2     1              type  Ljava/lang/Class<TT;>;
            0    2     2  instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;)V
    MethodParameters:
                  Name  Flags
      type              
      instanceSupplier  

  private <T> void register(java.lang.Class<T>, org.springframework.boot.BootstrapRegistry$InstanceSupplier<T>, );
    descriptor: (Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
        start local 3 // boolean replaceExisting
         0: .line 55
            aload 1 /* type */
            ldc "Type must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 56
            aload 2 /* instanceSupplier */
            ldc "InstanceSupplier must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 57
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            dup
            astore 4
            monitorenter
         3: .line 58
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            istore 5 /* alreadyRegistered */
        start local 5 // boolean alreadyRegistered
         4: .line 59
            iload 3 /* replaceExisting */
            ifne 5
            iload 5 /* alreadyRegistered */
            ifne 9
         5: .line 60
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instances:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: aload 1 /* type */
            invokedynamic get(Ljava/lang/Class;)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/boot/DefaultBootstrapContext.lambda$0(Ljava/lang/Class;)Ljava/lang/String; (6)
                  ()Ljava/lang/String;
            invokestatic org.springframework.util.Assert.state:(ZLjava/util/function/Supplier;)V
         8: .line 61
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            aload 2 /* instanceSupplier */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // boolean alreadyRegistered
         9: .line 57
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 64
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean replaceExisting
        end local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lorg/springframework/boot/DefaultBootstrapContext;
            0   14     1               type  Ljava/lang/Class<TT;>;
            0   14     2   instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;
            0   14     3    replaceExisting  Z
            4    9     5  alreadyRegistered  Z
      Exception table:
        from    to  target  type
           3    10      11  any
          11    12      11  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;Z)V
    MethodParameters:
                  Name  Flags
      type              
      instanceSupplier  
      replaceExisting   

  public <T> boolean isRegistered(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
         0: .line 68
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 69
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 68
      StackMap locals: org.springframework.boot.DefaultBootstrapContext java.lang.Class java.util.Map
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    5     1  type  Ljava/lang/Class<TT;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Z
    MethodParameters:
      Name  Flags
      type  

  public <T> org.springframework.boot.BootstrapRegistry$InstanceSupplier<T> getRegisteredInstanceSupplier(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
         0: .line 76
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 77
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.boot.BootstrapRegistry$InstanceSupplier
            aload 2
            monitorexit
         2: areturn
         3: .line 76
      StackMap locals: org.springframework.boot.DefaultBootstrapContext java.lang.Class java.util.Map
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    5     1  type  Ljava/lang/Class<TT;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<TT;>;
    MethodParameters:
      Name  Flags
      type  

  public void addCloseListener(org.springframework.context.ApplicationListener<org.springframework.boot.BootstrapContextClosedEvent>);
    descriptor: (Lorg/springframework/context/ApplicationListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // org.springframework.context.ApplicationListener listener
         0: .line 83
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.events:Lorg/springframework/context/event/ApplicationEventMulticaster;
            aload 1 /* listener */
            invokeinterface org.springframework.context.event.ApplicationEventMulticaster.addApplicationListener:(Lorg/springframework/context/ApplicationListener;)V
         1: .line 84
            return
        end local 1 // org.springframework.context.ApplicationListener listener
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    2     1  listener  Lorg/springframework/context/ApplicationListener<Lorg/springframework/boot/BootstrapContextClosedEvent;>;
    Signature: (Lorg/springframework/context/ApplicationListener<Lorg/springframework/boot/BootstrapContextClosedEvent;>;)V
    MethodParameters:
          Name  Flags
      listener  

  public <T> T get(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
         0: .line 88
            aload 0 /* this */
            aload 1 /* type */
            aload 1 /* type */
            invokedynamic get(Ljava/lang/Class;)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/boot/DefaultBootstrapContext.lambda$1(Ljava/lang/Class;)Ljava/lang/IllegalStateException; (6)
                  ()Ljava/lang/IllegalStateException;
            invokevirtual org.springframework.boot.DefaultBootstrapContext.getOrElseThrow:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.IllegalStateException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  

  public <T> T getOrElse(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // java.lang.Object other
         0: .line 93
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* other */
            invokedynamic get(Ljava/lang/Object;)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/boot/DefaultBootstrapContext.lambda$2(Ljava/lang/Object;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
            invokevirtual org.springframework.boot.DefaultBootstrapContext.getOrElseSupply:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object other
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    1     1   type  Ljava/lang/Class<TT;>;
            0    1     2  other  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;TT;)TT;
    MethodParameters:
       Name  Flags
      type   
      other  

  public <T> T getOrElseSupply(java.lang.Class<T>, java.util.function.Supplier<T>);
    descriptor: (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // java.util.function.Supplier other
         0: .line 98
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         1: .line 99
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.boot.BootstrapRegistry$InstanceSupplier
            astore 4 /* instanceSupplier */
        start local 4 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         2: .line 100
            aload 4 /* instanceSupplier */
            ifnull 3
            aload 0 /* this */
            aload 1 /* type */
            aload 4 /* instanceSupplier */
            invokevirtual org.springframework.boot.DefaultBootstrapContext.getInstance:(Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;)Ljava/lang/Object;
            goto 4
      StackMap locals: java.util.Map org.springframework.boot.BootstrapRegistry$InstanceSupplier
      StackMap stack:
         3: aload 2 /* other */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         4: aload 3
            monitorexit
         5: areturn
        end local 4 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         6: .line 98
      StackMap locals: org.springframework.boot.DefaultBootstrapContext java.lang.Class java.util.function.Supplier java.util.Map
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         7: athrow
        end local 2 // java.util.function.Supplier other
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    8     1              type  Ljava/lang/Class<TT;>;
            0    8     2             other  Ljava/util/function/Supplier<TT;>;
            2    6     4  instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<*>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
       Name  Flags
      type   
      other  

  public <T, X extends java.lang.Throwable> T getOrElseThrow(java.lang.Class<T>, java.util.function.Supplier<? extends X>) throws X;
    descriptor: (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // java.util.function.Supplier exceptionSupplier
         0: .line 106
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         1: .line 107
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instanceSuppliers:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.boot.BootstrapRegistry$InstanceSupplier
            astore 4 /* instanceSupplier */
        start local 4 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         2: .line 108
            aload 4 /* instanceSupplier */
            ifnonnull 4
         3: .line 109
            aload 2 /* exceptionSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
         4: .line 111
      StackMap locals: java.util.Map org.springframework.boot.BootstrapRegistry$InstanceSupplier
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 4 /* instanceSupplier */
            invokevirtual org.springframework.boot.DefaultBootstrapContext.getInstance:(Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;)Ljava/lang/Object;
            aload 3
            monitorexit
         5: areturn
        end local 4 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         6: .line 106
      StackMap locals: org.springframework.boot.DefaultBootstrapContext java.lang.Class java.util.function.Supplier java.util.Map
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
         7: athrow
        end local 2 // java.util.function.Supplier exceptionSupplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    8     1               type  Ljava/lang/Class<TT;>;
            0    8     2  exceptionSupplier  Ljava/util/function/Supplier<+TX;>;
            2    6     4   instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<*>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Object;X:Ljava/lang/Throwable;>(Ljava/lang/Class<TT;>;Ljava/util/function/Supplier<+TX;>;)TT;^TX;
    MethodParameters:
                   Name  Flags
      type               
      exceptionSupplier  

  private <T> T getInstance(java.lang.Class<T>, org.springframework.boot.BootstrapRegistry$InstanceSupplier<?>);
    descriptor: (Ljava/lang/Class;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // java.lang.Class type
        start local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
         0: .line 117
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instances:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* instance */
        start local 3 // java.lang.Object instance
         1: .line 118
            aload 3 /* instance */
            ifnonnull 4
         2: .line 119
            aload 2 /* instanceSupplier */
            aload 0 /* this */
            invokeinterface org.springframework.boot.BootstrapRegistry$InstanceSupplier.get:(Lorg/springframework/boot/BootstrapContext;)Ljava/lang/Object;
            astore 3 /* instance */
         3: .line 120
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.instances:Ljava/util/Map;
            aload 1 /* type */
            aload 3 /* instance */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 122
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* instance */
            areturn
        end local 3 // java.lang.Object instance
        end local 2 // org.springframework.boot.BootstrapRegistry$InstanceSupplier instanceSupplier
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    5     1              type  Ljava/lang/Class<TT;>;
            0    5     2  instanceSupplier  Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<*>;
            1    5     3          instance  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/springframework/boot/BootstrapRegistry$InstanceSupplier<*>;)TT;
    MethodParameters:
                  Name  Flags
      type              
      instanceSupplier  

  public void close(org.springframework.context.ConfigurableApplicationContext);
    descriptor: (Lorg/springframework/context/ConfigurableApplicationContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.boot.DefaultBootstrapContext this
        start local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
         0: .line 131
            aload 0 /* this */
            getfield org.springframework.boot.DefaultBootstrapContext.events:Lorg/springframework/context/event/ApplicationEventMulticaster;
            new org.springframework.boot.BootstrapContextClosedEvent
            dup
            aload 0 /* this */
            aload 1 /* applicationContext */
            invokespecial org.springframework.boot.BootstrapContextClosedEvent.<init>:(Lorg/springframework/boot/BootstrapContext;Lorg/springframework/context/ConfigurableApplicationContext;)V
            invokeinterface org.springframework.context.event.ApplicationEventMulticaster.multicastEvent:(Lorg/springframework/context/ApplicationEvent;)V
         1: .line 132
            return
        end local 1 // org.springframework.context.ConfigurableApplicationContext applicationContext
        end local 0 // org.springframework.boot.DefaultBootstrapContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/springframework/boot/DefaultBootstrapContext;
            0    2     1  applicationContext  Lorg/springframework/context/ConfigurableApplicationContext;
    MethodParameters:
                    Name  Flags
      applicationContext  

  private static java.lang.String lambda$0(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 60
            new java.lang.StringBuilder
            dup
            aload 0
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " has already been created"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.IllegalStateException lambda$1(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/IllegalStateException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
         0: .line 88
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            aload 0
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " has not been registered"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Object lambda$2(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 93
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DefaultBootstrapContext.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract InstanceSupplier = org.springframework.boot.BootstrapRegistry$InstanceSupplier of org.springframework.boot.BootstrapRegistry