Skip to content

Commit bc5e3ce

Browse files
committed
minor: don't pass the uninitialized SessionFactoryImpl to FastSessionServices
1 parent 4c77552 commit bc5e3ce

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

hibernate-core/src/main/java/org/hibernate/internal/FastSessionServices.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
package org.hibernate.internal;
66

77
import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
8+
import org.hibernate.boot.spi.SessionFactoryOptions;
89
import org.hibernate.engine.config.spi.ConfigurationService;
910
import org.hibernate.engine.jdbc.batch.spi.BatchBuilder;
1011
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
1112
import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider;
1213
import org.hibernate.engine.jdbc.spi.JdbcServices;
13-
import org.hibernate.engine.spi.SessionFactoryImplementor;
1414
import org.hibernate.event.monitor.internal.EmptyEventMonitor;
1515
import org.hibernate.event.monitor.spi.EventMonitor;
1616
import org.hibernate.event.spi.EntityCopyObserverFactory;
@@ -42,7 +42,7 @@
4242
*
4343
* @author Sanne Grinovero
4444
*/
45-
public final class FastSessionServices extends EventListenerGroups {
45+
public class FastSessionServices extends EventListenerGroups {
4646

4747
private final ConnectionProvider connectionProvider;
4848
private final MultiTenantConnectionProvider<Object> multiTenantConnectionProvider;
@@ -57,9 +57,8 @@ public final class FastSessionServices extends EventListenerGroups {
5757
private final ManagedBeanRegistry managedBeanRegistry;
5858
private final ConfigurationService configurationService;
5959

60-
FastSessionServices(SessionFactoryImplementor sessionFactory) {
61-
super( sessionFactory.getServiceRegistry() );
62-
final ServiceRegistry serviceRegistry = sessionFactory.getServiceRegistry();
60+
FastSessionServices(ServiceRegistry serviceRegistry, SessionFactoryOptions factoryOptions) {
61+
super( serviceRegistry );
6362

6463
//Some "hot" services:
6564
classLoaderService = serviceRegistry.requireService( ClassLoaderService.class );
@@ -72,7 +71,7 @@ public final class FastSessionServices extends EventListenerGroups {
7271
managedBeanRegistry = serviceRegistry.getService( ManagedBeanRegistry.class );
7372
configurationService = serviceRegistry.getService( ConfigurationService.class );
7473

75-
final boolean multiTenancyEnabled = sessionFactory.getSessionFactoryOptions().isMultiTenancyEnabled();
74+
final boolean multiTenancyEnabled = factoryOptions.isMultiTenancyEnabled();
7675
connectionProvider =
7776
multiTenancyEnabled ? null : serviceRegistry.getService( ConnectionProvider.class );
7877
multiTenantConnectionProvider =

hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ public SessionFactoryImpl(
284284
runtimeMetamodels = runtimeMetamodelsImpl;
285285
final MappingMetamodelImpl mappingMetamodelImpl = new MappingMetamodelImpl( typeConfiguration, serviceRegistry );
286286
runtimeMetamodelsImpl.setMappingMetamodel( mappingMetamodelImpl );
287-
fastSessionServices = new FastSessionServices( this );
287+
fastSessionServices = new FastSessionServices( serviceRegistry, sessionFactoryOptions );
288288
mappingMetamodelImpl.finishInitialization(
289289
new ModelCreationContext( bootstrapContext, bootMetamodel, mappingMetamodelImpl, typeConfiguration ) );
290290
runtimeMetamodelsImpl.setJpaMetamodel( mappingMetamodelImpl.getJpaMetamodel() );
@@ -317,7 +317,7 @@ public SessionFactoryImpl(
317317
close();
318318
}
319319
catch (Exception closeException) {
320-
LOG.debugf( "Eating error closing the SessionFactory after a failed attempt to start it" );
320+
LOG.debug( "Eating error closing the SessionFactory after a failed attempt to start it" );
321321
}
322322
throw e;
323323
}
@@ -342,7 +342,7 @@ private static SessionFactoryServiceRegistry getServiceRegistry(
342342
SessionFactoryImplementor self) {
343343
return options.getServiceRegistry()
344344
.requireService( SessionFactoryServiceRegistryFactory.class )
345-
// it is not great how we pass in an instance to
345+
// it is not great how we pass a reference to
346346
// an incompletely-initialized instance here:
347347
.buildServiceRegistry( self, options );
348348
}

hibernate-core/src/main/java/org/hibernate/service/internal/SessionFactoryServiceRegistryFactoryImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ public SessionFactoryServiceRegistryFactoryImpl(ServiceRegistryImplementor theBa
2929
public SessionFactoryServiceRegistry buildServiceRegistry(
3030
SessionFactoryImplementor sessionFactory,
3131
SessionFactoryOptions options) {
32-
final ClassLoaderService cls = options.getServiceRegistry().requireService( ClassLoaderService.class );
33-
final SessionFactoryServiceRegistryBuilderImpl builder = new SessionFactoryServiceRegistryBuilderImpl( theBasicServiceRegistry );
32+
final ClassLoaderService classLoaderService =
33+
options.getServiceRegistry().requireService( ClassLoaderService.class );
34+
final SessionFactoryServiceRegistryBuilderImpl builder =
35+
new SessionFactoryServiceRegistryBuilderImpl( theBasicServiceRegistry );
3436

35-
for ( SessionFactoryServiceContributor contributor : cls.loadJavaServices( SessionFactoryServiceContributor.class ) ) {
37+
for ( SessionFactoryServiceContributor contributor :
38+
classLoaderService.loadJavaServices( SessionFactoryServiceContributor.class ) ) {
3639
contributor.contribute( builder );
3740
}
3841

hibernate-core/src/main/java/org/hibernate/service/internal/SessionFactoryServiceRegistryImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public static SessionFactoryServiceRegistryImpl create(
5050
List<ProvidedService<?>> providedServices,
5151
SessionFactoryImplementor sessionFactory,
5252
SessionFactoryOptions sessionFactoryOptions) {
53-
SessionFactoryServiceRegistryImpl instance = new SessionFactoryServiceRegistryImpl( parent, sessionFactory, sessionFactoryOptions);
53+
final SessionFactoryServiceRegistryImpl instance =
54+
new SessionFactoryServiceRegistryImpl( parent, sessionFactory, sessionFactoryOptions );
5455
instance.initialize( initiators, providedServices );
5556
return instance;
5657
}

0 commit comments

Comments
 (0)