You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2006/01/21 01:21:00 UTC

svn commit: r370938 [4/50] - in /struts: action/trunk/ action/trunk/conf/java/ action/trunk/src/java/org/apache/struts/ action/trunk/src/java/org/apache/struts/action/ action/trunk/src/java/org/apache/struts/chain/ action/trunk/src/java/org/apache/stru...

Modified: struts/action/trunk/src/java/org/apache/struts/action/ActionServlet.java
URL: http://svn.apache.org/viewcvs/struts/action/trunk/src/java/org/apache/struts/action/ActionServlet.java?rev=370938&r1=370937&r2=370938&view=diff
==============================================================================
--- struts/action/trunk/src/java/org/apache/struts/action/ActionServlet.java (original)
+++ struts/action/trunk/src/java/org/apache/struts/action/ActionServlet.java Fri Jan 20 16:19:02 2006
@@ -15,29 +15,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.struts.action;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.MissingResourceException;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.UnavailableException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.PropertyUtils;
@@ -58,16 +37,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts.Globals;
+import org.apache.struts.config.ActionConfig;
 import org.apache.struts.config.ConfigRuleSet;
+import org.apache.struts.config.ExceptionConfig;
 import org.apache.struts.config.FormBeanConfig;
+import org.apache.struts.config.FormPropertyConfig;
+import org.apache.struts.config.ForwardConfig;
 import org.apache.struts.config.MessageResourcesConfig;
 import org.apache.struts.config.ModuleConfig;
 import org.apache.struts.config.ModuleConfigFactory;
 import org.apache.struts.config.PlugInConfig;
-import org.apache.struts.config.FormPropertyConfig;
-import org.apache.struts.config.ForwardConfig;
-import org.apache.struts.config.ExceptionConfig;
-import org.apache.struts.config.ActionConfig;
 import org.apache.struts.util.MessageResources;
 import org.apache.struts.util.MessageResourcesFactory;
 import org.apache.struts.util.ModuleUtils;
