diff --git a/common/src/main/java/com/genexus/xml/GXXMLSerializable.java b/common/src/main/java/com/genexus/xml/GXXMLSerializable.java index 649ac1789..ee4d7cd36 100644 --- a/common/src/main/java/com/genexus/xml/GXXMLSerializable.java +++ b/common/src/main/java/com/genexus/xml/GXXMLSerializable.java @@ -497,7 +497,7 @@ private void collectionFromJSONArray(JSONArray jsonArray, GXSimpleCollection gxC } // cache of methods for classes, inpruve perfomance, becuase each intance get all methods each time called. - private static transient ConcurrentHashMap> classesCacheMethods = new ConcurrentHashMap<>(); + public static transient ConcurrentHashMap> classesCacheMethods = new ConcurrentHashMap<>(); // cache of methods names, inpruve perfomance. private static transient ConcurrentHashMap toLowerCacheMethods = new ConcurrentHashMap<>(); diff --git a/gxspringboot/src/main/java/com/genexus/springboot/GXConfig.java b/gxspringboot/src/main/java/com/genexus/springboot/GXConfig.java index 7a74b9fd0..89a853f88 100644 --- a/gxspringboot/src/main/java/com/genexus/springboot/GXConfig.java +++ b/gxspringboot/src/main/java/com/genexus/springboot/GXConfig.java @@ -5,6 +5,8 @@ import com.genexus.diagnostics.core.ILogger; import com.genexus.diagnostics.core.LogManager; import com.genexus.servlet.CorsFilter; +import com.genexus.xml.GXXMLSerializable; +import jakarta.annotation.PreDestroy; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -75,4 +77,9 @@ public FilterRegistrationBean urlRewriteFilter() { } return registrationBean; } + + @PreDestroy + public void onDestroy() { + GXXMLSerializable.classesCacheMethods.clear(); + } }