From 7fa67c290e9fad8e29892978e8d26bd83d003596 Mon Sep 17 00:00:00 2001 From: Kusal Kithul-Godage Date: Tue, 7 Mar 2023 14:30:59 +1100 Subject: [PATCH] WW-5293 Add protected #loadClass --- .../config/providers/XmlDocConfigurationProvider.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlDocConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlDocConfigurationProvider.java index 49b02a45b..8a250eab5 100644 --- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlDocConfigurationProvider.java +++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlDocConfigurationProvider.java @@ -129,6 +129,10 @@ public abstract class XmlDocConfigurationProvider implements ConfigurationProvid public void destroy() { } + protected Class loadClass(String className) throws ClassNotFoundException { + return objectFactory.getClassInstance(className); + } + public static void iterateElementChildren(Document doc, Consumer function) { iterateElementChildren(doc.getDocumentElement(), function); } @@ -187,7 +191,7 @@ public abstract class XmlDocConfigurationProvider implements ConfigurationProvid String name = child.getAttribute("name"); String impl = child.getAttribute("class"); try { - Class classImpl = ClassLoaderUtil.loadClass(impl, getClass()); + Class classImpl = loadClass(impl); if (BeanSelectionProvider.class.isAssignableFrom(classImpl)) { BeanSelectionProvider provider = (BeanSelectionProvider) classImpl.newInstance(); provider.register(containerBuilder, props); @@ -499,7 +503,7 @@ public abstract class XmlDocConfigurationProvider implements ConfigurationProvid } try { if (objectFactory.isNoArgConstructorRequired()) { - Class clazz = objectFactory.getClassInstance(className); + Class clazz = loadClass(className); if (!Modifier.isPublic(clazz.getModifiers())) { throw new ConfigurationException("Action class [" + className + "] is not public", loc); } @@ -566,7 +570,7 @@ public abstract class XmlDocConfigurationProvider implements ConfigurationProvid protected Class verifyResultType(String className, Location loc) { try { - return objectFactory.getClassInstance(className); + return loadClass(className); } catch (ClassNotFoundException | NoClassDefFoundError e) { LOG.warn("Result class [{}] doesn't exist ({}) at {}, ignoring", className, e.getClass().getSimpleName(), loc, e); }