@@ -75,6 +54,25 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.UnavailableException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.MissingResourceException;
+
 /**
  * <p><strong>ActionServlet</strong> provides the "controller" in the
  * Model-View-Controller (MVC) design pattern for web applications that is
@@ -82,130 +80,117 @@
  * description in the JavaServerPages Specification, version 0.92, and has
  * persisted ever since (in the absence of a better name).</p>
  *
- * <p>Generally, a "Model 2" application is architected as follows:</p>
- * <ul>
+ * <p>Generally, a "Model 2" application is architected as follows:</p> <ul>
  * <li>The user interface will generally be created with server pages, which
- *     will not themselves contain any business logic. These pages represent
- *     the "view" component of an MVC architecture.</li>
- * <li>Forms and hyperlinks in the user interface that require business logic
- *     to be executed will be submitted to a request URI that is mapped to this
- *     servlet.</li>
- * <li>There can be <b>one</b> instance of this servlet class,
- *     which receives and processes all requests that change the state of
- *     a user's interaction with the application.  The servlet delegates the
- *     handling of a request to a {@link RequestProcessor} object. This
- *     component represents the "controller" component of an MVC architecture.
- *     </li>
- * <li>The <code>RequestProcessor</code> selects and invokes an {@link Action}
- *     class to perform the requested business logic, or delegates the response
- *     to another resource.</li>
- * <li>The <code>Action</code> classes can manipulate the state of the
- *     application's interaction with the user, typically by creating or
- *     modifying JavaBeans that are stored as request or session attributes
- *     (depending on how long they need to be available). Such JavaBeans
- *     represent the "model" component of an MVC architecture.</li>
- * <li>Instead of producing the next page of the user interface directly,
- *     <code>Action</code> classes generally return an {@link ActionForward} to
- *     indicate which resource should handle the response. If the
- *     <code>Action</code> does not return null, the
- *     <code>RequestProcessor</code> forwards or redirects to the specified
- *     resource (by utilizing <code>RequestDispatcher.forward</code> or
- *     <code>Response.sendRedirect</code>) so as to produce the next page of
- *     the user interface.</li>
- * </ul>
+ * will not themselves contain any business logic. These pages represent the
+ * "view" component of an MVC architecture.</li> <li>Forms and hyperlinks in
+ * the user interface that require business logic to be executed will be
+ * submitted to a request URI that is mapped to this servlet.</li> <li>There
+ * can be <b>one</b> instance of this servlet class, which receives and
+ * processes all requests that change the state of a user's interaction with
+ * the application.  The servlet delegates the handling of a request to a
+ * {@link RequestProcessor} object. This component represents the "controller"
+ * component of an MVC architecture. </li> <li>The <code>RequestProcessor</code>
+ * selects and invokes an {@link Action} class to perform the requested
+ * business logic, or delegates the response to another resource.</li> <li>The
+ * <code>Action</code> classes can manipulate the state of the application's
+ * interaction with the user, typically by creating or modifying JavaBeans
+ * that are stored as request or session attributes (depending on how long
+ * they need to be available). Such JavaBeans represent the "model" component
+ * of an MVC architecture.</li> <li>Instead of producing the next page of the
+ * user interface directly, <code>Action</code> classes generally return an
+ * {@link ActionForward} to indicate which resource should handle the
+ * response. If the <code>Action</code> does not return null, the
+ * <code>RequestProcessor</code> forwards or redirects to the specified
+ * resource (by utilizing <code>RequestDispatcher.forward</code> or
+ * <code>Response.sendRedirect</code>) so as to produce the next page of the
+ * user interface.</li> </ul>
  *
  * <p>The standard version of <code>RequestsProcessor</code> implements the
- *    following logic for each incoming HTTP request. You can override
- *    some or all of this functionality by subclassing this object and
- *    implementing your own version of the processing.</p>
- * <ul>
- * <li>Identify, from the incoming request URI, the substring that will be
- *     used to select an action procedure.</li>
- * <li>Use this substring to map to the Java class name of the corresponding
- *     action class (an implementation of the <code>Action</code> interface).
- *     </li>
- * <li>If this is the first request for a particular <code>Action</code> class,
- *     instantiate an instance of that class and cache it for future use.</li>
- * <li>Optionally populate the properties of an <code>ActionForm</code> bean
- *     associated with this mapping.</li>
- * <li>Call the <code>execute</code> method of this <code>Action</code> class,
- *     passing on a reference to the mapping that was used, the relevant
- *     form-bean (if any), and the request and the response that were passed to
- *     the controller by the servlet container (thereby providing access to any
- *     specialized properties of the mapping itself as well as to the
- *     ServletContext).
- *     </li>
+ * following logic for each incoming HTTP request. You can override some or
+ * all of this functionality by subclassing this object and implementing your
+ * own version of the processing.</p> <ul> <li>Identify, from the incoming
+ * request URI, the substring that will be used to select an action
+ * procedure.</li> <li>Use this substring to map to the Java class name of the
+ * corresponding action class (an implementation of the <code>Action</code>
+ * interface). </li> <li>If this is the first request for a particular
+ * <code>Action</code> class, instantiate an instance of that class and cache
+ * it for future use.</li> <li>Optionally populate the properties of an
+ * <code>ActionForm</code> bean associated with this mapping.</li> <li>Call
+ * the <code>execute</code> method of this <code>Action</code> class, passing
+ * on a reference to the mapping that was used, the relevant form-bean (if
+ * any), and the request and the response that were passed to the controller
+ * by the servlet container (thereby providing access to any specialized
+ * properties of the mapping itself as well as to the ServletContext). </li>
  * </ul>
  *
  * <p>The standard version of <code>ActionServlet</code> is configured based
  * on the following servlet initialization parameters, which you will specify
  * in the web application deployment descriptor (<code>/WEB-INF/web.xml</code>)
  * for your application.  Subclasses that specialize this servlet are free to
- * define additional initialization parameters. </p>
- * <ul>
+ * define additional initialization parameters. </p> <ul>
  * <li><strong>config</strong> - Comma-separated list of context-relative
- *     path(s) to the XML resource(s) containing the configuration information
- *     for the default module.  (Multiple files support since Struts 1.1)
- *     [/WEB-INF/struts-config.xml].</li>
- * <li><strong>config/${module}</strong> - Comma-separated list of
- *     Context-relative path(s) to the XML resource(s)
- *     containing the configuration information for the module that
- *     will use the specified prefix (/${module}). This can be repeated as many
- *     times as required for multiple modules. (Since Struts 1.1)</li>
+ * path(s) to the XML resource(s) containing the configuration information for
+ * the default module.  (Multiple files support since Struts 1.1)
+ * [/WEB-INF/struts-config.xml].</li> <li><strong>config/${module}</strong> -
+ * Comma-separated list of Context-relative path(s) to the XML resource(s)
+ * containing the configuration information for the module that will use the
+ * specified prefix (/${module}). This can be repeated as many times as
+ * required for multiple modules. (Since Struts 1.1)</li>
  * <li><strong>configFactory</strong> - The Java class name of the
- *     <code>ModuleConfigFactory</code> used to create the implementation of the
- *     <code>ModuleConfig</code> interface.
- *     [org.apache.struts.config.impl.DefaultModuleConfigFactory]
- * </li>
- * <li><strong>convertNull</strong> - Force simulation of the Struts 1.0
- *     behavior when populating forms. If set to true, the numeric Java wrapper
- *     class types (like <code>java.lang.Integer</code>) will default to null
- *     (rather than 0). (Since Struts 1.1) [false] </li>
- * <li><strong>rulesets</strong> - Comma-delimited list of fully qualified
- *     classnames of additional <code>org.apache.commons.digester.RuleSet</code>
- *     instances that should be added to the <code>Digester</code> that will
- *     be processing <code>struts-config.xml</code> files.  By default, only
- *     the <code>RuleSet</code> for the standard configuration elements is
- *     loaded.  (Since Struts 1.1)</li>
- * <li><strong>validating</strong> - Should we use a validating XML parser to
- *     process the configuration file (strongly recommended)? [true]</li>
- * <li><strong>chainConfig</strong> - Comma-separated list of either
- *     context-relative or classloader path(s) to load commons-chain catalog
- *     definitions from.  If none specified, the default Struts catalog that is
- *     provided with Struts will be used.</li>
+ * <code>ModuleConfigFactory</code> used to create the implementation of the
+ * <code>ModuleConfig</code> interface. [org.apache.struts.config.impl.DefaultModuleConfigFactory]
+ * </li> <li><strong>convertNull</strong> - Force simulation of the Struts 1.0
+ * behavior when populating forms. If set to true, the numeric Java wrapper
+ * class types (like <code>java.lang.Integer</code>) will default to null
+ * (rather than 0). (Since Struts 1.1) [false] </li> <li><strong>rulesets</strong>
+ * - Comma-delimited list of fully qualified classnames of additional
+ * <code>org.apache.commons.digester.RuleSet</code> instances that should be
+ * added to the <code>Digester</code> that will be processing
+ * <code>struts-config.xml</code> files.  By default, only the
+ * <code>RuleSet</code> for the standard configuration elements is loaded.
+ * (Since Struts 1.1)</li> <li><strong>validating</strong> - Should we use a
+ * validating XML parser to process the configuration file (strongly
+ * recommended)? [true]</li> <li><strong>chainConfig</strong> -
+ * Comma-separated list of either context-relative or classloader path(s) to
+ * load commons-chain catalog definitions from.  If none specified, the
+ * default Struts catalog that is provided with Struts will be used.</li>
  * </ul>
  *
- * @version $Rev$ $Date$
+ * @version $Rev$ $Date: 2005-10-14 19:54:16 -0400 (Fri, 14 Oct 2005)
+ *          $
  */
 public class ActionServlet extends HttpServlet {
-
+    /**
+     * <p>Commons Logging instance.</p>
+     *
+     * @since Struts 1.1
+     */
+    protected static Log log = LogFactory.getLog(ActionServlet.class);
 
     // ----------------------------------------------------- Instance Variables
 
-
     /**
-     * <p>Comma-separated list of context-relative path(s) to our configuration
-     * resource(s) for the default module.</p>
+     * <p>Comma-separated list of context-relative path(s) to our
+     * configuration resource(s) for the default module.</p>
      */
     protected String config = "/WEB-INF/struts-config.xml";
 
-
     /**
      * <p>Comma-separated list of context or classloader-relative path(s) that
-     * contain the configuration for the default commons-chain catalog(s).</p>
+     * contain the configuration for the default commons-chain
+     * catalog(s).</p>
      */
     protected String chainConfig = "org/apache/struts/chain/chain-config.xml";
 
-
     /**
-     * <p>The Digester used to produce ModuleConfig objects from a
-     * Struts configuration file.</p>
+     * <p>The Digester used to produce ModuleConfig objects from a Struts
+     * configuration file.</p>
      *
      * @since Struts 1.1
      */
     protected Digester configDigester = null;
 
-
     /**
      * <p>The flag to request backwards-compatible conversions for form bean
      * properties of the Java wrapper class types.</p>
@@ -214,27 +199,18 @@
      */
     protected boolean convertNull = false;
 
-
     /**
      * <p>The resources object for our internal resources.</p>
      */
     protected MessageResources internal = null;
 
-
     /**
      * <p>The Java base name of our internal resources.</p>
-     * @since Struts 1.1
-     */
-    protected String internalName = "org.apache.struts.action.ActionResources";
-
-
-    /**
-     * <p>Commons Logging instance.</p>
      *
      * @since Struts 1.1
      */
-    protected static Log log = LogFactory.getLog(ActionServlet.class);
-
+    protected String internalName =
+            "org.apache.struts.action.ActionResources";
 
     /**
      * <p>The set of public identifiers, and corresponding resource names, for
@@ -242,44 +218,39 @@
      * <strong>MUST</strong> be an even number of Strings in this list!</p>
      */
     protected String[] registrations = {
-        "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN",
-        "/org/apache/struts/resources/struts-config_1_0.dtd",
-        "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN",
-        "/org/apache/struts/resources/struts-config_1_1.dtd",
-        "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN",
-        "/org/apache/struts/resources/struts-config_1_2.dtd",
-        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN",
-        "/org/apache/struts/resources/struts-config_1_3.dtd",
-        "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN",
-        "/org/apache/struts/resources/web-app_2_2.dtd",
-        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN",
-        "/org/apache/struts/resources/web-app_2_3.dtd"
+            "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN",
+            "/org/apache/struts/resources/struts-config_1_0.dtd",
+            "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN",
+            "/org/apache/struts/resources/struts-config_1_1.dtd",
+            "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN",
+            "/org/apache/struts/resources/struts-config_1_2.dtd",
+            "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN",
+            "/org/apache/struts/resources/struts-config_1_3.dtd",
+            "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN",
+            "/org/apache/struts/resources/web-app_2_2.dtd",
+            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN",
+            "/org/apache/struts/resources/web-app_2_3.dtd"
     };
 
-
     /**
      * <p>The URL pattern to which we are mapped in our web application
      * deployment descriptor.</p>
      */
     protected String servletMapping = null; // :FIXME: - multiples?
 
-
     /**
-     * <p>The servlet name under which we are registered in our web application
-     * deployment descriptor.</p>
+     * <p>The servlet name under which we are registered in our web
+     * application deployment descriptor.</p>
      */
     protected String servletName = null;
 
-
     // ---------------------------------------------------- HttpServlet Methods
 
-
     /**
-     * <p>Gracefully shut down this controller servlet, releasing any resources
-     * that were allocated at initialization.</p>
+     * <p>Gracefully shut down this controller servlet, releasing any
+     * resources that were allocated at initialization.</p>
      */
     public void destroy() {
-
         if (log.isDebugEnabled()) {
             log.debug(internal.getMessage("finalizing"));
         }
@@ -291,18 +262,22 @@
         // Release our LogFactory and Log instances (if any)
         ClassLoader classLoader =
                 Thread.currentThread().getContextClassLoader();
+
         if (classLoader == null) {
             classLoader = ActionServlet.class.getClassLoader();
         }
+
         try {
             LogFactory.release(classLoader);
-        } catch (Throwable t) {
+        }
+        catch (Throwable t) {
             ; // Servlet container doesn't have the latest version
-              // of commons-logging-api.jar installed
 
+            // of commons-logging-api.jar installed
             // :FIXME: Why is this dependent on the container's version of
             // commons-logging? Shouldn't this depend on the version packaged
             // with Struts?
+
             /*
               Reason: LogFactory.release(classLoader); was added as
               an attempt to investigate the OutOfMemory error reported on
@@ -314,14 +289,12 @@
         PropertyUtils.clearDescriptors();
     }
 
-
-
     /**
      * <p>Initialize this servlet.  Most of the processing has been factored
      * into support methods so that you can override particular functionality
      * at a fairly granular level.</p>
      *
-     * @exception ServletException if we cannot configure ourselves correctly
+     * @throws ServletException if we cannot configure ourselves correctly
      */
     public void init() throws ServletException {
         final String configPrefix = "config/";
@@ -336,10 +309,13 @@
             initServlet();
             initChain();
 
-            getServletContext().setAttribute(Globals.ACTION_SERVLET_KEY, this);
+            getServletContext()
+                    .setAttribute(Globals.ACTION_SERVLET_KEY, this);
             initModuleConfigFactory();
+
             // Initialize modules as needed
             ModuleConfig moduleConfig = initModuleConfig("", config);
+
             initModuleMessageResources(moduleConfig);
             initModulePlugIns(moduleConfig);
             initModuleFormBeans(moduleConfig);
@@ -349,14 +325,18 @@
             moduleConfig.freeze();
 
             Enumeration names = getServletConfig().getInitParameterNames();
+
             while (names.hasMoreElements()) {
                 String name = (String) names.nextElement();
+
                 if (!name.startsWith(configPrefix)) {
                     continue;
                 }
+
                 String prefix = name.substring(configPrefixLength);
-                moduleConfig = initModuleConfig
-                    (prefix, getServletConfig().getInitParameter(name));
+
+                moduleConfig = initModuleConfig(prefix,
+                        getServletConfig().getInitParameter(name));
                 initModuleMessageResources(moduleConfig);
                 initModulePlugIns(moduleConfig);
                 initModuleFormBeans(moduleConfig);
@@ -369,25 +349,26 @@
             this.initModulePrefixes(this.getServletContext());
 
             this.destroyConfigDigester();
-        } catch (UnavailableException ex) {
+        }
+        catch (UnavailableException ex) {
             throw ex;
-        } catch (Throwable t) {
-
+        }
+        catch (Throwable t) {
             // The follow error message is not retrieved from internal message
             // resources as they may not have been able to have been
             // initialized
             log.error("Unable to initialize Struts ActionServlet due to an "
-                + "unexpected exception or error thrown, so marking the "
-                + "servlet as unavailable.  Most likely, this is due to an "
-                + "incorrect or missing library dependency.", t);
+                    + "unexpected exception or error thrown, so marking the "
+                    + "servlet as unavailable.  Most likely, this is due to an "
+                    + "incorrect or missing library dependency.", t);
             throw new UnavailableException(t.getMessage());
         }
     }
 
     /**
      * <p>Saves a String[] of module prefixes in the ServletContext under
-     * Globals.MODULE_PREFIXES_KEY.  <strong>NOTE</strong> -
-     * the "" prefix for the default module is not included in this list.</p>
+     * Globals.MODULE_PREFIXES_KEY.  <strong>NOTE</strong> - the "" prefix for
+     * the default module is not included in this list.</p>
      *
      * @param context The servlet context.
      * @since Struts 1.2
@@ -396,102 +377,92 @@
         ArrayList prefixList = new ArrayList();
 
         Enumeration names = context.getAttributeNames();
+
         while (names.hasMoreElements()) {
             String name = (String) names.nextElement();
+
             if (!name.startsWith(Globals.MODULE_KEY)) {
                 continue;
             }
 
             String prefix = name.substring(Globals.MODULE_KEY.length());
+
             if (prefix.length() > 0) {
                 prefixList.add(prefix);
             }
         }
 
-        String[] prefixes = (String[]) prefixList.toArray(
-                new String[prefixList.size()]);
+        String[] prefixes =
+                (String[]) prefixList.toArray(new String[prefixList
+                        .size()]);
+
         context.setAttribute(Globals.MODULE_PREFIXES_KEY, prefixes);
     }
 
-
     /**
      * <p>Process an HTTP "GET" request.</p>
      *
-     * @param request The servlet request we are processing
+     * @param request  The servlet request we are processing
      * @param response The servlet response we are creating
-     *
-     * @exception IOException if an input/output error occurs
-     * @exception ServletException if a servlet exception occurs
+     * @throws IOException      if an input/output error occurs
+     * @throws ServletException if a servlet exception occurs
      */
     public void doGet(HttpServletRequest request,
-              HttpServletResponse response)
-        throws IOException, ServletException {
-
+                      HttpServletResponse response)
+            throws IOException, ServletException {
         process(request, response);
-
     }
 
-
     /**
      * <p>Process an HTTP "POST" request.</p>
      *
-     * @param request The servlet request we are processing
+     * @param request  The servlet request we are processing
      * @param response The servlet response we are creating
-     *
-     * @exception IOException if an input/output error occurs
-     * @exception ServletException if a servlet exception occurs
+     * @throws IOException      if an input/output error occurs
+     * @throws ServletException if a servlet exception occurs
      */
     public void doPost(HttpServletRequest request,
-               HttpServletResponse response)
-        throws IOException, ServletException {
-
+                       HttpServletResponse response)
+            throws IOException, ServletException {
         process(request, response);
-
     }
 
-
     // --------------------------------------------------------- Public Methods
 
-
     /**
      * <p>Remember a servlet mapping from our web application deployment
      * descriptor, if it is for this servlet.</p>
      *
      * @param servletName The name of the servlet being mapped
-     * @param urlPattern The URL pattern to which this servlet is mapped
+     * @param urlPattern  The URL pattern to which this servlet is mapped
      */
     public void addServletMapping(String servletName, String urlPattern) {
-
         if (servletName == null) {
             return;
         }
+
         if (servletName.equals(this.servletName)) {
             if (log.isDebugEnabled()) {
                 log.debug("Process servletName=" + servletName
                         + ", urlPattern=" + urlPattern);
             }
+
             this.servletMapping = urlPattern;
         }
-
     }
 
-
     /**
      * <p>Return the <code>MessageResources</code> instance containing our
      * internal message strings.</p>
      *
      * @return the <code>MessageResources</code> instance containing our
      *         internal message strings.
-     *
      * @since Struts 1.1
      */
     public MessageResources getInternal() {
-
         return (this.internal);
-
     }
 
-
     // ------------------------------------------------------ Protected Methods
 
     /**
@@ -501,14 +472,15 @@
      * @since Struts 1.1
      */
     protected void destroyModules() {
-
         ArrayList values = new ArrayList();
         Enumeration names = getServletContext().getAttributeNames();
+
         while (names.hasMoreElements()) {
             values.add(names.nextElement());
         }
 
         Iterator keys = values.iterator();
+
         while (keys.hasNext()) {
             String name = (String) keys.next();
             Object value = getServletContext().getAttribute(name);
@@ -525,25 +497,23 @@
 
             getServletContext().removeAttribute(name);
 
-            PlugIn[] plugIns =
-                (PlugIn[]) getServletContext().getAttribute(
-                    Globals.PLUG_INS_KEY + config.getPrefix());
+            PlugIn[] plugIns = (PlugIn[]) getServletContext()
+                    .getAttribute(Globals.PLUG_INS_KEY
+                            + config.getPrefix());
 
             if (plugIns != null) {
                 for (int i = 0; i < plugIns.length; i++) {
                     int j = plugIns.length - (i + 1);
+
                     plugIns[j].destroy();
                 }
 
-                getServletContext().removeAttribute(
-                    Globals.PLUG_INS_KEY + config.getPrefix());
+                getServletContext().removeAttribute(Globals.PLUG_INS_KEY
+                        + config.getPrefix());
             }
-
         }
-
     }
 
-
     /**
      * <p>Gracefully release any configDigester instance that we have created.
      * </p>
@@ -551,19 +521,14 @@
      * @since Struts 1.1
      */
     protected void destroyConfigDigester() {
-
         configDigester = null;
-
     }
 
-
     /**
      * <p>Gracefully terminate use of the internal MessageResources.</p>
      */
     protected void destroyInternal() {
-
         internal = null;
-
     }
 
     /**
@@ -571,129 +536,113 @@
      * module.</p>
      *
      * @param request The servlet request we are processing
-     *
      * @return The module configuration object for the currently selected
      *         module.
-     *
      * @since Struts 1.1
      */
     protected ModuleConfig getModuleConfig(HttpServletRequest request) {
+        ModuleConfig config =
+                (ModuleConfig) request.getAttribute(Globals.MODULE_KEY);
 
-        ModuleConfig config = (ModuleConfig)
-            request.getAttribute(Globals.MODULE_KEY);
         if (config == null) {
-            config = (ModuleConfig)
-                getServletContext().getAttribute(Globals.MODULE_KEY);
+            config = (ModuleConfig) getServletContext()
+                    .getAttribute(Globals.MODULE_KEY);
         }
-        return (config);
 
+        return (config);
     }
 
-
     /**
      * <p>Look up and return the {@link RequestProcessor} responsible for the
      * specified module, creating a new one if necessary.</p>
      *
-     * @param config The module configuration for which to
-     *  acquire and return a RequestProcessor.
-     *
-     * @return The {@link RequestProcessor} responsible for the
-     *         specified module,
-     *
-     * @exception ServletException If we cannot instantiate a RequestProcessor
-     *                             instance a {@link UnavailableException} is
-     *                             thrown, meaning your application is not loaded
-     *                             and will not be available.
-     *
+     * @param config The module configuration for which to acquire and return
+     *               a RequestProcessor.
+     * @return The {@link RequestProcessor} responsible for the specified
+     *         module,
+     * @throws ServletException If we cannot instantiate a RequestProcessor
+     *                          instance a {@link UnavailableException} is
+     *                          thrown, meaning your application is not loaded
+     *                          and will not be available.
      * @since Struts 1.1
      */
     protected synchronized RequestProcessor getRequestProcessor(
-            ModuleConfig config)
-        throws ServletException {
-
+            ModuleConfig config) throws ServletException {
         RequestProcessor processor = this.getProcessorForModule(config);
 
         if (processor == null) {
             try {
-                processor =
-                    (RequestProcessor) RequestUtils.applicationInstance(
-                        config.getControllerConfig().getProcessorClass());
-
-            } catch (Exception e) {
+                processor = (RequestProcessor) RequestUtils
+                        .applicationInstance(config.getControllerConfig()
+                                .getProcessorClass());
+            }
+            catch (Exception e) {
                 throw new UnavailableException(
-                    "Cannot initialize RequestProcessor of class "
-                        + config.getControllerConfig().getProcessorClass()
-                        + ": "
-                        + e);
+                        "Cannot initialize RequestProcessor of class "
+                                + config.getControllerConfig()
+                                .getProcessorClass() + ": "
+                                + e);
             }
 
             processor.init(this, config);
 
             String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix();
-            getServletContext().setAttribute(key, processor);
 
+            getServletContext().setAttribute(key, processor);
         }
 
         return (processor);
-
     }
 
-
     /**
-     * <p>Returns the RequestProcessor for the given module or null if one does
-     * not exist.  This method will not create a RequestProcessor.</p>
+     * <p>Returns the RequestProcessor for the given module or null if one
+     * does not exist.  This method will not create a RequestProcessor.</p>
      *
      * @param config The ModuleConfig.
-     *
      * @return The <code>RequestProcessor</code> for the given module, or
      *         <code>null</code> if one does not exist.
      */
     private RequestProcessor getProcessorForModule(ModuleConfig config) {
         String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix();
+
         return (RequestProcessor) getServletContext().getAttribute(key);
     }
 
-
     /**
      * <p>Initialize the factory used to create the module configuration.</p>
+     *
      * @since Struts 1.2
      */
     protected void initModuleConfigFactory() {
-        String configFactory = getServletConfig().getInitParameter(
-                "configFactory");
+        String configFactory =
+                getServletConfig().getInitParameter("configFactory");
+
         if (configFactory != null) {
             ModuleConfigFactory.setFactoryClass(configFactory);
         }
     }
 
-
     /**
-     * <p>Initialize the module configuration information for the
-     * specified module.</p>
+     * <p>Initialize the module configuration information for the specified
+     * module.</p>
      *
      * @param prefix Module prefix for this module
-     * @param paths Comma-separated list of context-relative resource path(s)
-     *  for this modules's configuration resource(s)
-     *
+     * @param paths  Comma-separated list of context-relative resource path(s)
+     *               for this modules's configuration resource(s)
      * @return The new module configuration instance.
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.1
      */
     protected ModuleConfig initModuleConfig(String prefix, String paths)
-        throws ServletException {
-
+            throws ServletException {
         if (log.isDebugEnabled()) {
-            log.debug(
-                "Initializing module path '"
-                    + prefix
-                    + "' configuration from '"
-                    + paths
-                    + "'");
+            log.debug("Initializing module path '" + prefix
+                    + "' configuration from '" + paths + "'");
         }
 
         // Parse the configuration for this module
-        ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory();
+        ModuleConfigFactory factoryObject =
+                ModuleConfigFactory.createFactory();
         ModuleConfig config = factoryObject.createModuleConfig(prefix);
 
         // Configure the Digester instance we will use
@@ -701,46 +650,47 @@
 
         List urls = splitAndResolvePaths(paths);
         URL url = null;
+
         for (Iterator i = urls.iterator(); i.hasNext();) {
             url = (URL) i.next();
             digester.push(config);
             this.parseModuleConfigFile(digester, url);
         }
 
-        getServletContext().setAttribute(
-            Globals.MODULE_KEY + config.getPrefix(),
-            config);
+        getServletContext().setAttribute(Globals.MODULE_KEY
+                + config.getPrefix(), config);
 
         return config;
     }
 
-
     /**
      * <p>Parses one module config file.</p>
      *
      * @param digester Digester instance that does the parsing
-     * @param path The path to the config file to parse.
-     *
+     * @param path     The path to the config file to parse.
      * @throws UnavailableException if file cannot be read or parsed
      * @since Struts 1.2
      * @deprecated use parseModuleConfigFile(Digester digester, URL url)
-     * instead
+     *             instead
      */
     protected void parseModuleConfigFile(Digester digester, String path)
-        throws UnavailableException {
-
+            throws UnavailableException {
         try {
             List paths = splitAndResolvePaths(path);
+
             if (paths.size() > 0) {
                 // Get first path as was the old behavior
                 URL url = (URL) paths.get(0);
+
                 parseModuleConfigFile(digester, url);
             } else {
                 throw new UnavailableException("Cannot locate path " + path);
             }
-        } catch (UnavailableException ex) {
+        }
+        catch (UnavailableException ex) {
             throw ex;
-        } catch (ServletException ex) {
+        }
+        catch (ServletException ex) {
             handleConfigException(path, ex);
         }
     }
@@ -749,133 +699,125 @@
      * <p>Parses one module config file.</p>
      *
      * @param digester Digester instance that does the parsing
-     * @param url The url to the config file to parse.
-     *
+     * @param url      The url to the config file to parse.
      * @throws UnavailableException if file cannot be read or parsed
      * @since Struts 1.3
      */
     protected void parseModuleConfigFile(Digester digester, URL url)
-        throws UnavailableException {
-
+            throws UnavailableException {
         InputStream input = null;
+
         try {
             InputSource is = new InputSource(url.toExternalForm());
             URLConnection conn = url.openConnection();
+
             conn.setUseCaches(false);
             conn.connect();
             input = conn.getInputStream();
             is.setByteStream(input);
             digester.parse(is);
-
-        } catch (IOException e) {
+        }
+        catch (IOException e) {
             handleConfigException(url.toString(), e);
-        } catch (SAXException e) {
+        }
+        catch (SAXException e) {
             handleConfigException(url.toString(), e);
-        } finally {
+        }
+        finally {
             if (input != null) {
                 try {
                     input.close();
-                } catch (IOException e) {
+                }
+                catch (IOException e) {
                     throw new UnavailableException(e.getMessage());
                 }
             }
         }
     }
 
-
     /**
-     * <p>Simplifies exception handling in the
-     * <code>parseModuleConfigFile</code> method.<p>
+     * <p>Simplifies exception handling in the <code>parseModuleConfigFile</code>
+     * method.<p>
      *
      * @param path The path to which the exception relates.
-     * @param e The exception to be wrapped and thrown.
-     *
+     * @param e    The exception to be wrapped and thrown.
      * @throws UnavailableException as a wrapper around Exception
      */
     private void handleConfigException(String path, Exception e)
-        throws UnavailableException {
-
+            throws UnavailableException {
         String msg = internal.getMessage("configParse", path);
+
         log.error(msg, e);
         throw new UnavailableException(msg);
     }
 
-
     /**
      * <p>Handle errors related to creating an instance of the specified
      * class.</p>
      *
      * @param className The className that could not be instantiated.
      * @param e         The exception that was caught.
-     *
      * @throws ServletException to communicate the error.
      */
-    private void handleCreationException (String className, Exception e)
+    private void handleCreationException(String className, Exception e)
             throws ServletException {
+        String errorMessage = internal.getMessage("configExtends.creation",
+                className);
 
-        String errorMessage = internal.getMessage(
-                "configExtends.creation", className);
         log.error(errorMessage, e);
         throw new UnavailableException(errorMessage);
     }
 
-
     /**
      * <p>General handling for exceptions caught while inheriting config
      * information.</p>
      *
-     * @param configType    The type of configuration object of
-     *                      <code>configName</code>.
-     * @param configName    The name of the config that could not be
-     *                      extended.
-     * @param e             The exception that was caught.
-     *
+     * @param configType The type of configuration object of <code>configName</code>.
+     * @param configName The name of the config that could not be extended.
+     * @param e          The exception that was caught.
      * @throws ServletException to communicate the error.
      */
-    private void handleGeneralExtensionException
-            (String configType, String configName, Exception e)
+    private void handleGeneralExtensionException(String configType,
+                                                 String configName,
+                                                 Exception e)
             throws ServletException {
+        String errorMessage = internal.getMessage("configExtends", configType,
+                configName);
 
-        String errorMessage = internal.getMessage(
-                "configExtends", configType, configName);
         log.error(errorMessage, e);
         throw new UnavailableException(errorMessage);
     }
 
-
     /**
-     * <p>Handle errors caused by required fields that were not specified.</p>
-     *
-     * @param field         The name of the required field that was not found.
-     * @param configType    The type of configuration object of
-     *                      <code>configName</code>.
-     * @param configName    The name of the config that's missing the required
-     *                      value.
+     * <p>Handle errors caused by required fields that were not
+     * specified.</p>
      *
+     * @param field      The name of the required field that was not found.
+     * @param configType The type of configuration object of <code>configName</code>.
+     * @param configName The name of the config that's missing the required
+     *                   value.
      * @throws ServletException to communicate the error.
      */
-    private void handleValueRequiredException
-            (String field, String configType, String configName)
+    private void handleValueRequiredException(String field, String configType,
+                                              String configName)
             throws ServletException {
+        String errorMessage =
+                internal.getMessage("configFieldRequired", field,
+                        configType, configName);
 
-        String errorMessage = internal.getMessage("configFieldRequired",
-                field, configType, configName);
         log.error(errorMessage);
         throw new UnavailableException(errorMessage);
     }
 
-
     /**
      * <p>Initialize the plug ins for the specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.1
      */
-    protected void initModulePlugIns
-        (ModuleConfig config) throws ServletException {
-
+    protected void initModulePlugIns(ModuleConfig config)
+            throws ServletException {
         if (log.isDebugEnabled()) {
             log.debug("Initializing module path '" + config.getPrefix()
                     + "' plug ins");
@@ -884,27 +826,31 @@
         PlugInConfig[] plugInConfigs = config.findPlugInConfigs();
         PlugIn[] plugIns = new PlugIn[plugInConfigs.length];
 
-        getServletContext().setAttribute(
-                Globals.PLUG_INS_KEY + config.getPrefix(), plugIns);
+        getServletContext().setAttribute(Globals.PLUG_INS_KEY
+                + config.getPrefix(), plugIns);
+
         for (int i = 0; i < plugIns.length; i++) {
             try {
-                plugIns[i] = (PlugIn) RequestUtils.applicationInstance(
-                        plugInConfigs[i].getClassName());
+                plugIns[i] = (PlugIn) RequestUtils
+                        .applicationInstance(plugInConfigs[i]
+                                .getClassName());
                 BeanUtils.populate(plugIns[i],
                         plugInConfigs[i].getProperties());
-                  // Pass the current plugIn config object to the PlugIn.
-                  // The property is set only if the plugin declares it.
-                  // This plugin config object is needed by Tiles
+
+                // Pass the current plugIn config object to the PlugIn.
+                // The property is set only if the plugin declares it.
+                // This plugin config object is needed by Tiles
                 try {
-                    PropertyUtils.setProperty(
-                        plugIns[i],
-                        "currentPlugInConfigObject",
-                        plugInConfigs[i]);
-                } catch (Exception e) {
+                    PropertyUtils.setProperty(plugIns[i],
+                            "currentPlugInConfigObject", plugInConfigs[i]);
+                }
+                catch (Exception e) {
                     ;
-                  // FIXME Whenever we fail silently, we must document a valid
-                  // reason for doing so.  Why should we fail silently if a
-                  // property can't be set on the plugin?
+
+                    // FIXME Whenever we fail silently, we must document a valid
+                    // reason for doing so.  Why should we fail silently if a
+                    // property can't be set on the plugin?
+
                     /**
                      * Between version 1.138-1.140 cedric made these changes.
                      * The exceptions are caught to deal with containers
@@ -915,44 +861,42 @@
                      * of the PlugIn Interface if we can, Rob
                      */
                 }
-                plugIns[i].init(this, config);
 
-            } catch (ServletException e) {
+                plugIns[i].init(this, config);
+            }
+            catch (ServletException e) {
                 throw e;
-            } catch (Exception e) {
-                String errMsg =
-                    internal.getMessage(
-                        "plugIn.init",
+            }
+            catch (Exception e) {
+                String errMsg = internal.getMessage("plugIn.init",
                         plugInConfigs[i].getClassName());
 
                 log(errMsg, e);
                 throw new UnavailableException(errMsg);
             }
         }
-
     }
 
-
     /**
      * <p>Initialize the form beans for the specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.3
      */
-    protected void initModuleFormBeans
-        (ModuleConfig config) throws ServletException {
-
+    protected void initModuleFormBeans(ModuleConfig config)
+            throws ServletException {
         if (log.isDebugEnabled()) {
-            log.debug("Initializing module path '"
-                    + config.getPrefix() + "' form beans");
+            log.debug("Initializing module path '" + config.getPrefix()
+                    + "' form beans");
         }
 
         // Process form bean extensions.
         FormBeanConfig[] formBeans = config.findFormBeanConfigs();
+
         for (int i = 0; i < formBeans.length; i++) {
             FormBeanConfig beanConfig = formBeans[i];
+
             processFormBeanExtension(beanConfig, config);
         }
 
@@ -967,8 +911,10 @@
 
             // ... and the property configs
             FormPropertyConfig[] fpcs = formBean.findFormPropertyConfigs();
+
             for (int j = 0; j < fpcs.length; j++) {
                 FormPropertyConfig property = fpcs[j];
+
                 if (property.getType() == null) {
                     handleValueRequiredException("type", property.getName(),
                             "form property");
@@ -980,18 +926,14 @@
             if (formBean.getDynamic()) {
                 formBean.getDynaActionFormClass();
             }
-
         }
-
     }
 
-
     /**
      * <p>Extend the form bean's configuration as necessary.</p>
      *
-     * @param beanConfig    the configuration to process.
-     * @param moduleConfig  the module configuration for this module.
-     *
+     * @param beanConfig   the configuration to process.
+     * @param moduleConfig the module configuration for this module.
      * @throws ServletException if initialization cannot be performed.
      */
     protected void processFormBeanExtension(FormBeanConfig beanConfig,
@@ -1004,73 +946,73 @@
                             + beanConfig.getName() + "'");
                 }
 
-                beanConfig = processFormBeanConfigClass(beanConfig,
-                        moduleConfig);
+                beanConfig =
+                        processFormBeanConfigClass(beanConfig, moduleConfig);
 
                 beanConfig.processExtends(moduleConfig);
             }
-        } catch (ServletException e) {
+        }
+        catch (ServletException e) {
             throw e;
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             handleGeneralExtensionException("FormBeanConfig",
                     beanConfig.getName(), e);
         }
     }
 
-
     /**
      * <p>Checks if the current beanConfig is using the correct class based on
      * the class of its ancestor form bean config.</p>
      *
-     * @param beanConfig    The form bean to check.
-     * @param moduleConfig  The config for the current module.
-     *
-     * @return  The form bean config using the correct class as determined
-     *          by the config's ancestor and its own overridden value.
-     *
+     * @param beanConfig   The form bean to check.
+     * @param moduleConfig The config for the current module.
+     * @return The form bean config using the correct class as determined by
+     *         the config's ancestor and its own overridden value.
      * @throws UnavailableException if an instance of the form bean config
-     *          class cannot be created.
+     *                              class cannot be created.
      */
     protected FormBeanConfig processFormBeanConfigClass(
-            FormBeanConfig beanConfig,
-            ModuleConfig moduleConfig)
-                throws ServletException {
+            FormBeanConfig beanConfig, ModuleConfig moduleConfig)
+            throws ServletException {
         String ancestor = beanConfig.getExtends();
+
         if (ancestor == null) {
             // Nothing to do, then
             return beanConfig;
         }
 
         // Make sure that this bean is of the right class
-        FormBeanConfig baseConfig =
-                moduleConfig.findFormBeanConfig(ancestor);
+        FormBeanConfig baseConfig = moduleConfig.findFormBeanConfig(ancestor);
+
         if (baseConfig == null) {
-            throw new UnavailableException("Unable to find "
-                    + "form bean '" + ancestor + "' to extend.");
+            throw new UnavailableException("Unable to find " + "form bean '"
+                    + ancestor + "' to extend.");
         }
 
         // Was our bean's class overridden already?
         if (beanConfig.getClass().equals(FormBeanConfig.class)) {
-
             // Ensure that our bean is using the correct class
             if (!baseConfig.getClass().equals(beanConfig.getClass())) {
-
                 // Replace the bean with an instance of the correct class
                 FormBeanConfig newBeanConfig = null;
                 String baseConfigClassName = baseConfig.getClass().getName();
+
                 try {
-                    newBeanConfig = (FormBeanConfig)
-                                        RequestUtils.applicationInstance(
-                                                baseConfigClassName);
+                    newBeanConfig = (FormBeanConfig) RequestUtils
+                            .applicationInstance(baseConfigClassName);
 
                     // copy the values
                     BeanUtils.copyProperties(newBeanConfig, beanConfig);
-                    FormPropertyConfig[] fpc =
-                            beanConfig.findFormPropertyConfigs();
+
+                    FormPropertyConfig[] fpc = beanConfig
+                            .findFormPropertyConfigs();
+
                     for (int i = 0; i < fpc.length; i++) {
                         newBeanConfig.addFormPropertyConfig(fpc[i]);
                     }
-                } catch (Exception e) {
+                }
+                catch (Exception e) {
                     handleCreationException(baseConfigClassName, e);
                 }
 
@@ -1079,32 +1021,30 @@
                 moduleConfig.addFormBeanConfig(newBeanConfig);
                 beanConfig = newBeanConfig;
             }
-
         }
 
         return beanConfig;
     }
 
-
     /**
      * <p>Initialize the forwards for the specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      */
-    protected void initModuleForwards
-        (ModuleConfig config) throws ServletException {
-
+    protected void initModuleForwards(ModuleConfig config)
+            throws ServletException {
         if (log.isDebugEnabled()) {
-            log.debug("Initializing module path '"
-                    + config.getPrefix() + "' forwards");
+            log.debug("Initializing module path '" + config.getPrefix()
+                    + "' forwards");
         }
 
         // Process forwards extensions.
         ForwardConfig[] forwards = config.findForwardConfigs();
+
         for (int i = 0; i < forwards.length; i++) {
             ForwardConfig forward = forwards[i];
+
             processForwardExtension(forward, config);
         }
 
@@ -1117,16 +1057,13 @@
                         "global forward");
             }
         }
-
     }
 
-
     /**
      * <p>Extend the forward's configuration as necessary.</p>
      *
      * @param forwardConfig the configuration to process.
      * @param moduleConfig  the module configuration for this module.
-     *
      * @throws ServletException if initialization cannot be performed.
      */
     protected void processForwardExtension(ForwardConfig forwardConfig,
@@ -1139,68 +1076,67 @@
                             + forwardConfig.getName() + "'");
                 }
 
-                forwardConfig =
-                        processForwardConfigClass(forwardConfig, moduleConfig);
+                forwardConfig = processForwardConfigClass(forwardConfig,
+                        moduleConfig);
 
                 forwardConfig.processExtends(moduleConfig, null);
             }
-        } catch (ServletException e) {
+        }
+        catch (ServletException e) {
             throw e;
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             handleGeneralExtensionException("Forward",
-                    forwardConfig.getName(), e);
+                    forwardConfig.getName(),
+                    e);
         }
     }
 
