diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java index 5de54a21a2..f33ad21018 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.Function; import java.util.function.Supplier; import javax.persistence.CacheRetrieveMode; import javax.persistence.CacheStoreMode; @@ -220,17 +219,10 @@ public class SessionImpl private transient GraphImplementor fetchGraphLoadContext; public SessionImpl(SessionFactoryImpl factory, SessionCreationOptions options) { - this( factory, options, StatefulPersistenceContext::new, ActionQueue::new ); - } - - public SessionImpl( - SessionFactoryImpl factory, SessionCreationOptions options, - Function persistenceContextFunction, - Function actionQueueFunction) { super( factory, options ); - this.persistenceContext = persistenceContextFunction.apply( this ); - this.actionQueue = actionQueueFunction.apply( this ); + this.persistenceContext = createPersistenceContext(); + this.actionQueue = createActionQueue(); this.autoClear = options.shouldAutoClear(); this.autoClose = options.shouldAutoClose(); @@ -277,6 +269,14 @@ public class SessionImpl } } + protected StatefulPersistenceContext createPersistenceContext() { + return new StatefulPersistenceContext( this ); + } + + protected ActionQueue createActionQueue() { + return new ActionQueue( this ); + } + private LockOptions getLockOptionsForRead() { return this.lockOptions == null ? fastSessionServices.defaultLockOptions : this.lockOptions; }