From 05cf85b61a4f5bfaf3fd45f5f2e7f65b680d25b9 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Mon, 16 Dec 2024 10:15:01 +0100 Subject: [PATCH] improve some exception and log messages --- .../org/hibernate/internal/SessionImpl.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) 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 ef1323ca759..1d70643797a 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -397,7 +397,7 @@ private ClearEvent createClearEvent() { public void close() throws HibernateException { if ( isClosed() ) { if ( getFactory().getSessionFactoryOptions().getJpaCompliance().isJpaClosedComplianceEnabled() ) { - throw new IllegalStateException( "Illegal call to #close() on already closed Session/EntityManager" ); + throw new IllegalStateException( "EntityManager was already closed" ); } log.trace( "Already closed" ); } @@ -465,13 +465,10 @@ protected boolean shouldCloseJdbcCoordinatorOnClose(boolean isTransactionCoordin if ( isTransactionCoordinatorShared ) { final ActionQueue actionQueue = getActionQueue(); if ( actionQueue.hasBeforeTransactionActions() || actionQueue.hasAfterTransactionActions() ) { - log.warn( "On close, shared Session had before/after transaction actions that have not yet been processed" ); + log.warn( "Closing shared session with unprocessed transaction completion actions" ); } - return false; - } - else { - return true; } + return !isTransactionCoordinatorShared; } @Override @@ -493,18 +490,19 @@ public boolean isOpen() { protected void checkSessionFactoryOpen() { if ( !getFactory().isOpen() ) { - log.debug( "Forcing Session/EntityManager closed as SessionFactory/EntityManagerFactory has been closed" ); + log.debug( "Forcing-closing session since factory is already closed" ); setClosed(); } } private void managedFlush() { if ( isClosed() && !waitingForAutoClose ) { - log.trace( "Skipping auto-flush due to session closed" ); - return; + log.trace( "Skipping auto-flush since the session is closed" ); + } + else { + log.trace( "Automatically flushing session" ); + doFlush(); } - log.trace( "Automatically flushing session" ); - doFlush(); } @Override