-
     /**
      * <p>Checks if the current forwardConfig is using the correct class based
      * on the class of its configuration ancestor.</p>
      *
      * @param forwardConfig The forward to check.
      * @param moduleConfig  The config for the current module.
-     *
-     * @return  The forward config using the correct class as determined
-     *          by the config's ancestor and its own overridden value.
-     *
-     * @throws UnavailableException if an instance of the forward config
-     *          class cannot be created.
+     * @return The forward config using the correct class as determined by the
+     *         config's ancestor and its own overridden value.
+     * @throws UnavailableException if an instance of the forward config class
+     *                              cannot be created.
      */
     protected ForwardConfig processForwardConfigClass(
-            ForwardConfig forwardConfig,
-            ModuleConfig moduleConfig)
-                throws ServletException {
+            ForwardConfig forwardConfig, ModuleConfig moduleConfig)
+            throws ServletException {
         String ancestor = forwardConfig.getExtends();
+
         if (ancestor == null) {
             // Nothing to do, then
             return forwardConfig;
         }
 
         // Make sure that this config is of the right class
-        ForwardConfig baseConfig =
-                moduleConfig.findForwardConfig(ancestor);
+        ForwardConfig baseConfig = moduleConfig.findForwardConfig(ancestor);
+
         if (baseConfig == null) {
-            throw new UnavailableException("Unable to find "
-                    + "forward '" + ancestor + "' to extend.");
+            throw new UnavailableException("Unable to find " + "forward '"
+                    + ancestor + "' to extend.");
         }
 
         // Was our forwards's class overridden already?
         if (forwardConfig.getClass().equals(ActionForward.class)) {
-
             // Ensure that our forward is using the correct class
             if (!baseConfig.getClass().equals(forwardConfig.getClass())) {
-
                 // Replace the config with an instance of the correct class
                 ForwardConfig newForwardConfig = null;
                 String baseConfigClassName = baseConfig.getClass().getName();
+
                 try {
-                    newForwardConfig = (ForwardConfig)
-                                        RequestUtils.applicationInstance(
-                                                baseConfigClassName);
+                    newForwardConfig = (ForwardConfig) RequestUtils
+                            .applicationInstance(baseConfigClassName);
 
                     // copy the values
                     BeanUtils.copyProperties(newForwardConfig, forwardConfig);
-                } catch (Exception e) {
+                }
+                catch (Exception e) {
                     handleCreationException(baseConfigClassName, e);
                 }
 
@@ -1209,33 +1145,31 @@
                 moduleConfig.addForwardConfig(newForwardConfig);
                 forwardConfig = newForwardConfig;
             }
-
         }
 
         return forwardConfig;
     }
 
