From f5135bf3c35033e793beafd8770933a8c546b816 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Wed, 5 Feb 2025 20:56:03 +0100 Subject: [PATCH] HHH-19104 Envers - Reset ReflectionTools cache on disintegration --- .../org/hibernate/envers/boot/internal/EnversIntegrator.java | 3 ++- .../org/hibernate/envers/internal/tools/ReflectionTools.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversIntegrator.java b/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversIntegrator.java index 97de0810ef4e..be4e140a1ccc 100644 --- a/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversIntegrator.java +++ b/hibernate-envers/src/main/java/org/hibernate/envers/boot/internal/EnversIntegrator.java @@ -20,6 +20,7 @@ import org.hibernate.envers.event.spi.EnversPreCollectionRemoveEventListenerImpl; import org.hibernate.envers.event.spi.EnversPreCollectionUpdateEventListenerImpl; import org.hibernate.envers.event.spi.EnversPreUpdateEventListenerImpl; +import org.hibernate.envers.internal.tools.ReflectionTools; import org.hibernate.event.service.spi.EventListenerRegistry; import org.hibernate.event.spi.EventType; import org.hibernate.integrator.spi.Integrator; @@ -119,6 +120,6 @@ public void integrate( @Override public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { - // nothing to do + ReflectionTools.reset(); } } diff --git a/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/ReflectionTools.java b/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/ReflectionTools.java index 0c67f2faecb1..0f9dbb4858e6 100644 --- a/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/ReflectionTools.java +++ b/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/ReflectionTools.java @@ -186,4 +186,9 @@ public static Class loadClass(String name, ClassLoaderService classLoader throw new ClassLoadingException( "Unable to load class [" + name + "]", e ); } } + + public static void reset() { + SETTER_CACHE.clear(); + GETTER_CACHE.clear(); + } }