From cf07166f1d0b45bc7a614c2cde07db758a7c256e Mon Sep 17 00:00:00 2001 From: davydotcom Date: Sun, 23 Aug 2020 16:35:57 -0400 Subject: [PATCH] Checking if ReflectionUtils class exists and clears its cache in the event of a class chanage --- .../java/org/springsource/loaded/ReloadableType.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/springloaded/src/main/java/org/springsource/loaded/ReloadableType.java b/springloaded/src/main/java/org/springsource/loaded/ReloadableType.java index 1a3f40f..e96c454 100644 --- a/springloaded/src/main/java/org/springsource/loaded/ReloadableType.java +++ b/springloaded/src/main/java/org/springsource/loaded/ReloadableType.java @@ -441,6 +441,16 @@ public class ReloadableType { tagAsAffectedByReload(); tagSupertypesAsAffectedByReload(); tagSubtypesAsAffectedByReload(); + //ReflectionUtils has a cache that needs cleared + try { + Class reflecutionUtil = Class.forName("org.springframework.util.ReflectionUtils"); + // java.lang.NoSuchMethodException: org.codehaus.groovy.reflection.ClassInfo$LazyCachedClassRef.clear() + Method clearMethod = reflecutionUtil.getMethod("clearCache");//DeclaredMethod("clear"); + clearMethod.invoke(null); + } catch(Exception e3) { + //this better not blow up in my face + } + // ReflectionUtils.clearCache(); typeRegistry.fireReloadEvent(this, versionsuffix);