-
     /**
      * <p>Initialize the exception handlers for the specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.3
      */
-    protected void initModuleExceptionConfigs
-        (ModuleConfig config) throws ServletException {
-
+    protected void initModuleExceptionConfigs(ModuleConfig config)
+            throws ServletException {
         if (log.isDebugEnabled()) {
-            log.debug("Initializing module path '"
-                    + config.getPrefix() + "' forwards");
+            log.debug("Initializing module path '" + config.getPrefix()
+                    + "' forwards");
         }
 
         // Process exception config extensions.
         ExceptionConfig[] exceptions = config.findExceptionConfigs();
+
         for (int i = 0; i < exceptions.length; i++) {
             ExceptionConfig exception = exceptions[i];
+
             processExceptionExtension(exception, config);
         }
 
@@ -1248,16 +1182,13 @@
                         "global exception config");
             }
         }
-
     }
 
-
     /**
      * <p>Extend the exception's configuration as necessary.</p>
      *
-     * @param exceptionConfig   the configuration to process.
-     * @param moduleConfig      the module configuration for this module.
-     *
+     * @param exceptionConfig the configuration to process.
+     * @param moduleConfig    the module configuration for this module.
      * @throws ServletException if initialization cannot be performed.
      */
     protected void processExceptionExtension(ExceptionConfig exceptionConfig,
@@ -1270,38 +1201,37 @@
                             + exceptionConfig.getType() + "'");
                 }
 
