diff --git a/hibernate-core/src/main/java/org/hibernate/SessionFactoryObserver.java b/hibernate-core/src/main/java/org/hibernate/SessionFactoryObserver.java index 141001844b1b..d4aaf98831ae 100644 --- a/hibernate-core/src/main/java/org/hibernate/SessionFactoryObserver.java +++ b/hibernate-core/src/main/java/org/hibernate/SessionFactoryObserver.java @@ -19,7 +19,9 @@ public interface SessionFactoryObserver extends Serializable { * * @param factory The factory initialized. */ - void sessionFactoryCreated(SessionFactory factory); + default void sessionFactoryCreated(SessionFactory factory) { + // nothing to do by default + } /** * Callback to indicate that the given factory is about close. The passed factory reference should be usable @@ -34,8 +36,7 @@ public interface SessionFactoryObserver extends Serializable { * @since 5.2 */ default void sessionFactoryClosing(SessionFactory factory) { - // todo : 6.0 remove - // do nothing by default for 5.x compatibility + // nothing to do by default } /** @@ -44,5 +45,7 @@ default void sessionFactoryClosing(SessionFactory factory) { * * @param factory The factory closed. */ - void sessionFactoryClosed(SessionFactory factory); + default void sessionFactoryClosed(SessionFactory factory) { + // nothing to do by default + } } diff --git a/hibernate-core/src/test/java/org/hibernate/test/events/CallbackTest.java b/hibernate-core/src/test/java/org/hibernate/test/events/CallbackTest.java index 2872373965bb..14e1e72a2e9f 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/events/CallbackTest.java +++ b/hibernate-core/src/test/java/org/hibernate/test/events/CallbackTest.java @@ -79,11 +79,15 @@ public void disintegrate( @Test public void testCallbacks() { + // test pre-assertions + assert observer.closingCount == 0; + assert observer.closedCount == 0; assertEquals( "observer not notified of creation", 1, observer.creationCount ); assertEquals( "listener not notified of creation", 1, listener.initCount ); sessionFactory().close(); + assertEquals( "observer not notified of closing", 1, observer.closingCount ); assertEquals( "observer not notified of close", 1, observer.closedCount ); assertEquals( "listener not notified of close", 1, listener.destoryCount ); } @@ -91,11 +95,17 @@ public void testCallbacks() { private static class TestingObserver implements SessionFactoryObserver { private int creationCount = 0; private int closedCount = 0; + private int closingCount = 0; public void sessionFactoryCreated(SessionFactory factory) { creationCount++; } + @Override + public void sessionFactoryClosing(SessionFactory factory) { + closingCount++; + } + public void sessionFactoryClosed(SessionFactory factory) { closedCount++; }