WW-5293 Split #buildActionConfig from #addAction
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 0f91d70..77fa8c9 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
@@ -426,8 +426,7 @@
     protected void addAction(Element actionElement, PackageConfig.Builder packageContext) throws ConfigurationException {
         String name = actionElement.getAttribute("name");
         String className = actionElement.getAttribute("class");
-        //methodName should be null if it's not set
-        String methodName = trimToNull(actionElement.getAttribute("method"));
+
         Location location = DomHelper.getLocationObject(actionElement);
 
         if (location == null) {
@@ -443,16 +442,34 @@
         try {
             results = buildResults(actionElement, packageContext);
         } catch (ConfigurationException e) {
-            throw new ConfigurationException("Error building results for action " + name + " in namespace " + packageContext.getNamespace(), e, actionElement);
+            throw new ConfigurationException(
+                    format("Error building results for action %s in namespace %s", name, packageContext.getNamespace()),
+                    e,
+                    actionElement);
         }
 
+        ActionConfig actionConfig = buildActionConfig(name, className, location, actionElement, packageContext, results);
+        packageContext.addActionConfig(actionConfig.getName(), actionConfig);
+
+        LOG.debug("Loaded {}{} in '{}' package: {}",
+                isNotEmpty(packageContext.getNamespace()) ? (packageContext.getNamespace() + "/") : "",
+                name, packageContext.getName(), actionConfig);
+    }
+
+    protected ActionConfig buildActionConfig(String actionName,
+                                             String className,
+                                             Location location,
+                                             Element actionElement,
+                                             PackageConfig.Builder packageContext,
+                                             Map<String, ResultConfig> results) {
+        // methodName should be null if it's not set
+        String methodName = trimToNull(actionElement.getAttribute("method"));
+
         List<InterceptorMapping> interceptorList = buildInterceptorList(actionElement, packageContext);
-
         List<ExceptionMappingConfig> exceptionMappings = buildExceptionMappings(actionElement, packageContext);
-
         Set<String> allowedMethods = buildAllowedMethods(actionElement, packageContext);
 
-        ActionConfig actionConfig = new ActionConfig.Builder(packageContext.getName(), name, className)
+        return new ActionConfig.Builder(packageContext.getName(), actionName, className)
                 .methodName(methodName)
                 .addResultConfigs(results)
                 .addInterceptors(interceptorList)
@@ -462,11 +479,6 @@
                 .addAllowedMethod(allowedMethods)
                 .location(location)
                 .build();
-        packageContext.addActionConfig(name, actionConfig);
-
-        LOG.debug("Loaded {}{} in '{}' package: {}",
-                isNotEmpty(packageContext.getNamespace()) ? (packageContext.getNamespace() + "/") : "",
-                name, packageContext.getName(), actionConfig);
     }
 
     /**