-                exceptionConfig = processExceptionConfigClass(
-                        exceptionConfig, moduleConfig);
+                exceptionConfig = processExceptionConfigClass(exceptionConfig,
+                        moduleConfig);
 
                 exceptionConfig.processExtends(moduleConfig, null);
             }
-        } catch (ServletException e) {
+        }
+        catch (ServletException e) {
             throw e;
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             handleGeneralExtensionException("Exception",
                     exceptionConfig.getType(), e);
         }
     }
 
-
     /**
      * <p>Checks if the current exceptionConfig is using the correct class
      * based on the class of its configuration ancestor.</p>
      *
-     * @param exceptionConfig   The config to check.
-     * @param moduleConfig      The config for the current module.
-     *
-     * @return  The exception config using the correct class as determined
-     *          by the config's ancestor and its own overridden value.
-     *
-     * @throws ServletException if an instance of the exception config
-     *          class cannot be created.
+     * @param exceptionConfig The config to check.
+     * @param moduleConfig    The config for the current module.
+     * @return The exception config using the correct class as determined by
+     *         the config's ancestor and its own overridden value.
+     * @throws ServletException if an instance of the exception config class
+     *                          cannot be created.
      */
     protected ExceptionConfig processExceptionConfigClass(
-            ExceptionConfig exceptionConfig,
-            ModuleConfig moduleConfig)
-                throws ServletException {
+            ExceptionConfig exceptionConfig, ModuleConfig moduleConfig)
+            throws ServletException {
         String ancestor = exceptionConfig.getExtends();
+
         if (ancestor == null) {
             // Nothing to do, then
             return exceptionConfig;
@@ -1310,6 +1240,7 @@
         // Make sure that this config is of the right class
         ExceptionConfig baseConfig =
                 moduleConfig.findExceptionConfig(ancestor);
+
         if (baseConfig == null) {
             throw new UnavailableException("Unable to find "
                     + "exception config '" + ancestor + "' to extend.");
@@ -1317,22 +1248,21 @@
 
         // Was our config's class overridden already?
         if (exceptionConfig.getClass().equals(ExceptionConfig.class)) {
-
             // Ensure that our config is using the correct class
             if (!baseConfig.getClass().equals(exceptionConfig.getClass())) {
-
                 // Replace the config with an instance of the correct class
                 ExceptionConfig newExceptionConfig = null;
                 String baseConfigClassName = baseConfig.getClass().getName();
+
                 try {
-                    newExceptionConfig =
-                            (ExceptionConfig) RequestUtils.applicationInstance(
-                                    baseConfigClassName);
+                    newExceptionConfig = (ExceptionConfig) RequestUtils
+                            .applicationInstance(baseConfigClassName);
 
                     // copy the values
                     BeanUtils.copyProperties(newExceptionConfig,
                             exceptionConfig);
-                } catch (Exception e) {
+                }
+                catch (Exception e) {
                     handleCreationException(baseConfigClassName, e);
                 }
 
@@ -1341,33 +1271,31 @@
                 moduleConfig.addExceptionConfig(newExceptionConfig);
                 exceptionConfig = newExceptionConfig;
             }
-
         }
 
         return exceptionConfig;
     }
 
-
     /**
      * <p>Initialize the action configs for the specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.3
      */
-    protected void initModuleActions
-        (ModuleConfig config) throws ServletException {
-
+    protected void initModuleActions(ModuleConfig config)
+            throws ServletException {
         if (log.isDebugEnabled()) {
-            log.debug("Initializing module path '"
-                    + config.getPrefix() + "' action configs");
+            log.debug("Initializing module path '" + config.getPrefix()
+                    + "' action configs");
         }
 
         // Process ActionConfig extensions.
         ActionConfig[] actionConfigs = config.findActionConfigs();
+
         for (int i = 0; i < actionConfigs.length; i++) {
             ActionConfig actionConfig = actionConfigs[i];
+
             processActionConfigExtension(actionConfig, config);
         }
 
@@ -1377,37 +1305,36 @@
             // Verify that required fields are all present for the forward
             // configs
             ForwardConfig[] forwards = actionConfig.findForwardConfigs();
+
             for (int j = 0; j < forwards.length; j++) {
                 ForwardConfig forward = forwards[j];
 
                 if (forward.getPath() == null) {
-                    handleValueRequiredException("path",
-                            forward.getName(), "action forward");
+                    handleValueRequiredException("path", forward.getName(),
+                            "action forward");
                 }
             }
 
             // ... and the exception configs
-            ExceptionConfig[] exceptions = actionConfig.findExceptionConfigs();
+            ExceptionConfig[] exceptions =
+                    actionConfig.findExceptionConfigs();
+
             for (int j = 0; j < exceptions.length; j++) {
                 ExceptionConfig exception = exceptions[j];
 
                 if (exception.getKey() == null) {
-                    handleValueRequiredException("key",
-                            exception.getType(), "action exception config");
+                    handleValueRequiredException("key", exception.getType(),
+                            "action exception config");
                 }
             }
-
         }
-
     }
 
-
     /**
      * <p>Extend the action's configuration as necessary.</p>
      *
-     * @param actionConfig  the configuration to process.
-     * @param moduleConfig  the module configuration for this module.
-     *
+     * @param actionConfig the configuration to process.
+     * @param moduleConfig the module configuration for this module.
      * @throws ServletException if initialization cannot be performed.
      */
     protected void processActionConfigExtension(ActionConfig actionConfig,
@@ -1420,46 +1347,46 @@
                             + actionConfig.getPath() + "'");
                 }
 
-                actionConfig =
-                        processActionConfigClass(actionConfig, moduleConfig);
+                actionConfig = processActionConfigClass(actionConfig,
+                        moduleConfig);
 
                 actionConfig.processExtends(moduleConfig);
             }
