public class org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl implements org.hibernate.service.spi.ServiceRegistryImplementor, org.hibernate.boot.registry.BootstrapServiceRegistry, org.hibernate.service.spi.ServiceBinding$ServiceLifecycleOwner
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final boolean autoCloseRegistry;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean active;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.util.LinkedHashSet<org.hibernate.integrator.spi.Integrator> NO_INTEGRATORS;
    descriptor: Ljava/util/LinkedHashSet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/LinkedHashSet<Lorg/hibernate/integrator/spi/Integrator;>;

  private final org.hibernate.service.spi.ServiceBinding<org.hibernate.boot.registry.classloading.spi.ClassLoaderService> classLoaderServiceBinding;
    descriptor: Lorg/hibernate/service/spi/ServiceBinding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/hibernate/service/spi/ServiceBinding<Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;>;

  private final org.hibernate.service.spi.ServiceBinding<org.hibernate.boot.registry.selector.spi.StrategySelector> strategySelectorBinding;
    descriptor: Lorg/hibernate/service/spi/ServiceBinding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/hibernate/service/spi/ServiceBinding<Lorg/hibernate/boot/registry/selector/spi/StrategySelector;>;

  private final org.hibernate.service.spi.ServiceBinding<org.hibernate.integrator.spi.IntegratorService> integratorServiceBinding;
    descriptor: Lorg/hibernate/service/spi/ServiceBinding;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/hibernate/service/spi/ServiceBinding<Lorg/hibernate/integrator/spi/IntegratorService;>;

  private java.util.Set<org.hibernate.service.spi.ServiceRegistryImplementor> childRegistries;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/hibernate/service/spi/ServiceRegistryImplementor;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            ldc Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 48
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.NO_INTEGRATORS:Ljava/util/LinkedHashSet;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
         0: .line 65
            aload 0 /* this */
            new org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl
            dup
            invokespecial org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.<init>:()V
            getstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.NO_INTEGRATORS:Ljava/util/LinkedHashSet;
            invokespecial org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.<init>:(Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet;)V
         1: .line 66
            return
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;

  public void <init>(org.hibernate.boot.registry.classloading.spi.ClassLoaderService, java.util.LinkedHashSet<org.hibernate.integrator.spi.Integrator>);
    descriptor: (Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        start local 2 // java.util.LinkedHashSet providedIntegrators
         0: .line 81
            aload 0 /* this */
            iconst_1
            aload 1 /* classLoaderService */
            aload 2 /* providedIntegrators */
            invokespecial org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.<init>:(ZLorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet;)V
         1: .line 82
            return
        end local 2 // java.util.LinkedHashSet providedIntegrators
        end local 1 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    2     1   classLoaderService  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            0    2     2  providedIntegrators  Ljava/util/LinkedHashSet<Lorg/hibernate/integrator/spi/Integrator;>;
    Signature: (Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet<Lorg/hibernate/integrator/spi/Integrator;>;)V
    MethodParameters:
                     Name  Flags
      classLoaderService   
      providedIntegrators  

  public void <init>(boolean, org.hibernate.boot.registry.classloading.spi.ClassLoaderService, java.util.LinkedHashSet<org.hibernate.integrator.spi.Integrator>);
    descriptor: (ZLorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // boolean autoCloseRegistry
        start local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        start local 3 // java.util.LinkedHashSet providedIntegrators
         0: .line 97
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.active:Z
         2: .line 101
            aload 0 /* this */
            iload 1 /* autoCloseRegistry */
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.autoCloseRegistry:Z
         3: .line 103
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
         4: .line 104
            aload 0 /* this */
         5: .line 105
            ldc Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
         6: .line 106
            aload 2 /* classLoaderService */
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
         7: .line 103
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.classLoaderServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
         8: .line 109
            new org.hibernate.boot.registry.selector.internal.StrategySelectorImpl
            dup
            aload 2 /* classLoaderService */
            invokespecial org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.<init>:(Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V
            astore 4 /* strategySelector */
        start local 4 // org.hibernate.boot.registry.selector.internal.StrategySelectorImpl strategySelector
         9: .line 110
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
        10: .line 111
            aload 0 /* this */
        11: .line 112
            ldc Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
        12: .line 113
            aload 4 /* strategySelector */
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
        13: .line 110
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.strategySelectorBinding:Lorg/hibernate/service/spi/ServiceBinding;
        14: .line 116
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
        15: .line 117
            aload 0 /* this */
        16: .line 118
            ldc Lorg/hibernate/integrator/spi/IntegratorService;
        17: .line 119
            new org.hibernate.integrator.internal.IntegratorServiceImpl
            dup
            aload 3 /* providedIntegrators */
            aload 2 /* classLoaderService */
            invokespecial org.hibernate.integrator.internal.IntegratorServiceImpl.<init>:(Ljava/util/LinkedHashSet;Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
        18: .line 116
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.integratorServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
        19: .line 121
            return
        end local 4 // org.hibernate.boot.registry.selector.internal.StrategySelectorImpl strategySelector
        end local 3 // java.util.LinkedHashSet providedIntegrators
        end local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        end local 1 // boolean autoCloseRegistry
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0   20     1    autoCloseRegistry  Z
            0   20     2   classLoaderService  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            0   20     3  providedIntegrators  Ljava/util/LinkedHashSet<Lorg/hibernate/integrator/spi/Integrator;>;
            9   20     4     strategySelector  Lorg/hibernate/boot/registry/selector/internal/StrategySelectorImpl;
    Signature: (ZLorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Ljava/util/LinkedHashSet<Lorg/hibernate/integrator/spi/Integrator;>;)V
    MethodParameters:
                     Name  Flags
      autoCloseRegistry    
      classLoaderService   
      providedIntegrators  

  public void <init>(org.hibernate.boot.registry.classloading.spi.ClassLoaderService, org.hibernate.boot.registry.selector.spi.StrategySelector, org.hibernate.integrator.spi.IntegratorService);
    descriptor: (Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Lorg/hibernate/boot/registry/selector/spi/StrategySelector;Lorg/hibernate/integrator/spi/IntegratorService;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        start local 2 // org.hibernate.boot.registry.selector.spi.StrategySelector strategySelector
        start local 3 // org.hibernate.integrator.spi.IntegratorService integratorService
         0: .line 140
            aload 0 /* this */
            iconst_1
            aload 1 /* classLoaderService */
            aload 2 /* strategySelector */
            aload 3 /* integratorService */
            invokespecial org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.<init>:(ZLorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Lorg/hibernate/boot/registry/selector/spi/StrategySelector;Lorg/hibernate/integrator/spi/IntegratorService;)V
         1: .line 141
            return
        end local 3 // org.hibernate.integrator.spi.IntegratorService integratorService
        end local 2 // org.hibernate.boot.registry.selector.spi.StrategySelector strategySelector
        end local 1 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    2     1  classLoaderService  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            0    2     2    strategySelector  Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
            0    2     3   integratorService  Lorg/hibernate/integrator/spi/IntegratorService;
    MethodParameters:
                    Name  Flags
      classLoaderService  
      strategySelector    
      integratorService   

  public void <init>(boolean, org.hibernate.boot.registry.classloading.spi.ClassLoaderService, org.hibernate.boot.registry.selector.spi.StrategySelector, org.hibernate.integrator.spi.IntegratorService);
    descriptor: (ZLorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;Lorg/hibernate/boot/registry/selector/spi/StrategySelector;Lorg/hibernate/integrator/spi/IntegratorService;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // boolean autoCloseRegistry
        start local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        start local 3 // org.hibernate.boot.registry.selector.spi.StrategySelector strategySelector
        start local 4 // org.hibernate.integrator.spi.IntegratorService integratorService
         0: .line 158
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.active:Z
         2: .line 163
            aload 0 /* this */
            iload 1 /* autoCloseRegistry */
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.autoCloseRegistry:Z
         3: .line 165
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
         4: .line 166
            aload 0 /* this */
         5: .line 167
            ldc Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
         6: .line 168
            aload 2 /* classLoaderService */
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
         7: .line 165
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.classLoaderServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
         8: .line 171
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
         9: .line 172
            aload 0 /* this */
        10: .line 173
            ldc Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
        11: .line 174
            aload 3 /* strategySelector */
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
        12: .line 171
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.strategySelectorBinding:Lorg/hibernate/service/spi/ServiceBinding;
        13: .line 177
            aload 0 /* this */
            new org.hibernate.service.spi.ServiceBinding
            dup
        14: .line 178
            aload 0 /* this */
        15: .line 179
            ldc Lorg/hibernate/integrator/spi/IntegratorService;
        16: .line 180
            aload 4 /* integratorService */
            invokespecial org.hibernate.service.spi.ServiceBinding.<init>:(Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;Ljava/lang/Class;Lorg/hibernate/service/Service;)V
        17: .line 177
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.integratorServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
        18: .line 182
            return
        end local 4 // org.hibernate.integrator.spi.IntegratorService integratorService
        end local 3 // org.hibernate.boot.registry.selector.spi.StrategySelector strategySelector
        end local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        end local 1 // boolean autoCloseRegistry
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0                this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0   19     1   autoCloseRegistry  Z
            0   19     2  classLoaderService  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            0   19     3    strategySelector  Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
            0   19     4   integratorService  Lorg/hibernate/integrator/spi/IntegratorService;
    MethodParameters:
                    Name  Flags
      autoCloseRegistry   
      classLoaderService  
      strategySelector    
      integratorService   

  public <R extends org.hibernate.service.Service> R getService(java.lang.Class<R>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/service/Service;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // java.lang.Class serviceRole
         0: .line 188
            aload 0 /* this */
            aload 1 /* serviceRole */
            invokevirtual org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.locateServiceBinding:(Ljava/lang/Class;)Lorg/hibernate/service/spi/ServiceBinding;
            astore 2 /* binding */
        start local 2 // org.hibernate.service.spi.ServiceBinding binding
         1: .line 189
            aload 2 /* binding */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.hibernate.service.spi.ServiceBinding
      StackMap stack:
         2: aload 2 /* binding */
            invokevirtual org.hibernate.service.spi.ServiceBinding.getService:()Lorg/hibernate/service/Service;
      StackMap locals:
      StackMap stack: org.hibernate.service.Service
         3: areturn
        end local 2 // org.hibernate.service.spi.ServiceBinding binding
        end local 1 // java.lang.Class serviceRole
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    4     1  serviceRole  Ljava/lang/Class<TR;>;
            1    4     2      binding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Ljava/lang/Class<TR;>;)TR;
    MethodParameters:
             Name  Flags
      serviceRole  

  public <R extends org.hibernate.service.Service> org.hibernate.service.spi.ServiceBinding<R> locateServiceBinding(java.lang.Class<R>);
    descriptor: (Ljava/lang/Class;)Lorg/hibernate/service/spi/ServiceBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // java.lang.Class serviceRole
         0: .line 195
            ldc Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            aload 1 /* serviceRole */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 196
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.classLoaderServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
            areturn
         2: .line 198
      StackMap locals:
      StackMap stack:
            ldc Lorg/hibernate/boot/registry/selector/spi/StrategySelector;
            aload 1 /* serviceRole */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 199
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.strategySelectorBinding:Lorg/hibernate/service/spi/ServiceBinding;
            areturn
         4: .line 201
      StackMap locals:
      StackMap stack:
            ldc Lorg/hibernate/integrator/spi/IntegratorService;
            aload 1 /* serviceRole */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 202
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.integratorServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
            areturn
         6: .line 205
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Class serviceRole
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    7     1  serviceRole  Ljava/lang/Class<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Ljava/lang/Class<TR;>;)Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    MethodParameters:
             Name  Flags
      serviceRole  

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
         0: .line 210
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.active:Z
            ifne 2
         1: .line 211
            return
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.active:Z
         3: .line 214
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.classLoaderServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
            invokevirtual org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.destroy:(Lorg/hibernate/service/spi/ServiceBinding;)V
         4: .line 215
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.strategySelectorBinding:Lorg/hibernate/service/spi/ServiceBinding;
            invokevirtual org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.destroy:(Lorg/hibernate/service/spi/ServiceBinding;)V
         5: .line 216
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.integratorServiceBinding:Lorg/hibernate/service/spi/ServiceBinding;
            invokevirtual org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.destroy:(Lorg/hibernate/service/spi/ServiceBinding;)V
         6: .line 218
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            ifnull 13
         7: .line 219
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals: org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl top java.util.Iterator
      StackMap stack:
         8: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.service.ServiceRegistry
            astore 1 /* serviceRegistry */
        start local 1 // org.hibernate.service.ServiceRegistry serviceRegistry
         9: .line 220
            aload 1 /* serviceRegistry */
            instanceof org.hibernate.service.spi.ServiceRegistryImplementor
            ifeq 12
        10: .line 221
            aload 1 /* serviceRegistry */
            checkcast org.hibernate.service.spi.ServiceRegistryImplementor
            astore 3 /* serviceRegistryImplementor */
        start local 3 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistryImplementor
        11: .line 222
            aload 3 /* serviceRegistryImplementor */
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.destroy:()V
        end local 3 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistryImplementor
        end local 1 // org.hibernate.service.ServiceRegistry serviceRegistry
        12: .line 219
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        13: .line 226
      StackMap locals: org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl
      StackMap stack:
            return
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   14     0                        this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            9   12     1             serviceRegistry  Lorg/hibernate/service/ServiceRegistry;
           11   12     3  serviceRegistryImplementor  Lorg/hibernate/service/spi/ServiceRegistryImplementor;

  private void destroy(org.hibernate.service.spi.ServiceBinding);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding serviceBinding
         0: .line 229
            aload 1 /* serviceBinding */
            invokevirtual org.hibernate.service.spi.ServiceBinding.getLifecycleOwner:()Lorg/hibernate/service/spi/ServiceBinding$ServiceLifecycleOwner;
            aload 1 /* serviceBinding */
            invokeinterface org.hibernate.service.spi.ServiceBinding$ServiceLifecycleOwner.stopService:(Lorg/hibernate/service/spi/ServiceBinding;)V
         1: .line 230
            return
        end local 1 // org.hibernate.service.spi.ServiceBinding serviceBinding
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    2     1  serviceBinding  Lorg/hibernate/service/spi/ServiceBinding;
    MethodParameters:
                Name  Flags
      serviceBinding  

  public boolean isActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
         0: .line 233
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.active:Z
            ireturn
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;

  public org.hibernate.service.ServiceRegistry getParentServiceRegistry();
    descriptor: ()Lorg/hibernate/service/ServiceRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
         0: .line 238
            aconst_null
            areturn
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;

  public <R extends org.hibernate.service.Service> R initiateService(org.hibernate.service.spi.ServiceInitiator<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceInitiator;)Lorg/hibernate/service/Service;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceInitiator serviceInitiator
         0: .line 243
            new org.hibernate.service.spi.ServiceException
            dup
            ldc "Boot-strap registry should only contain provided services"
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.hibernate.service.spi.ServiceInitiator serviceInitiator
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    1     1  serviceInitiator  Lorg/hibernate/service/spi/ServiceInitiator<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceInitiator<TR;>;)TR;
    MethodParameters:
                  Name  Flags
      serviceInitiator  

  public <R extends org.hibernate.service.Service> void configureService(org.hibernate.service.spi.ServiceBinding<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding binding
         0: .line 248
            new org.hibernate.service.spi.ServiceException
            dup
            ldc "Boot-strap registry should only contain provided services"
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.hibernate.service.spi.ServiceBinding binding
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    1     1  binding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceBinding<TR;>;)V
    MethodParameters:
         Name  Flags
      binding  

  public <R extends org.hibernate.service.Service> void injectDependencies(org.hibernate.service.spi.ServiceBinding<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding binding
         0: .line 253
            new org.hibernate.service.spi.ServiceException
            dup
            ldc "Boot-strap registry should only contain provided services"
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.hibernate.service.spi.ServiceBinding binding
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    1     1  binding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceBinding<TR;>;)V
    MethodParameters:
         Name  Flags
      binding  

  public <R extends org.hibernate.service.Service> void startService(org.hibernate.service.spi.ServiceBinding<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding binding
         0: .line 258
            new org.hibernate.service.spi.ServiceException
            dup
            ldc "Boot-strap registry should only contain provided services"
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.hibernate.service.spi.ServiceBinding binding
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    1     1  binding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceBinding<TR;>;)V
    MethodParameters:
         Name  Flags
      binding  

  public <R extends org.hibernate.service.Service> void stopService(org.hibernate.service.spi.ServiceBinding<R>);
    descriptor: (Lorg/hibernate/service/spi/ServiceBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceBinding binding
         0: .line 263
            aload 1 /* binding */
            invokevirtual org.hibernate.service.spi.ServiceBinding.getService:()Lorg/hibernate/service/Service;
            astore 2 /* service */
        start local 2 // org.hibernate.service.Service service
         1: .line 264
            ldc Lorg/hibernate/service/spi/Stoppable;
            aload 2 /* service */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 266
            aload 2 /* service */
            checkcast org.hibernate.service.spi.Stoppable
            invokeinterface org.hibernate.service.spi.Stoppable.stop:()V
         3: .line 267
            goto 6
         4: .line 268
      StackMap locals: org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl org.hibernate.service.spi.ServiceBinding org.hibernate.service.Service
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         5: .line 269
            getstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 2 /* service */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.unableToStopService:(Ljava/lang/Class;Ljava/lang/String;)V
        end local 3 // java.lang.Exception e
         6: .line 272
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.service.Service service
        end local 1 // org.hibernate.service.spi.ServiceBinding binding
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    7     1  binding  Lorg/hibernate/service/spi/ServiceBinding<TR;>;
            1    7     2  service  Lorg/hibernate/service/Service;
            5    6     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
    Signature: <R::Lorg/hibernate/service/Service;>(Lorg/hibernate/service/spi/ServiceBinding<TR;>;)V
    MethodParameters:
         Name  Flags
      binding  

  public void registerChild(org.hibernate.service.spi.ServiceRegistryImplementor);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor child
         0: .line 276
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            ifnonnull 2
         1: .line 277
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
         2: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            aload 1 /* child */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 7
         3: .line 280
            getstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 281
            ldc "Child ServiceRegistry [%s] was already registered; this will end badly later..."
         5: .line 282
            aload 1 /* child */
         6: .line 280
            invokeinterface org.hibernate.internal.CoreMessageLogger.warnf:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 285
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor child
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0    8     1  child  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    MethodParameters:
       Name  Flags
      child  

  public void deRegisterChild(org.hibernate.service.spi.ServiceRegistryImplementor);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor child
         0: .line 289
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            ifnonnull 2
         1: .line 290
            new java.lang.IllegalStateException
            dup
            ldc "No child ServiceRegistry registrations found"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            aload 1 /* child */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 293
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.childRegistries:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 13
         4: .line 294
            aload 0 /* this */
            getfield org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.autoCloseRegistry:Z
            ifeq 10
         5: .line 295
            getstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         6: .line 296
            ldc "Implicitly destroying Boot-strap registry on de-registration of all child ServiceRegistries"
         7: .line 295
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
         8: .line 299
            aload 0 /* this */
            invokevirtual org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.destroy:()V
         9: .line 300
            goto 13
        10: .line 302
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        11: .line 303
            ldc "Skipping implicitly destroying Boot-strap registry on de-registration of all child ServiceRegistries"
        12: .line 302
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
        13: .line 308
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor child
        end local 0 // org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lorg/hibernate/boot/registry/internal/BootstrapServiceRegistryImpl;
            0   14     1  child  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    MethodParameters:
       Name  Flags
      child  
}
SourceFile: "BootstrapServiceRegistryImpl.java"
InnerClasses:
  public abstract ServiceLifecycleOwner = org.hibernate.service.spi.ServiceBinding$ServiceLifecycleOwner of org.hibernate.service.spi.ServiceBinding