-        } catch (ServletException e) {
+        }
+        catch (ServletException e) {
             throw e;
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             handleGeneralExtensionException("Action",
-                    actionConfig.getPath(), e);
+                    actionConfig.getPath(),
+                    e);
         }
     }
 
-
     /**
-     * <p>Checks if the current actionConfig is using the correct class based on
-     * the class of its ancestor ActionConfig.</p>
+     * <p>Checks if the current actionConfig is using the correct class based
+     * on the class of its ancestor ActionConfig.</p>
      *
-     * @param actionConfig  The action config to check.
-     * @param moduleConfig  The config for the current module.
-     *
-     * @return  The config object using the correct class as determined
-     *          by the config's ancestor and its own overridden value.
-     *
-     * @throws ServletException if an instance of the action config
-     *          class cannot be created.
+     * @param actionConfig The action config to check.
+     * @param moduleConfig The config for the current module.
+     * @return The config object using the correct class as determined by the
+     *         config's ancestor and its own overridden value.
+     * @throws ServletException if an instance of the action config class
+     *                          cannot be created.
      */
-    protected ActionConfig processActionConfigClass(
-            ActionConfig actionConfig,
-            ModuleConfig moduleConfig)
-                throws ServletException {
+    protected ActionConfig processActionConfigClass(ActionConfig actionConfig,
+                                                    ModuleConfig moduleConfig)
+            throws ServletException {
         String ancestor = actionConfig.getExtends();
+
         if (ancestor == null) {
             // Nothing to do, then
             return actionConfig;
         }
 
         // Make sure that this config is of the right class
-        ActionConfig baseConfig =
-                moduleConfig.findActionConfig(ancestor);
+        ActionConfig baseConfig = moduleConfig.findActionConfig(ancestor);
+
         if (baseConfig == null) {
             throw new UnavailableException("Unable to find "
                     + "action config for '" + ancestor + "' to extend.");
@@ -1467,17 +1394,15 @@
 
         // Was our actionConfig's class overridden already?
         if (actionConfig.getClass().equals(ActionMapping.class)) {
-
             // Ensure that our config is using the correct class
             if (!baseConfig.getClass().equals(actionConfig.getClass())) {
-
                 // Replace the config with an instance of the correct class
                 ActionConfig newActionConfig = null;
                 String baseConfigClassName = baseConfig.getClass().getName();
+
                 try {
-                    newActionConfig = (ActionConfig)
-                                        RequestUtils.applicationInstance(
-                                                baseConfigClassName);
+                    newActionConfig = (ActionConfig) RequestUtils
+                            .applicationInstance(baseConfigClassName);
 
                     // copy the values
                     BeanUtils.copyProperties(newActionConfig, actionConfig);
@@ -1485,16 +1410,19 @@
                     // copy the forward and exception configs, too
                     ForwardConfig[] forwards =
                             actionConfig.findForwardConfigs();
+
                     for (int i = 0; i < forwards.length; i++) {
                         newActionConfig.addForwardConfig(forwards[i]);
                     }
 
-                    ExceptionConfig[] exceptions =
-                            actionConfig.findExceptionConfigs();
+                    ExceptionConfig[] exceptions = actionConfig
+                            .findExceptionConfigs();
+
                     for (int i = 0; i < exceptions.length; i++) {
                         newActionConfig.addExceptionConfig(exceptions[i]);
                     }
-                } catch (Exception e) {
+                }
+                catch (Exception e) {
                     handleCreationException(baseConfigClassName, e);
                 }
 
@@ -1503,74 +1431,68 @@
                 moduleConfig.addActionConfig(newActionConfig);
                 actionConfig = newActionConfig;
             }
-
         }
 
         return actionConfig;
     }
 
-
     /**
      * <p>Initialize the application <code>MessageResources</code> for the
      * specified module.</p>
      *
      * @param config ModuleConfig information for this module
-     *
-     * @exception ServletException if initialization cannot be performed
+     * @throws ServletException if initialization cannot be performed
      * @since Struts 1.1
      */
     protected void initModuleMessageResources(ModuleConfig config)
-        throws ServletException {
-
+            throws ServletException {
         MessageResourcesConfig[] mrcs = config.findMessageResourcesConfigs();
+
         for (int i = 0; i < mrcs.length; i++) {
             if ((mrcs[i].getFactory() == null)
-                || (mrcs[i].getParameter() == null)) {
+                    || (mrcs[i].getParameter() == null)) {
                 continue;
             }
+
             if (log.isDebugEnabled()) {
-                log.debug(
-                    "Initializing module path '"
-                        + config.getPrefix()
+                log.debug("Initializing module path '" + config.getPrefix()
                         + "' message resources from '"
                         + mrcs[i].getParameter()
                         + "'");
             }
 
             String factory = mrcs[i].getFactory();
+
             MessageResourcesFactory.setFactoryClass(factory);
-            MessageResourcesFactory factoryObject =
-                MessageResourcesFactory.createFactory();
+
+            MessageResourcesFactory factoryObject = MessageResourcesFactory
+                    .createFactory();
+
             factoryObject.setConfig(mrcs[i]);
 
-            MessageResources resources =
-                factoryObject.createResources(mrcs[i].getParameter());
+            MessageResources resources = factoryObject.createResources(mrcs[i]
+                    .getParameter());
+
             resources.setReturnNull(mrcs[i].getNull());
             resources.setEscape(mrcs[i].isEscape());
-            getServletContext().setAttribute(
-                mrcs[i].getKey() + config.getPrefix(),
-                resources);
+            getServletContext().setAttribute(mrcs[i].getKey()
+                    + config.getPrefix(), resources);
         }
-
     }
 
-
     /**
-     * <p>Create (if needed) and return a new <code>Digester</code>
-     * instance that has been initialized to process Struts module
-     * configuration files and configure a corresponding
-     * <code>ModuleConfig</code> object (which must be pushed on to the
-     * evaluation stack before parsing begins).</p>
+     * <p>Create (if needed) and return a new <code>Digester</code> instance
+     * that has been initialized to process Struts module configuration files
+     * and configure a corresponding <code>ModuleConfig</code> object (which
+     * must be pushed on to the evaluation stack before parsing begins).</p>
      *
      * @return A new configured <code>Digester</code> instance.
-     *
-     * @exception ServletException if a Digester cannot be configured
+     * @throws ServletException if a Digester cannot be configured
      * @since Struts 1.1
      */
-    protected Digester initConfigDigester() throws ServletException {
-
+    protected Digester initConfigDigester()
+            throws ServletException {
         // :FIXME: Where can ServletException be thrown?
-
         // Do we have an existing instance?
         if (configDigester != null) {
             return (configDigester);
@@ -1585,6 +1507,7 @@
 
         for (int i = 0; i < registrations.length; i += 2) {
             URL url = this.getClass().getResource(registrations[i + 1]);
+
             if (url != null) {
                 configDigester.register(registrations[i], url.toString());
             }
@@ -1596,24 +1519,27 @@
         return (configDigester);
     }
 
-
     /**
-     * <p>Add any custom RuleSet instances to configDigester that have
-     * been specified in the <code>rulesets</code> init parameter.</p>
+     * <p>Add any custom RuleSet instances to configDigester that have been
+     * specified in the <code>rulesets</code> init parameter.</p>
      *
      * @throws ServletException if an error occurs
      */
-    private void addRuleSets() throws ServletException {
-
+    private void addRuleSets()
+            throws ServletException {
         String rulesets = getServletConfig().getInitParameter("rulesets");
+
         if (rulesets == null) {
             rulesets = "";
         }
 
         rulesets = rulesets.trim();
+
         String ruleset = null;
+
         while (rulesets.length() > 0) {
             int comma = rulesets.indexOf(",");
+
             if (comma < 0) {
                 ruleset = rulesets.trim();
                 rulesets = "";
@@ -1630,15 +1556,16 @@
             try {
                 RuleSet instance =
                         (RuleSet) RequestUtils.applicationInstance(ruleset);
+
                 this.configDigester.addRuleSet(instance);
-            } catch (Exception e) {
+            }
+            catch (Exception e) {
                 log.error("Exception configuring custom Digester RuleSet", e);
                 throw new ServletException(e);
             }
         }
     }
 
-
     /**
      * <p>Check the status of the <code>validating</code> initialization
      * parameter.</p>
@@ -1646,58 +1573,54 @@
      * @return true if the module Digester should validate.
      */
     private boolean isValidating() {
-
         boolean validating = true;
         String value = getServletConfig().getInitParameter("validating");
 
-        if ("false".equalsIgnoreCase(value)
-            || "no".equalsIgnoreCase(value)
-            || "n".equalsIgnoreCase(value)
-            || "0".equalsIgnoreCase(value)) {
-
+        if ("false".equalsIgnoreCase(value) || "no".equalsIgnoreCase(value)
+                || "n".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value))
+        {
             validating = false;
         }
 
         return validating;
     }
 
-
-
     /**
      * <p>Initialize our internal MessageResources bundle.</p>
      *
-     * @exception ServletException if we cannot initialize these resources
+     * @throws ServletException if we cannot initialize these resources
      */
-    protected void initInternal() throws ServletException {
-
+    protected void initInternal()
+            throws ServletException {
         // :FIXME: Document UnavailableException
-
         try {
             internal = MessageResources.getMessageResources(internalName);
-        } catch (MissingResourceException e) {
-            log.error("Cannot load internal resources from '"
-                    + internalName + "'", e);
-            throw new UnavailableException
-                ("Cannot load internal resources from '" + internalName + "'");
         }
-
+        catch (MissingResourceException e) {
+            log.error("Cannot load internal resources from '" + internalName
+                    + "'", e);
+            throw new UnavailableException(
+                    "Cannot load internal resources from '" + internalName
+                            + "'");
+        }
     }
 
-
     /**
      * <p>Parse the configuration documents specified by the
-     * <code>chainConfig</code> init-param to configure the default
-     * {@link org.apache.commons.chain.Catalog} that is registered in the {@link CatalogFactory}
-     * instance for this application.</p>
+     * <code>chainConfig</code> init-param to configure the default {@link
+     * org.apache.commons.chain.Catalog} that is registered in the {@link
+     * CatalogFactory} instance for this application.</p>
      *
      * @throws ServletException if an error occurs.
      */
-    protected void initChain() throws ServletException {
-
+    protected void initChain()
+            throws ServletException {
         // Parse the configuration file specified by path or resource
         try {
             String value = null;
+
             value = getServletConfig().getInitParameter("chainConfig");
+
             if (value != null) {
                 chainConfig = value;
             }
@@ -1705,29 +1628,31 @@
             ConfigParser parser = new ConfigParser();
             List urls = splitAndResolvePaths(chainConfig);
             URL resource = null;
+
             for (Iterator i = urls.iterator(); i.hasNext();) {
                 resource = (URL) i.next();
                 log.info("Loading chain catalog from " + resource);
                 parser.parse(resource);
             }
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             log.error("Exception loading resources", e);
             throw new ServletException(e);
         }
     }
 
-
-
-
     /**
-     * <p>Initialize other global characteristics of the controller servlet.</p>
+     * <p>Initialize other global characteristics of the controller
+     * servlet.</p>
      *
-     * @exception ServletException if we cannot initialize these resources
+     * @throws ServletException if we cannot initialize these resources
      */
-    protected void initOther() throws ServletException {
-
+    protected void initOther()
+            throws ServletException {
         String value = null;
+
         value = getServletConfig().getInitParameter("config");
+
         if (value != null) {
             config = value;
         }
@@ -1735,49 +1660,46 @@
         // Backwards compatibility for form beans of Java wrapper classes
         // Set to true for strict Struts 1.0 compatibility
         value = getServletConfig().getInitParameter("convertNull");
-        if ("true".equalsIgnoreCase(value)
-            || "yes".equalsIgnoreCase(value)
-            || "on".equalsIgnoreCase(value)
-            || "y".equalsIgnoreCase(value)
-            || "1".equalsIgnoreCase(value)) {
 
+        if ("true".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value)
+                || "on".equalsIgnoreCase(value) || "y".equalsIgnoreCase(value)
+                || "1".equalsIgnoreCase(value)) {
             convertNull = true;
         }
 
         if (convertNull) {
             ConvertUtils.deregister();
-            ConvertUtils.register(
-                    new BigDecimalConverter(null), BigDecimal.class);
-            ConvertUtils.register(
-                    new BigIntegerConverter(null), BigInteger.class);
+            ConvertUtils.register(new BigDecimalConverter(null),
+                    BigDecimal.class);
+            ConvertUtils.register(new BigIntegerConverter(null),
+                    BigInteger.class);
             ConvertUtils.register(new BooleanConverter(null), Boolean.class);
             ConvertUtils.register(new ByteConverter(null), Byte.class);
-            ConvertUtils.register(
-                    new CharacterConverter(null), Character.class);
+            ConvertUtils
+                    .register(new CharacterConverter(null), Character.class);
             ConvertUtils.register(new DoubleConverter(null), Double.class);
             ConvertUtils.register(new FloatConverter(null), Float.class);
             ConvertUtils.register(new IntegerConverter(null), Integer.class);
             ConvertUtils.register(new LongConverter(null), Long.class);
             ConvertUtils.register(new ShortConverter(null), Short.class);
         }
-
     }
 
-
     /**
-     * <p>Initialize the servlet mapping under which our controller servlet
-     * is being accessed.  This will be used in the <code>&html:form&gt;</code>
+     * <p>Initialize the servlet mapping under which our controller servlet is
+     * being accessed.  This will be used in the <code>&html:form&gt;</code>
      * tag to generate correct destination URLs for form submissions.</p>
      *
      * @throws ServletException if error happens while scanning web.xml
      */
-    protected void initServlet() throws ServletException {
-
+    protected void initServlet()
+            throws ServletException {
         // Remember our servlet name
         this.servletName = getServletConfig().getServletName();
 
         // Prepare a Digester to scan the web application deployment descriptor
         Digester digester = new Digester();
+
         digester.push(this);
         digester.setNamespaceAware(true);
         digester.setValidating(false);
@@ -1785,6 +1707,7 @@
         // Register our local copy of the DTDs that we can find
         for (int i = 0; i < registrations.length; i += 2) {
             URL url = this.getClass().getResource(registrations[i + 1]);
+
             if (url != null) {
                 digester.register(registrations[i], url.toString());
             }
@@ -1792,7 +1715,8 @@
 
         // Configure the processing rules that we need
         digester.addCallMethod("web-app/servlet-mapping",
-                               "addServletMapping", 2);
+                "addServletMapping",
+                2);
         digester.addCallParam("web-app/servlet-mapping/servlet-name", 0);
         digester.addCallParam("web-app/servlet-mapping/url-pattern", 1);
 
@@ -1802,7 +1726,7 @@
         }
 
         InputStream input =
-            getServletContext().getResourceAsStream("/WEB-INF/web.xml");
+                getServletContext().getResourceAsStream("/WEB-INF/web.xml");
 
         if (input == null) {
             log.error(internal.getMessage("configWebXml"));
@@ -1811,19 +1735,20 @@
 
         try {
             digester.parse(input);
-
-        } catch (IOException e) {
+        }
+        catch (IOException e) {
             log.error(internal.getMessage("configWebXml"), e);
             throw new ServletException(e);
-
-        } catch (SAXException e) {
+        }
+        catch (SAXException e) {
             log.error(internal.getMessage("configWebXml"), e);
             throw new ServletException(e);
-
-        } finally {
+        }
+        finally {
             try {
                 input.close();
-            } catch (IOException e) {
+            }
+            catch (IOException e) {
                 log.error(internal.getMessage("configWebXml"), e);
                 throw new ServletException(e);
             }
@@ -1836,39 +1761,42 @@
         }
 
         if (servletMapping != null) {
-            getServletContext().setAttribute(Globals.SERVLET_KEY,
-                    servletMapping);
+            getServletContext()
+                    .setAttribute(Globals.SERVLET_KEY, servletMapping);
         }
-
     }
 
     /**
-     *  Takes a comma-delimited string and splits it into paths, then resolves
-     *  those paths using the ServletContext and appropriate ClassLoader.  When
-     *  loading from the classloader, multiple resources per path are supported
-     *  to support, for example, multiple jars containing the same named config
-     *  file.
+     * Takes a comma-delimited string and splits it into paths, then resolves
+     * those paths using the ServletContext and appropriate ClassLoader.  When
+     * loading from the classloader, multiple resources per path are supported
+     * to support, for example, multiple jars containing the same named config
+     * file.
      *
      * @param paths A comma-delimited string of paths
      * @return A list of resolved URL's for all found resources
-     *
-     * @exception ServletException if a servlet exception is thrown
+     * @throws ServletException if a servlet exception is thrown
      */
-    protected List splitAndResolvePaths(String paths) throws ServletException {
+    protected List splitAndResolvePaths(String paths)
+            throws ServletException {
         ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
         if (loader == null) {
             loader = this.getClass().getClassLoader();
         }
+
         ArrayList resolvedUrls = new ArrayList();
 
         URL resource;
         String path = null;
+
         try {
-            
             // Process each specified resource path
             while (paths.length() > 0) {
                 resource = null;
+
                 int comma = paths.indexOf(',');
+
                 if (comma >= 0) {
                     path = paths.substring(0, comma).trim();
                     paths = paths.substring(comma + 1);
@@ -1891,9 +1819,13 @@
                                 + " in the servlet context, "

[... 67 lines stripped ...]


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org