This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 5af15c15c4 Code clean-up - formatting. No functional change.
5af15c15c4 is described below

commit 5af15c15c4191a3bb84e64216e14bb291b7c6478
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu May 22 17:12:03 2025 +0100

    Code clean-up - formatting. No functional change.
---
 .../digester/AbstractObjectCreationFactory.java    |  24 +-
 .../apache/tomcat/util/digester/ArrayStack.java    |  70 +--
 .../tomcat/util/digester/CallMethodRule.java       | 198 ++++----
 .../apache/tomcat/util/digester/CallParamRule.java |  66 +--
 java/org/apache/tomcat/util/digester/Digester.java | 550 ++++++++++-----------
 .../tomcat/util/digester/DocumentProperties.java   |   6 +-
 .../util/digester/EnvironmentPropertySource.java   |  19 +-
 .../tomcat/util/digester/FactoryCreateRule.java    |  50 +-
 .../tomcat/util/digester/ObjectCreateRule.java     |  39 +-
 .../util/digester/ObjectCreationFactory.java       |  25 +-
 java/org/apache/tomcat/util/digester/Rule.java     |  64 ++-
 java/org/apache/tomcat/util/digester/RuleSet.java  |  31 +-
 java/org/apache/tomcat/util/digester/Rules.java    |  36 +-
 .../org/apache/tomcat/util/digester/RulesBase.java |  80 ++-
 .../digester/ServiceBindingPropertySource.java     |  37 +-
 .../apache/tomcat/util/digester/SetNextRule.java   |  88 ++--
 .../tomcat/util/digester/SetPropertiesRule.java    |  25 +-
 .../tomcat/util/digester/SystemPropertySource.java |   5 +-
 18 files changed, 656 insertions(+), 757 deletions(-)

diff --git 
a/java/org/apache/tomcat/util/digester/AbstractObjectCreationFactory.java 
b/java/org/apache/tomcat/util/digester/AbstractObjectCreationFactory.java
index 01faa5347c..4c647fa766 100644
--- a/java/org/apache/tomcat/util/digester/AbstractObjectCreationFactory.java
+++ b/java/org/apache/tomcat/util/digester/AbstractObjectCreationFactory.java
@@ -21,19 +21,18 @@ import org.xml.sax.Attributes;
 
 
 /**
- * <p>Abstract base class for <code>ObjectCreationFactory</code>
- * implementations.</p>
+ * <p>
+ * Abstract base class for <code>ObjectCreationFactory</code> implementations.
+ * </p>
  */
-public abstract class AbstractObjectCreationFactory
-        implements ObjectCreationFactory {
+public abstract class AbstractObjectCreationFactory implements 
ObjectCreationFactory {
 
 
     // ----------------------------------------------------- Instance Variables
 
 
     /**
-     * The associated <code>Digester</code> instance that was set up by
-     * {@link FactoryCreateRule} upon initialization.
+     * The associated <code>Digester</code> instance that was set up by {@link 
FactoryCreateRule} upon initialization.
      */
     private Digester digester = null;
 
@@ -42,8 +41,8 @@ public abstract class AbstractObjectCreationFactory
 
 
     /**
-     * <p>Factory method called by {@link FactoryCreateRule} to supply an
-     * object based on the element's attributes.
+     * <p>
+     * Factory method called by {@link FactoryCreateRule} to supply an object 
based on the element's attributes.
      *
      * @param attributes the element's attributes
      *
@@ -54,8 +53,8 @@ public abstract class AbstractObjectCreationFactory
 
 
     /**
-     * <p>Returns the {@link Digester} that was set by the
-     * {@link FactoryCreateRule} upon initialization.
+     * <p>
+     * Returns the {@link Digester} that was set by the {@link 
FactoryCreateRule} upon initialization.
      */
     @Override
     public Digester getDigester() {
@@ -64,8 +63,9 @@ public abstract class AbstractObjectCreationFactory
 
 
     /**
-     * <p>Set the {@link Digester} to allow the implementation to do logging,
-     * classloading based on the digester's classloader, etc.
+     * <p>
+     * Set the {@link Digester} to allow the implementation to do logging, 
classloading based on the digester's
+     * classloader, etc.
      *
      * @param digester parent Digester object
      */
diff --git a/java/org/apache/tomcat/util/digester/ArrayStack.java 
b/java/org/apache/tomcat/util/digester/ArrayStack.java
index d3801f389f..009757a8c6 100644
--- a/java/org/apache/tomcat/util/digester/ArrayStack.java
+++ b/java/org/apache/tomcat/util/digester/ArrayStack.java
@@ -20,27 +20,28 @@ import java.util.ArrayList;
 import java.util.EmptyStackException;
 
 /**
- * <p>Imported copy of the <code>ArrayStack</code> class from
- * Commons Collections, which was the only direct dependency from Digester.</p>
- *
- * <p><strong>WARNING</strong> - This class is public solely to allow it to be
- * used from subpackages of <code>org.apache.commons.digester</code>.
- * It should not be considered part of the public API of Commons Digester.
- * If you want to use such a class yourself, you should use the one from
- * Commons Collections directly.</p>
- *
- * <p>An implementation of the {@link java.util.Stack} API that is based on an
- * <code>ArrayList</code> instead of a <code>Vector</code>, so it is not
- * synchronized to protect against multi-threaded access.  The implementation
- * is therefore operates faster in environments where you do not need to
- * worry about multiple thread contention.</p>
- *
- * <p>Unlike <code>Stack</code>, <code>ArrayStack</code> accepts null entries.
+ * <p>
+ * Imported copy of the <code>ArrayStack</code> class from Commons 
Collections, which was the only direct dependency
+ * from Digester.
+ * </p>
+ * <p>
+ * <strong>WARNING</strong> - This class is public solely to allow it to be 
used from subpackages of
+ * <code>org.apache.commons.digester</code>. It should not be considered part 
of the public API of Commons Digester. If
+ * you want to use such a class yourself, you should use the one from Commons 
Collections directly.
+ * </p>
+ * <p>
+ * An implementation of the {@link java.util.Stack} API that is based on an 
<code>ArrayList</code> instead of a
+ * <code>Vector</code>, so it is not synchronized to protect against 
multi-threaded access. The implementation is
+ * therefore operates faster in environments where you do not need to worry 
about multiple thread contention.
+ * </p>
+ * <p>
+ * Unlike <code>Stack</code>, <code>ArrayStack</code> accepts null entries.
  * </p>
  *
  * @param <E> Type of object in this stack
  *
  * @see java.util.Stack
+ *
  * @since Digester 1.6 (from Commons Collections 1.0)
  */
 public class ArrayStack<E> extends ArrayList<E> {
@@ -49,8 +50,8 @@ public class ArrayStack<E> extends ArrayList<E> {
     private static final long serialVersionUID = 2130079159931574599L;
 
     /**
-     * Constructs a new empty <code>ArrayStack</code>. The initial size
-     * is controlled by <code>ArrayList</code> and is currently 10.
+     * Constructs a new empty <code>ArrayStack</code>. The initial size is 
controlled by <code>ArrayList</code> and is
+     * currently 10.
      */
     public ArrayStack() {
         super();
@@ -59,9 +60,9 @@ public class ArrayStack<E> extends ArrayList<E> {
     /**
      * Constructs a new empty <code>ArrayStack</code> with an initial size.
      *
-     * @param initialSize  the initial size to use
-     * @throws IllegalArgumentException  if the specified initial size
-     *  is negative
+     * @param initialSize the initial size to use
+     *
+     * @throws IllegalArgumentException if the specified initial size is 
negative
      */
     public ArrayStack(int initialSize) {
         super(initialSize);
@@ -70,8 +71,8 @@ public class ArrayStack<E> extends ArrayList<E> {
     /**
      * Return <code>true</code> if this stack is currently empty.
      * <p>
-     * This method exists for compatibility with <code>java.util.Stack</code>.
-     * New users of this class should use <code>isEmpty</code> instead.
+     * This method exists for compatibility with <code>java.util.Stack</code>. 
New users of this class should use
+     * <code>isEmpty</code> instead.
      *
      * @return true if the stack is currently empty
      */
@@ -83,7 +84,8 @@ public class ArrayStack<E> extends ArrayList<E> {
      * Returns the top item off of this stack without removing it.
      *
      * @return the top item on the stack
-     * @throws EmptyStackException  if the stack is empty
+     *
+     * @throws EmptyStackException if the stack is empty
      */
     public E peek() throws EmptyStackException {
         int n = size();
@@ -95,13 +97,13 @@ public class ArrayStack<E> extends ArrayList<E> {
     }
 
     /**
-     * Returns the n'th item down (zero-relative) from the top of this
-     * stack without removing it.
+     * Returns the n'th item down (zero-relative) from the top of this stack 
without removing it.
+     *
+     * @param n the number of items down to go
      *
-     * @param n  the number of items down to go
      * @return the n'th item on the stack, zero relative
-     * @throws EmptyStackException  if there are not enough items on the
-     *  stack to satisfy this request
+     *
+     * @throws EmptyStackException if there are not enough items on the stack 
to satisfy this request
      */
     public E peek(int n) throws EmptyStackException {
         int m = (size() - n) - 1;
@@ -116,7 +118,8 @@ public class ArrayStack<E> extends ArrayList<E> {
      * Pops the top item off of this stack and return it.
      *
      * @return the top item on the stack
-     * @throws EmptyStackException  if the stack is empty
+     *
+     * @throws EmptyStackException if the stack is empty
      */
     public E pop() throws EmptyStackException {
         int n = size();
@@ -128,10 +131,11 @@ public class ArrayStack<E> extends ArrayList<E> {
     }
 
     /**
-     * Pushes a new item onto the top of this stack. The pushed item is also
-     * returned. This is equivalent to calling <code>add</code>.
+     * Pushes a new item onto the top of this stack. The pushed item is also 
returned. This is equivalent to calling
+     * <code>add</code>.
+     *
+     * @param item the item to be added
      *
-     * @param item  the item to be added
      * @return the item just pushed
      */
     public E push(E item) {
diff --git a/java/org/apache/tomcat/util/digester/CallMethodRule.java 
b/java/org/apache/tomcat/util/digester/CallMethodRule.java
index 6dc429f4d0..e2200350c3 100644
--- a/java/org/apache/tomcat/util/digester/CallMethodRule.java
+++ b/java/org/apache/tomcat/util/digester/CallMethodRule.java
@@ -22,56 +22,48 @@ import org.apache.tomcat.util.IntrospectionUtils;
 import org.xml.sax.Attributes;
 
 /**
- * <p>Rule implementation that calls a method on an object on the stack
- * (normally the top/parent object), passing arguments collected from
- * subsequent <code>CallParamRule</code> rules or from the body of this
- * element. </p>
- *
- * <p>By using {@link #CallMethodRule(String methodName)}
- * a method call can be made to a method which accepts no
- * arguments.</p>
- *
- * <p>Incompatible method parameter types are converted
- * using <code>org.apache.commons.beanutils.ConvertUtils</code>.
+ * <p>
+ * Rule implementation that calls a method on an object on the stack (normally 
the top/parent object), passing arguments
+ * collected from subsequent <code>CallParamRule</code> rules or from the body 
of this element.
  * </p>
- *
- * <p>This rule now uses
+ * <p>
+ * By using {@link #CallMethodRule(String methodName)} a method call can be 
made to a method which accepts no arguments.
+ * </p>
+ * <p>
+ * Incompatible method parameter types are converted using 
<code>org.apache.commons.beanutils.ConvertUtils</code>.
+ * </p>
+ * <p>
+ * This rule now uses
  * <a 
href="https://commons.apache.org/beanutils/apidocs/org/apache/commons/beanutils/MethodUtils.html";>
- * org.apache.commons.beanutils.MethodUtils#invokeMethod
- * </a> by default.
- * This increases the kinds of methods successfully and allows primitives
- * to be matched by passing in wrapper classes.
- * There are rare cases when 
org.apache.commons.beanutils.MethodUtils#invokeExactMethod
- * (the old default) is required.
- * This method is much stricter in its reflection.
- * Setting the <code>UseExactMatch</code> to true reverts to the use of this
- * method.</p>
- *
- * <p>Note that the target method is invoked when the  <i>end</i> of
- * the tag the CallMethodRule fired on is encountered, <i>not</i> when the
- * last parameter becomes available. This implies that rules which fire on
- * tags nested within the one associated with the CallMethodRule will
- * fire before the CallMethodRule invokes the target method. This behaviour is
- * not configurable. </p>
- *
- * <p>Note also that if a CallMethodRule is expecting exactly one parameter
- * and that parameter is not available (e.g. CallParamRule is used with an
- * attribute name but the attribute does not exist) then the method will
- * not be invoked. If a CallMethodRule is expecting more than one parameter,
- * then it is always invoked, regardless of whether the parameters were
- * available or not (missing parameters are passed as null values).</p>
+ * org.apache.commons.beanutils.MethodUtils#invokeMethod </a> by default. This 
increases the kinds of methods
+ * successfully and allows primitives to be matched by passing in wrapper 
classes. There are rare cases when
+ * org.apache.commons.beanutils.MethodUtils#invokeExactMethod (the old 
default) is required. This method is much
+ * stricter in its reflection. Setting the <code>UseExactMatch</code> to true 
reverts to the use of this method.
+ * </p>
+ * <p>
+ * Note that the target method is invoked when the <i>end</i> of the tag the 
CallMethodRule fired on is encountered,
+ * <i>not</i> when the last parameter becomes available. This implies that 
rules which fire on tags nested within the
+ * one associated with the CallMethodRule will fire before the CallMethodRule 
invokes the target method. This behaviour
+ * is not configurable.
+ * </p>
+ * <p>
+ * Note also that if a CallMethodRule is expecting exactly one parameter and 
that parameter is not available (e.g.
+ * CallParamRule is used with an attribute name but the attribute does not 
exist) then the method will not be invoked.
+ * If a CallMethodRule is expecting more than one parameter, then it is always 
invoked, regardless of whether the
+ * parameters were available or not (missing parameters are passed as null 
values).
+ * </p>
  */
 public class CallMethodRule extends Rule {
 
     // ----------------------------------------------------------- Constructors
 
     /**
-     * Construct a "call method" rule with the specified method name.  The
-     * parameter types (if any) default to java.lang.String.
+     * Construct a "call method" rule with the specified method name. The 
parameter types (if any) default to
+     * java.lang.String.
      *
      * @param methodName Method name of the parent method to call
-     * @param paramCount The number of parameters to collect, or
-     *  zero for a single argument from the body of this element.
+     * @param paramCount The number of parameters to collect, or zero for a 
single argument from the body of this
+     *                       element.
      */
     public CallMethodRule(String methodName, int paramCount) {
         this(0, methodName, paramCount);
@@ -79,16 +71,15 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * Construct a "call method" rule with the specified method name.  The
-     * parameter types (if any) default to java.lang.String.
+     * Construct a "call method" rule with the specified method name. The 
parameter types (if any) default to
+     * java.lang.String.
      *
-     * @param targetOffset location of the target object. Positive numbers are
-     * relative to the top of the digester object stack. Negative numbers
-     * are relative to the bottom of the stack. Zero implies the top
-     * object on the stack.
-     * @param methodName Method name of the parent method to call
-     * @param paramCount The number of parameters to collect, or
-     *  zero for a single argument from the body of this element.
+     * @param targetOffset location of the target object. Positive numbers are 
relative to the top of the digester
+     *                         object stack. Negative numbers are relative to 
the bottom of the stack. Zero implies the
+     *                         top object on the stack.
+     * @param methodName   Method name of the parent method to call
+     * @param paramCount   The number of parameters to collect, or zero for a 
single argument from the body of this
+     *                         element.
      */
     public CallMethodRule(int targetOffset, String methodName, int paramCount) 
{
         this.targetOffset = targetOffset;
@@ -104,8 +95,7 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * Construct a "call method" rule with the specified method name.
-     * The method should accept no parameters.
+     * Construct a "call method" rule with the specified method name. The 
method should accept no parameters.
      *
      * @param methodName Method name of the parent method to call
      */
@@ -115,27 +105,21 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * Construct a "call method" rule with the specified method name and
-     * parameter types. If <code>paramCount</code> is set to zero the rule
-     * will use the body of this element as the single argument of the
-     * method, unless <code>paramTypes</code> is null or empty, in this
-     * case the rule will call the specified method with no arguments.
+     * Construct a "call method" rule with the specified method name and 
parameter types. If <code>paramCount</code> is
+     * set to zero the rule will use the body of this element as the single 
argument of the method, unless
+     * <code>paramTypes</code> is null or empty, in this case the rule will 
call the specified method with no arguments.
      *
-     * @param targetOffset location of the target object. Positive numbers are
-     * relative to the top of the digester object stack. Negative numbers
-     * are relative to the bottom of the stack. Zero implies the top
-     * object on the stack.
-     * @param methodName Method name of the parent method to call
-     * @param paramCount The number of parameters to collect, or
-     *  zero for a single argument from the body of this element
-     * @param paramTypes The Java classes that represent the
-     *  parameter types of the method arguments
-     *  (if you wish to use a primitive type, specify the corresponding
-     *  Java wrapper class instead, such as <code>java.lang.Boolean.TYPE</code>
-     *  for a <code>boolean</code> parameter)
+     * @param targetOffset location of the target object. Positive numbers are 
relative to the top of the digester
+     *                         object stack. Negative numbers are relative to 
the bottom of the stack. Zero implies the
+     *                         top object on the stack.
+     * @param methodName   Method name of the parent method to call
+     * @param paramCount   The number of parameters to collect, or zero for a 
single argument from the body of this
+     *                         element
+     * @param paramTypes   The Java classes that represent the parameter types 
of the method arguments (if you wish to
+     *                         use a primitive type, specify the corresponding 
Java wrapper class instead, such as
+     *                         <code>java.lang.Boolean.TYPE</code> for a 
<code>boolean</code> parameter)
      */
-    public CallMethodRule(int targetOffset, String methodName, int paramCount,
-                          Class<?>[] paramTypes) {
+    public CallMethodRule(int targetOffset, String methodName, int paramCount, 
Class<?>[] paramTypes) {
 
         this.targetOffset = targetOffset;
         this.methodName = methodName;
@@ -159,9 +143,8 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * location of the target object for the call, relative to the
-     * top of the digester object stack. The default value of zero
-     * means the target object is the one on top of the stack.
+     * location of the target object for the call, relative to the top of the 
digester object stack. The default value
+     * of zero means the target object is the one on top of the stack.
      */
     protected final int targetOffset;
 
@@ -173,9 +156,8 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * The number of parameters to collect from <code>MethodParam</code> rules.
-     * If this value is zero, a single parameter will be collected from the
-     * body of this element.
+     * The number of parameters to collect from <code>MethodParam</code> 
rules. If this value is zero, a single
+     * parameter will be collected from the body of this element.
      */
     protected final int paramCount;
 
@@ -195,8 +177,8 @@ public class CallMethodRule extends Rule {
     // --------------------------------------------------------- Public Methods
 
     /**
-     * Should <code>MethodUtils.invokeExactMethod</code>
-     * be used for the reflection.
+     * Should <code>MethodUtils.invokeExactMethod</code> be used for the 
reflection.
+     *
      * @return <code>true</code> if invokeExactMethod is used
      */
     public boolean getUseExactMatch() {
@@ -205,8 +187,8 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * Set whether <code>MethodUtils.invokeExactMethod</code>
-     * should be used for the reflection.
+     * Set whether <code>MethodUtils.invokeExactMethod</code> should be used 
for the reflection.
+     *
      * @param useExactMatch The flag value
      */
     public void setUseExactMatch(boolean useExactMatch) {
@@ -217,16 +199,13 @@ public class CallMethodRule extends Rule {
     /**
      * Process the start of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace  the namespace URI of the matching element, or an 
empty string if the parser is not namespace
+     *                       aware or the element has no namespace
+     * @param name       the local name if the parser is namespace aware, or 
just the element name otherwise
      * @param attributes The attribute list for this element
      */
     @Override
-    public void begin(String namespace, String name, Attributes attributes)
-            throws Exception {
+    public void begin(String namespace, String name, Attributes attributes) 
throws Exception {
 
         // Push an array to capture the parameter values if necessary
         if (paramCount > 0) {
@@ -240,16 +219,13 @@ public class CallMethodRule extends Rule {
     /**
      * Process the body text of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
-     * @param bodyText The body text of this element
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
+     * @param bodyText  The body text of this element
      */
     @Override
-    public void body(String namespace, String name, String bodyText)
-            throws Exception {
+    public void body(String namespace, String name, String bodyText) throws 
Exception {
 
         if (paramCount == 0) {
             this.bodyText = bodyText.trim().intern();
@@ -261,11 +237,9 @@ public class CallMethodRule extends Rule {
     /**
      * Process the end of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
      */
     @SuppressWarnings("null") // parameters can't trigger NPE
     @Override
@@ -278,8 +252,8 @@ public class CallMethodRule extends Rule {
             parameters = (Object[]) digester.popParams();
 
             if (digester.log.isTraceEnabled()) {
-                for (int i=0,size=parameters.length;i<size;i++) {
-                    digester.log.trace("[CallMethodRule](" + i + ")" + 
parameters[i]) ;
+                for (int i = 0, size = parameters.length; i < size; i++) {
+                    digester.log.trace("[CallMethodRule](" + i + ")" + 
parameters[i]);
                 }
             }
 
@@ -314,13 +288,11 @@ public class CallMethodRule extends Rule {
             // for non-stringy param types
             Object param = parameters[i];
             // Tolerate null non-primitive values
-            if(null == param && !paramTypes[i].isPrimitive()) {
+            if (null == param && !paramTypes[i].isPrimitive()) {
                 paramValues[i] = null;
-            } else if(param instanceof String &&
-                    !String.class.isAssignableFrom(paramTypes[i])) {
+            } else if (param instanceof String && 
!String.class.isAssignableFrom(paramTypes[i])) {
 
-                paramValues[i] =
-                        IntrospectionUtils.convert((String) parameters[i], 
paramTypes[i]);
+                paramValues[i] = IntrospectionUtils.convert((String) 
parameters[i], paramTypes[i]);
             } else {
                 paramValues[i] = parameters[i];
             }
@@ -331,12 +303,12 @@ public class CallMethodRule extends Rule {
         if (targetOffset >= 0) {
             target = digester.peek(targetOffset);
         } else {
-            target = digester.peek( digester.getCount() + targetOffset );
+            target = digester.peek(digester.getCount() + targetOffset);
         }
 
         if (target == null) {
-            String sb = "[CallMethodRule]{" + digester.match + "} Call target 
is null (" +
-                    "targetOffset=" + targetOffset + ",stackdepth=" + 
digester.getCount() + ')';
+            String sb = "[CallMethodRule]{" + digester.match + "} Call target 
is null (" + "targetOffset=" +
+                    targetOffset + ",stackdepth=" + digester.getCount() + ')';
             throw new org.xml.sax.SAXException(sb);
         }
 
@@ -368,8 +340,7 @@ public class CallMethodRule extends Rule {
             sb.append(')');
             digester.log.trace(sb.toString());
         }
-        Object result = IntrospectionUtils.callMethodN(target, methodName,
-                paramValues, paramTypes);
+        Object result = IntrospectionUtils.callMethodN(target, methodName, 
paramValues, paramTypes);
         processMethodCallResult(result);
 
         StringBuilder code = digester.getGeneratedCode();
@@ -404,8 +375,7 @@ public class CallMethodRule extends Rule {
 
 
     /**
-     * Subclasses may override this method to perform additional processing of 
the
-     * invoked method's result.
+     * Subclasses may override this method to perform additional processing of 
the invoked method's result.
      *
      * @param result the Object returned by the method invoked, possibly null
      */
diff --git a/java/org/apache/tomcat/util/digester/CallParamRule.java 
b/java/org/apache/tomcat/util/digester/CallParamRule.java
index 19bf7b290b..f996ef9be9 100644
--- a/java/org/apache/tomcat/util/digester/CallParamRule.java
+++ b/java/org/apache/tomcat/util/digester/CallParamRule.java
@@ -19,15 +19,15 @@ package org.apache.tomcat.util.digester;
 import org.xml.sax.Attributes;
 
 /**
- * <p>Rule implementation that saves a parameter for use by a surrounding
- * <code>CallMethodRule</code>.</p>
- *
- * <p>This parameter may be:</p>
+ * <p>
+ * Rule implementation that saves a parameter for use by a surrounding 
<code>CallMethodRule</code>.
+ * </p>
+ * <p>
+ * This parameter may be:
+ * </p>
  * <ul>
- * <li>from an attribute of the current element
- * See {@link #CallParamRule(int paramIndex, String attributeName)}
- * <li>from current the element body
- * See {@link #CallParamRule(int paramIndex)}
+ * <li>from an attribute of the current element See {@link #CallParamRule(int 
paramIndex, String attributeName)}
+ * <li>from current the element body See {@link #CallParamRule(int paramIndex)}
  * </ul>
  */
 public class CallParamRule extends Rule {
@@ -35,8 +35,7 @@ public class CallParamRule extends Rule {
     // ----------------------------------------------------------- Constructors
 
     /**
-     * Construct a "call parameter" rule that will save the body text of this
-     * element as the parameter value.
+     * Construct a "call parameter" rule that will save the body text of this 
element as the parameter value.
      *
      * @param paramIndex The zero-relative parameter number
      */
@@ -46,20 +45,17 @@ public class CallParamRule extends Rule {
 
 
     /**
-     * Construct a "call parameter" rule that will save the value of the
-     * specified attribute as the parameter value.
+     * Construct a "call parameter" rule that will save the value of the 
specified attribute as the parameter value.
      *
-     * @param paramIndex The zero-relative parameter number
+     * @param paramIndex    The zero-relative parameter number
      * @param attributeName The name of the attribute to save
      */
-    public CallParamRule(int paramIndex,
-                         String attributeName) {
+    public CallParamRule(int paramIndex, String attributeName) {
         this(attributeName, paramIndex, 0, false);
     }
 
 
-    private CallParamRule(String attributeName, int paramIndex, int stackIndex,
-            boolean fromStack) {
+    private CallParamRule(String attributeName, int paramIndex, int 
stackIndex, boolean fromStack) {
         this.attributeName = attributeName;
         this.paramIndex = paramIndex;
         this.stackIndex = stackIndex;
@@ -93,8 +89,7 @@ public class CallParamRule extends Rule {
     protected final int stackIndex;
 
     /**
-     * Stack is used to allow nested body text to be processed.
-     * Lazy creation.
+     * Stack is used to allow nested body text to be processed. Lazy creation.
      */
     protected ArrayStack<String> bodyTextStack;
 
@@ -104,16 +99,13 @@ public class CallParamRule extends Rule {
     /**
      * Process the start of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace  the namespace URI of the matching element, or an 
empty string if the parser is not namespace
+     *                       aware or the element has no namespace
+     * @param name       the local name if the parser is namespace aware, or 
just the element name otherwise
      * @param attributes The attribute list for this element
      */
     @Override
-    public void begin(String namespace, String name, Attributes attributes)
-            throws Exception {
+    public void begin(String namespace, String name, Attributes attributes) 
throws Exception {
 
         Object param = null;
 
@@ -126,8 +118,7 @@ public class CallParamRule extends Rule {
             param = digester.peek(stackIndex);
 
             if (digester.log.isTraceEnabled()) {
-                String sb = "[CallParamRule]{" + digester.match +
-                        "} Save from stack; from stack? " + true +
+                String sb = "[CallParamRule]{" + digester.match + "} Save from 
stack; from stack? " + true +
                         "; object=" + param;
                 digester.log.trace(sb);
             }
@@ -139,7 +130,7 @@ public class CallParamRule extends Rule {
         // the instance variables will be overwritten
         // if this CallParamRule is reused in subsequent nesting.
 
-        if(param != null) {
+        if (param != null) {
             Object[] parameters = (Object[]) digester.peekParams();
             parameters[paramIndex] = param;
         }
@@ -149,16 +140,13 @@ public class CallParamRule extends Rule {
     /**
      * Process the body text of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
-     * @param bodyText The body text of this element
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
+     * @param bodyText  The body text of this element
      */
     @Override
-    public void body(String namespace, String name, String bodyText)
-            throws Exception {
+    public void body(String namespace, String name, String bodyText) throws 
Exception {
 
         if (attributeName == null && !fromStack) {
             // We must wait to set the parameter until end
@@ -189,8 +177,8 @@ public class CallParamRule extends Rule {
      */
     @Override
     public String toString() {
-        return "CallParamRule[" + "paramIndex=" + paramIndex + ", 
attributeName=" + attributeName +
-                ", from stack=" + fromStack + ']';
+        return "CallParamRule[" + "paramIndex=" + paramIndex + ", 
attributeName=" + attributeName + ", from stack=" +
+                fromStack + ']';
     }
 
 
diff --git a/java/org/apache/tomcat/util/digester/Digester.java 
b/java/org/apache/tomcat/util/digester/Digester.java
index 9334a92234..1bbe16ace1 100644
--- a/java/org/apache/tomcat/util/digester/Digester.java
+++ b/java/org/apache/tomcat/util/digester/Digester.java
@@ -63,23 +63,23 @@ import org.xml.sax.helpers.AttributesImpl;
 
 
 /**
- * <p>A <strong>Digester</strong> processes an XML input stream by matching a
- * series of element nesting patterns to execute Rules that have been added
- * prior to the start of parsing.  This package was inspired by the
- * <code>XmlMapper</code> class that was part of Tomcat 3.0 and 3.1,
- * but is organized somewhat differently.</p>
- *
- * <p>See the <a href="package-summary.html#package_description">Digester
- * Developer Guide</a> for more information.</p>
- *
- * <p><strong>IMPLEMENTATION NOTE</strong> - A single Digester instance may
- * only be used within the context of a single thread at a time, and a call
- * to <code>parse()</code> must be completed before another can be initiated
- * even from the same thread.</p>
- *
- * <p><strong>IMPLEMENTATION NOTE</strong> - A bug in Xerces 2.0.2 prevents
- * the support of XML schema. You need Xerces 2.1/2.3 and up to make
- * this class working with XML schema</p>
+ * <p>
+ * A <strong>Digester</strong> processes an XML input stream by matching a 
series of element nesting patterns to execute
+ * Rules that have been added prior to the start of parsing. This package was 
inspired by the <code>XmlMapper</code>
+ * class that was part of Tomcat 3.0 and 3.1, but is organized somewhat 
differently.
+ * </p>
+ * <p>
+ * See the <a href="package-summary.html#package_description">Digester 
Developer Guide</a> for more information.
+ * </p>
+ * <p>
+ * <strong>IMPLEMENTATION NOTE</strong> - A single Digester instance may only 
be used within the context of a single
+ * thread at a time, and a call to <code>parse()</code> must be completed 
before another can be initiated even from the
+ * same thread.
+ * </p>
+ * <p>
+ * <strong>IMPLEMENTATION NOTE</strong> - A bug in Xerces 2.0.2 prevents the 
support of XML schema. You need Xerces
+ * 2.1/2.3 and up to make this class working with XML schema
+ * </p>
  */
 public class Digester extends DefaultHandler2 {
 
@@ -106,7 +106,8 @@ public class Digester extends DefaultHandler2 {
                         break;
                     } catch (Throwable t) {
                         ExceptionUtils.handleThrowable(t);
-                        
LogFactory.getLog(Digester.class).error(sm.getString("digester.propertySourceLoadError",
 className), t);
+                        LogFactory.getLog(Digester.class)
+                                
.error(sm.getString("digester.propertySourceLoadError", className), t);
                     }
                 }
             }
@@ -173,12 +174,11 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource}
-     * that uses environment variables to resolve expressions. Still available
-     * for backwards compatibility.
+     * A {@link 
org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource} that uses 
environment variables to
+     * resolve expressions. Still available for backwards compatibility.
      *
-     * @deprecated Use {@link 
org.apache.tomcat.util.digester.EnvironmentPropertySource}
-     *             This will be removed in Tomcat 10 onwards.
+     * @deprecated Use {@link 
org.apache.tomcat.util.digester.EnvironmentPropertySource} This will be removed 
in Tomcat
+     *                 10 onwards.
      */
     @Deprecated
     public static class EnvironmentPropertySource extends 
org.apache.tomcat.util.digester.EnvironmentPropertySource {
@@ -201,11 +201,9 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Stack whose elements are List objects, each containing a list of
-     * Rule objects as returned from Rules.getMatch(). As each xml element
-     * in the input is entered, the matching rules are pushed onto this
-     * stack. After the end tag is reached, the matches are popped again.
-     * The depth of is stack is therefore exactly the same as the current
+     * Stack whose elements are List objects, each containing a list of Rule 
objects as returned from Rules.getMatch().
+     * As each xml element in the input is entered, the matching rules are 
pushed onto this stack. After the end tag is
+     * reached, the matches are popped again. The depth of is stack is 
therefore exactly the same as the current
      * "nesting" level of the input xml.
      *
      * @since 1.6
@@ -213,10 +211,9 @@ public class Digester extends DefaultHandler2 {
     protected ArrayStack<List<Rule>> matches = new ArrayStack<>(10);
 
     /**
-     * The class loader to use for instantiating application objects.
-     * If not specified, the context class loader, or the class loader
-     * used to load Digester itself, is used, based on the value of the
-     * <code>useContextClassLoader</code> variable.
+     * The class loader to use for instantiating application objects. If not 
specified, the context class loader, or the
+     * class loader used to load Digester itself, is used, based on the value 
of the <code>useContextClassLoader</code>
+     * variable.
      */
     protected ClassLoader classLoader = null;
 
@@ -233,15 +230,13 @@ public class Digester extends DefaultHandler2 {
     protected EntityResolver entityResolver;
 
     /**
-     * The URLs of entityValidator that have been registered, keyed by the 
public
-     * identifier that corresponds.
+     * The URLs of entityValidator that have been registered, keyed by the 
public identifier that corresponds.
      */
-    protected HashMap<String, String> entityValidator = new HashMap<>();
+    protected HashMap<String,String> entityValidator = new HashMap<>();
 
 
     /**
-     * The application-supplied error handler that is notified when parsing
-     * warnings, errors, or fatal errors occur.
+     * The application-supplied error handler that is notified when parsing 
warnings, errors, or fatal errors occur.
      */
     protected ErrorHandler errorHandler = null;
 
@@ -270,19 +265,16 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Registered namespaces we are currently processing.  The key is the
-     * namespace prefix that was declared in the document.  The value is an
-     * ArrayStack of the namespace URIs this prefix has been mapped to --
-     * the top Stack element is the most current one.  (This architecture
-     * is required because documents can declare nested uses of the same
-     * prefix for different Namespace URIs).
+     * Registered namespaces we are currently processing. The key is the 
namespace prefix that was declared in the
+     * document. The value is an ArrayStack of the namespace URIs this prefix 
has been mapped to -- the top Stack
+     * element is the most current one. (This architecture is required because 
documents can declare nested uses of the
+     * same prefix for different Namespace URIs).
      */
-    protected HashMap<String, ArrayStack<String>> namespaces = new HashMap<>();
+    protected HashMap<String,ArrayStack<String>> namespaces = new HashMap<>();
 
 
     /**
-     * The parameters stack being utilized by CallMethodRule and
-     * CallParamRule rules.
+     * The parameters stack being utilized by CallMethodRule and CallParamRule 
rules.
      */
     protected ArrayStack<Object> params = new ArrayStack<>();
 
@@ -294,8 +286,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * The public identifier of the DTD we are currently parsing under
-     * (if any).
+     * The public identifier of the DTD we are currently parsing under (if 
any).
      */
     protected String publicId = null;
 
@@ -307,17 +298,14 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * The "root" element of the stack (in other words, the last object
-     * that was popped).
+     * The "root" element of the stack (in other words, the last object that 
was popped).
      */
     protected Object root = null;
 
 
     /**
-     * The <code>Rules</code> implementation containing our collection of
-     * <code>Rule</code> instances and associated matching policy.  If not
-     * established before the first rule is added, a default implementation
-     * will be provided.
+     * The <code>Rules</code> implementation containing our collection of 
<code>Rule</code> instances and associated
+     * matching policy. If not established before the first rule is added, a 
default implementation will be provided.
      */
     protected Rules rules = null;
 
@@ -328,8 +316,8 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Do we want to use the Context ClassLoader when loading classes
-     * for instantiating new objects.  Default is <code>false</code>.
+     * Do we want to use the Context ClassLoader when loading classes for 
instantiating new objects. Default is
+     * <code>false</code>.
      */
     protected boolean useContextClassLoader = false;
 
@@ -349,7 +337,7 @@ public class Digester extends DefaultHandler2 {
     /**
      * Fake attributes map (attributes are often used for object creation).
      */
-    protected Map<Class<?>, List<String>> fakeAttributes = null;
+    protected Map<Class<?>,List<String>> fakeAttributes = null;
 
 
     /**
@@ -422,9 +410,11 @@ public class Digester extends DefaultHandler2 {
     }
 
     protected ArrayList<Object> known = new ArrayList<>();
+
     public void setKnown(Object object) {
         known.add(object);
     }
+
     public String toVariableName(Object object) {
         boolean found = false;
         int pos = 0;
@@ -447,11 +437,11 @@ public class Digester extends DefaultHandler2 {
     // ------------------------------------------------------------- Properties
 
     /**
-     * Return the currently mapped namespace URI for the specified prefix,
-     * if any; otherwise return <code>null</code>.  These mappings come and
-     * go dynamically as the document is parsed.
+     * Return the currently mapped namespace URI for the specified prefix, if 
any; otherwise return <code>null</code>.
+     * These mappings come and go dynamically as the document is parsed.
      *
      * @param prefix Prefix to look up
+     *
      * @return the namespace URI
      */
     public String findNamespaceURI(String prefix) {
@@ -468,14 +458,15 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return the class loader to be used for instantiating application objects
-     * when required.  This is determined based upon the following rules:
+     * Return the class loader to be used for instantiating application 
objects when required. This is determined based
+     * upon the following rules:
      * <ul>
      * <li>The class loader set by <code>setClassLoader()</code>, if any</li>
-     * <li>The thread context class loader, if it exists and the
-     *     <code>useContextClassLoader</code> property is set to true</li>
+     * <li>The thread context class loader, if it exists and the 
<code>useContextClassLoader</code> property is set to
+     * true</li>
      * <li>The class loader used to load the Digester class itself.
      * </ul>
+     *
      * @return the classloader
      */
     public ClassLoader getClassLoader() {
@@ -493,11 +484,9 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Set the class loader to be used for instantiating application objects
-     * when required.
+     * Set the class loader to be used for instantiating application objects 
when required.
      *
-     * @param classLoader The new class loader to use, or <code>null</code>
-     *  to revert to the standard rules
+     * @param classLoader The new class loader to use, or <code>null</code> to 
revert to the standard rules
      */
     public void setClassLoader(ClassLoader classLoader) {
         this.classLoader = classLoader;
@@ -545,13 +534,15 @@ public class Digester extends DefaultHandler2 {
 
     /**
      * SAX parser factory method.
+     *
      * @return the SAXParserFactory we will use, creating one if necessary.
+     *
      * @throws ParserConfigurationException Error creating parser
-     * @throws SAXNotSupportedException Error creating parser
-     * @throws SAXNotRecognizedException Error creating parser
+     * @throws SAXNotSupportedException     Error creating parser
+     * @throws SAXNotRecognizedException    Error creating parser
      */
-    public SAXParserFactory getFactory() throws SAXNotRecognizedException, 
SAXNotSupportedException,
-            ParserConfigurationException {
+    public SAXParserFactory getFactory()
+            throws SAXNotRecognizedException, SAXNotSupportedException, 
ParserConfigurationException {
 
         if (factory == null) {
             factory = SAXParserFactory.newInstance();
@@ -575,27 +566,22 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Sets a flag indicating whether the requested feature is supported
-     * by the underlying implementation of <code>org.xml.sax.XMLReader</code>.
-     * See <a 
href="http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description";>
-     * 
http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description</a>
-     * for information about the standard SAX2 feature flags.  In order to be
-     * effective, this method must be called <strong>before</strong> the
-     * <code>getParser()</code> method is called for the first time, either
-     * directly or indirectly.
+     * Sets a flag indicating whether the requested feature is supported by 
the underlying implementation of
+     * <code>org.xml.sax.XMLReader</code>. See
+     * <a 
href="http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description";>
+     * 
http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description</a>
 for information about the
+     * standard SAX2 feature flags. In order to be effective, this method must 
be called <strong>before</strong> the
+     * <code>getParser()</code> method is called for the first time, either 
directly or indirectly.
      *
      * @param feature Name of the feature to set the status for
-     * @param value The new value for this feature
+     * @param value   The new value for this feature
      *
-     * @exception ParserConfigurationException if a parser configuration error
-     *  occurs
-     * @exception SAXNotRecognizedException if the property name is
-     *  not recognized
-     * @exception SAXNotSupportedException if the property name is
-     *  recognized but not supported
+     * @exception ParserConfigurationException if a parser configuration error 
occurs
+     * @exception SAXNotRecognizedException    if the property name is not 
recognized
+     * @exception SAXNotSupportedException     if the property name is 
recognized but not supported
      */
-    public void setFeature(String feature, boolean value) throws 
ParserConfigurationException,
-            SAXNotRecognizedException, SAXNotSupportedException {
+    public void setFeature(String feature, boolean value)
+            throws ParserConfigurationException, SAXNotRecognizedException, 
SAXNotSupportedException {
 
         getFactory().setFeature(feature, value);
 
@@ -614,6 +600,7 @@ public class Digester extends DefaultHandler2 {
 
     /**
      * Set the current logger for this Digester.
+     *
      * @param log The logger that will be used
      */
     public void setLogger(Log log) {
@@ -623,10 +610,10 @@ public class Digester extends DefaultHandler2 {
     }
 
     /**
-     * Gets the logger used for logging SAX-related information.
-     * <strong>Note</strong> the output is finely grained.
+     * Gets the logger used for logging SAX-related information. 
<strong>Note</strong> the output is finely grained.
      *
      * @since 1.6
+     *
      * @return the SAX logger
      */
     public Log getSAXLogger() {
@@ -636,8 +623,8 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Sets the logger used for logging SAX-related information.
-     * <strong>Note</strong> the output is finely grained.
+     * Sets the logger used for logging SAX-related information. 
<strong>Note</strong> the output is finely grained.
+     *
      * @param saxLog Log, not null
      *
      * @since 1.6
@@ -677,6 +664,7 @@ public class Digester extends DefaultHandler2 {
 
     /**
      * Set the public id of the current file being parsed.
+     *
      * @param publicId the DTD/Schema public's id.
      */
     public void setPublicId(String publicId) {
@@ -685,8 +673,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * @return the public identifier of the DTD we are currently
-     * parsing under, if any.
+     * @return the public identifier of the DTD we are currently parsing 
under, if any.
      */
     public String getPublicId() {
         return this.publicId;
@@ -694,8 +681,8 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * @return the SAXParser we will use to parse the input stream.  If there
-     * is a problem creating the parser, return <code>null</code>.
+     * @return the SAXParser we will use to parse the input stream. If there 
is a problem creating the parser, return
+     *             <code>null</code>.
      */
     public SAXParser getParser() {
 
@@ -717,30 +704,28 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return the current value of the specified property for the underlying
-     * <code>XMLReader</code> implementation.
-     * See <a 
href="http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description";>
-     * 
http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description</a>
-     * for information about the standard SAX2 properties.
+     * Return the current value of the specified property for the underlying 
<code>XMLReader</code> implementation. See
+     * <a 
href="http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description";>
+     * 
http://www.saxproject.org/apidoc/xml/sax/package-summary.html#package-description</a>
 for information about the
+     * standard SAX2 properties.
      *
      * @param property Property name to be retrieved
+     *
      * @return the property value
-     * @exception SAXNotRecognizedException if the property name is
-     *  not recognized
-     * @exception SAXNotSupportedException if the property name is
-     *  recognized but not supported
+     *
+     * @exception SAXNotRecognizedException if the property name is not 
recognized
+     * @exception SAXNotSupportedException  if the property name is recognized 
but not supported
      */
-    public Object getProperty(String property)
-            throws SAXNotRecognizedException, SAXNotSupportedException {
+    public Object getProperty(String property) throws 
SAXNotRecognizedException, SAXNotSupportedException {
 
         return getParser().getProperty(property);
     }
 
 
     /**
-     * Return the <code>Rules</code> implementation object containing our
-     * rules collection and associated matching policy.  If none has been
-     * established, a default implementation will be created and returned.
+     * Return the <code>Rules</code> implementation object containing our 
rules collection and associated matching
+     * policy. If none has been established, a default implementation will be 
created and returned.
+     *
      * @return the rules
      */
     public Rules getRules() {
@@ -753,8 +738,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Set the <code>Rules</code> implementation object containing our
-     * rules collection and associated matching policy.
+     * Set the <code>Rules</code> implementation object containing our rules 
collection and associated matching policy.
      *
      * @param rules New Rules implementation
      */
@@ -773,11 +757,9 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Determine whether to use the Context ClassLoader (the one found by
-     * calling <code>Thread.currentThread().getContextClassLoader()</code>)
-     * to resolve/load classes that are defined in various rules.  If not
-     * using Context ClassLoader, then the class-loading defaults to
-     * using the calling class' ClassLoader.
+     * Determine whether to use the Context ClassLoader (the one found by 
calling
+     * <code>Thread.currentThread().getContextClassLoader()</code>) to 
resolve/load classes that are defined in various
+     * rules. If not using Context ClassLoader, then the class-loading 
defaults to using the calling class' ClassLoader.
      *
      * @param use determines whether to use Context ClassLoader.
      */
@@ -797,8 +779,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Set the validating parser flag.  This must be called before
-     * <code>parse()</code> is called the first time.
+     * Set the validating parser flag. This must be called before 
<code>parse()</code> is called the first time.
      *
      * @param validating The new validating parser flag.
      */
@@ -816,8 +797,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Set the rules validation flag.  This must be called before
-     * <code>parse()</code> is called the first time.
+     * Set the rules validation flag. This must be called before 
<code>parse()</code> is called the first time.
      *
      * @param rulesValidation The new rules validation flag.
      */
@@ -829,15 +809,17 @@ public class Digester extends DefaultHandler2 {
     /**
      * @return the fake attributes list.
      */
-    public Map<Class<?>, List<String>> getFakeAttributes() {
+    public Map<Class<?>,List<String>> getFakeAttributes() {
         return this.fakeAttributes;
     }
 
 
     /**
      * Determine if an attribute is a fake attribute.
+     *
      * @param object The object
-     * @param name The attribute name
+     * @param name   The attribute name
+     *
      * @return <code>true</code> if this is a fake attribute
      */
     public boolean isFakeAttribute(Object object, String name) {
@@ -861,7 +843,7 @@ public class Digester extends DefaultHandler2 {
      *
      * @param fakeAttributes The new fake attributes.
      */
-    public void setFakeAttributes(Map<Class<?>, List<String>> fakeAttributes) {
+    public void setFakeAttributes(Map<Class<?>,List<String>> fakeAttributes) {
 
         this.fakeAttributes = fakeAttributes;
 
@@ -869,10 +851,11 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return the XMLReader to be used for parsing the input document.
-     * FIX ME: there is a bug in JAXP/XERCES that prevent the use of a
-     * parser that contains a schema with a DTD.
+     * Return the XMLReader to be used for parsing the input document. FIX ME: 
there is a bug in JAXP/XERCES that
+     * prevent the use of a parser that contains a schema with a DTD.
+     *
      * @return the XML reader
+     *
      * @exception SAXException if no XMLReader can be instantiated
      */
     public XMLReader getXMLReader() throws SAXException {
@@ -907,11 +890,10 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Process notification of character data received from the body of
-     * an XML element.
+     * Process notification of character data received from the body of an XML 
element.
      *
      * @param buffer The characters from the XML document
-     * @param start Starting offset into the buffer
+     * @param start  Starting offset into the buffer
      * @param length Number of characters from the buffer
      *
      * @exception SAXException if a parsing error is to be reported
@@ -970,18 +952,17 @@ public class Digester extends DefaultHandler2 {
     /**
      * Process notification of the end of an XML element being reached.
      *
-     * @param namespaceURI - The Namespace URI, or the empty string if the
-     *   element has no Namespace URI or if Namespace processing is not
-     *   being performed.
-     * @param localName - The local name (without prefix), or the empty
-     *   string if Namespace processing is not being performed.
-     * @param qName - The qualified XML 1.0 name (with prefix), or the
-     *   empty string if qualified names are not available.
+     * @param namespaceURI - The Namespace URI, or the empty string if the 
element has no Namespace URI or if Namespace
+     *                         processing is not being performed.
+     * @param localName    - The local name (without prefix), or the empty 
string if Namespace processing is not being
+     *                         performed.
+     * @param qName        - The qualified XML 1.0 name (with prefix), or the 
empty string if qualified names are not
+     *                         available.
+     *
      * @exception SAXException if a parsing error is to be reported
      */
     @Override
-    public void endElement(String namespaceURI, String localName, String qName)
-            throws SAXException {
+    public void endElement(String namespaceURI, String localName, String 
qName) throws SAXException {
 
         boolean debug = log.isTraceEnabled();
 
@@ -1096,12 +1077,11 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Process notification of ignorable whitespace received from the body of
-     * an XML element.
+     * Process notification of ignorable whitespace received from the body of 
an XML element.
      *
      * @param buffer The characters from the XML document
-     * @param start Starting offset into the buffer
-     * @param len Number of characters from the buffer
+     * @param start  Starting offset into the buffer
+     * @param len    Number of characters from the buffer
      *
      * @exception SAXException if a parsing error is to be reported
      */
@@ -1121,7 +1101,7 @@ public class Digester extends DefaultHandler2 {
      * Process notification of a processing instruction that was encountered.
      *
      * @param target The processing instruction target
-     * @param data The processing instruction data (if any)
+     * @param data   The processing instruction data (if any)
      *
      * @exception SAXException if a parsing error is to be reported
      */
@@ -1219,19 +1199,18 @@ public class Digester extends DefaultHandler2 {
     /**
      * Process notification of the start of an XML element being reached.
      *
-     * @param namespaceURI The Namespace URI, or the empty string if the 
element
-     *   has no Namespace URI or if Namespace processing is not being 
performed.
-     * @param localName The local name (without prefix), or the empty
-     *   string if Namespace processing is not being performed.
-     * @param qName The qualified name (with prefix), or the empty
-     *   string if qualified names are not available.\
-     * @param list The attributes attached to the element. If there are
-     *   no attributes, it shall be an empty Attributes object.
+     * @param namespaceURI The Namespace URI, or the empty string if the 
element has no Namespace URI or if Namespace
+     *                         processing is not being performed.
+     * @param localName    The local name (without prefix), or the empty 
string if Namespace processing is not being
+     *                         performed.
+     * @param qName        The qualified name (with prefix), or the empty 
string if qualified names are not available.\
+     * @param list         The attributes attached to the element. If there 
are no attributes, it shall be an empty
+     *                         Attributes object.
+     *
      * @exception SAXException if a parsing error is to be reported
      */
     @Override
-    public void startElement(String namespaceURI, String localName, String 
qName, Attributes list)
-            throws SAXException {
+    public void startElement(String namespaceURI, String localName, String 
qName, Attributes list) throws SAXException {
         boolean debug = log.isTraceEnabled();
 
         if (saxLog.isTraceEnabled()) {
@@ -1299,7 +1278,7 @@ public class Digester extends DefaultHandler2 {
     /**
      * Process notification that a namespace prefix is coming in to scope.
      *
-     * @param prefix Prefix that is being declared
+     * @param prefix       Prefix that is being declared
      * @param namespaceURI Corresponding namespace URI being mapped to
      *
      * @exception SAXException if a parsing error is to be reported
@@ -1328,7 +1307,7 @@ public class Digester extends DefaultHandler2 {
     /**
      * Receive notification of a notation declaration event.
      *
-     * @param name The notation name
+     * @param name     The notation name
      * @param publicId The public identifier (if any)
      * @param systemId The system identifier (if any)
      */
@@ -1345,7 +1324,7 @@ public class Digester extends DefaultHandler2 {
     /**
      * Receive notification of an unparsed entity declaration event.
      *
-     * @param name The unparsed entity name
+     * @param name     The unparsed entity name
      * @param publicId The public identifier (if any)
      * @param systemId The system identifier (if any)
      * @param notation The name of the associated notation
@@ -1354,8 +1333,7 @@ public class Digester extends DefaultHandler2 {
     public void unparsedEntityDecl(String name, String publicId, String 
systemId, String notation) {
 
         if (saxLog.isTraceEnabled()) {
-            saxLog.trace("unparsedEntityDecl(" + name + "," + publicId + "," + 
systemId + ","
-                    + notation + ")");
+            saxLog.trace("unparsedEntityDecl(" + name + "," + publicId + "," + 
systemId + "," + notation + ")");
         }
 
     }
@@ -1364,9 +1342,9 @@ public class Digester extends DefaultHandler2 {
     // ----------------------------------------------- EntityResolver Methods
 
     /**
-     * Set the <code>EntityResolver</code> used by SAX when resolving
-     * public id and system id.
-     * This must be called before the first call to <code>parse()</code>.
+     * Set the <code>EntityResolver</code> used by SAX when resolving public 
id and system id. This must be called
+     * before the first call to <code>parse()</code>.
+     *
      * @param entityResolver a class that implement the 
<code>EntityResolver</code> interface.
      */
     public void setEntityResolver(EntityResolver entityResolver) {
@@ -1376,6 +1354,7 @@ public class Digester extends DefaultHandler2 {
 
     /**
      * Return the Entity Resolver used by the SAX parser.
+     *
      * @return Return the Entity Resolver used by the SAX parser.
      */
     public EntityResolver getEntityResolver() {
@@ -1387,8 +1366,7 @@ public class Digester extends DefaultHandler2 {
             throws SAXException, IOException {
 
         if (saxLog.isTraceEnabled()) {
-            saxLog.trace(
-                    "resolveEntity('" + publicId + "', '" + systemId + "', '" 
+ baseURI + "')");
+            saxLog.trace("resolveEntity('" + publicId + "', '" + systemId + 
"', '" + baseURI + "')");
         }
 
         // Has this system identifier been registered?
@@ -1451,8 +1429,7 @@ public class Digester extends DefaultHandler2 {
     // ------------------------------------------------- ErrorHandler Methods
 
     /**
-     * Forward notification of a parsing error to the application supplied
-     * error handler (if any).
+     * Forward notification of a parsing error to the application supplied 
error handler (if any).
      *
      * @param exception The error information
      *
@@ -1469,8 +1446,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Forward notification of a fatal parsing error to the application
-     * supplied error handler (if any).
+     * Forward notification of a fatal parsing error to the application 
supplied error handler (if any).
      *
      * @param exception The fatal error information
      *
@@ -1487,8 +1463,7 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Forward notification of a parse warning to the application supplied
-     * error handler (if any).
+     * Forward notification of a parse warning to the application supplied 
error handler (if any).
      *
      * @param exception The warning information
      *
@@ -1508,12 +1483,14 @@ public class Digester extends DefaultHandler2 {
     // ------------------------------------------------------- Public Methods
 
     /**
-     * Parse the content of the specified file using this Digester.  Returns
-     * the root element from the object stack (if any).
+     * Parse the content of the specified file using this Digester. Returns 
the root element from the object stack (if
+     * any).
      *
      * @param file File containing the XML data to be parsed
+     *
      * @return the root object
-     * @exception IOException if an input/output error occurs
+     *
+     * @exception IOException  if an input/output error occurs
      * @exception SAXException if a parsing exception occurs
      */
     public Object parse(File file) throws IOException, SAXException {
@@ -1526,12 +1503,14 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Parse the content of the specified input source using this Digester.
-     * Returns the root element from the object stack (if any).
+     * Parse the content of the specified input source using this Digester. 
Returns the root element from the object
+     * stack (if any).
      *
      * @param input Input source containing the XML data to be parsed
+     *
      * @return the root object
-     * @exception IOException if an input/output error occurs
+     *
+     * @exception IOException  if an input/output error occurs
      * @exception SAXException if a parsing exception occurs
      */
     public Object parse(InputSource input) throws IOException, SAXException {
@@ -1542,12 +1521,14 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Parse the content of the specified input stream using this Digester.
-     * Returns the root element from the object stack (if any).
+     * Parse the content of the specified input stream using this Digester. 
Returns the root element from the object
+     * stack (if any).
      *
      * @param input Input stream containing the XML data to be parsed
+     *
      * @return the root object
-     * @exception IOException if an input/output error occurs
+     *
+     * @exception IOException  if an input/output error occurs
      * @exception SAXException if a parsing exception occurs
      */
     public Object parse(InputStream input) throws IOException, SAXException {
@@ -1559,24 +1540,24 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * <p>Register the specified DTD URL for the specified public identifier.
-     * This must be called before the first call to <code>parse()</code>.
-     * </p><p>
-     * <code>Digester</code> contains an internal <code>EntityResolver</code>
-     * implementation. This maps <code>PUBLICID</code>'s to URLs
-     * (from which the resource will be loaded). A common use case for this
-     * method is to register local URLs (possibly computed at runtime by a
-     * classloader) for DTDs. This allows the performance advantage of using
-     * a local version without having to ensure every <code>SYSTEM</code>
-     * URI on every processed xml document is local. This implementation 
provides
-     * only basic functionality. If more sophisticated features are required,
-     * using {@link #setEntityResolver} to set a custom resolver is 
recommended.
-     * </p><p>
-     * <strong>Note:</strong> This method will have no effect when a custom
-     * <code>EntityResolver</code> has been set. (Setting a custom
-     * <code>EntityResolver</code> overrides the internal implementation.)
+     * <p>
+     * Register the specified DTD URL for the specified public identifier. 
This must be called before the first call to
+     * <code>parse()</code>.
      * </p>
-     * @param publicId Public identifier of the DTD to be resolved
+     * <p>
+     * <code>Digester</code> contains an internal <code>EntityResolver</code> 
implementation. This maps
+     * <code>PUBLICID</code>'s to URLs (from which the resource will be 
loaded). A common use case for this method is to
+     * register local URLs (possibly computed at runtime by a classloader) for 
DTDs. This allows the performance
+     * advantage of using a local version without having to ensure every 
<code>SYSTEM</code> URI on every processed xml
+     * document is local. This implementation provides only basic 
functionality. If more sophisticated features are
+     * required, using {@link #setEntityResolver} to set a custom resolver is 
recommended.
+     * </p>
+     * <p>
+     * <strong>Note:</strong> This method will have no effect when a custom 
<code>EntityResolver</code> has been set.
+     * (Setting a custom <code>EntityResolver</code> overrides the internal 
implementation.)
+     * </p>
+     *
+     * @param publicId  Public identifier of the DTD to be resolved
      * @param entityURL The URL to use for reading this DTD
      */
     public void register(String publicId, String entityURL) {
@@ -1593,11 +1574,13 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * <p>Register a new Rule matching the specified pattern.
-     * This method sets the <code>Digester</code> property on the rule.</p>
+     * <p>
+     * Register a new Rule matching the specified pattern. This method sets 
the <code>Digester</code> property on the
+     * rule.
+     * </p>
      *
      * @param pattern Element matching pattern
-     * @param rule Rule to be registered
+     * @param rule    Rule to be registered
      */
     public void addRule(String pattern, Rule rule) {
 
@@ -1620,8 +1603,9 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add a "call method" rule for a method which accepts no arguments.
      *
-     * @param pattern Element matching pattern
+     * @param pattern    Element matching pattern
      * @param methodName Method name to be called
+     *
      * @see CallMethodRule
      */
     public void addCallMethod(String pattern, String methodName) {
@@ -1633,10 +1617,10 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add a "call method" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
+     * @param pattern    Element matching pattern
      * @param methodName Method name to be called
-     * @param paramCount Number of expected parameters (or zero
-     *  for a single parameter from the body of this element)
+     * @param paramCount Number of expected parameters (or zero for a single 
parameter from the body of this element)
+     *
      * @see CallMethodRule
      */
     public void addCallMethod(String pattern, String methodName, int 
paramCount) {
@@ -1649,9 +1633,9 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add a "call parameter" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
-     * @param paramIndex Zero-relative parameter index to set
-     *  (from the body of this element)
+     * @param pattern    Element matching pattern
+     * @param paramIndex Zero-relative parameter index to set (from the body 
of this element)
+     *
      * @see CallParamRule
      */
     public void addCallParam(String pattern, int paramIndex) {
@@ -1664,11 +1648,11 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add a "factory create" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
-     * @param creationFactory Previously instantiated ObjectCreationFactory
-     *  to be utilized
-     * @param ignoreCreateExceptions when <code>true</code> any exceptions 
thrown during
-     * object creation will be ignored.
+     * @param pattern                Element matching pattern
+     * @param creationFactory        Previously instantiated 
ObjectCreationFactory to be utilized
+     * @param ignoreCreateExceptions when <code>true</code> any exceptions 
thrown during object creation will be
+     *                                   ignored.
+     *
      * @see FactoryCreateRule
      */
     public void addFactoryCreate(String pattern, ObjectCreationFactory 
creationFactory,
@@ -1682,8 +1666,9 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add an "object create" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
+     * @param pattern   Element matching pattern
      * @param className Java class name to be created
+     *
      * @see ObjectCreateRule
      */
     public void addObjectCreate(String pattern, String className) {
@@ -1696,10 +1681,10 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add an "object create" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
-     * @param className Default Java class name to be created
-     * @param attributeName Attribute name that optionally overrides
-     *  the default Java class name to be created
+     * @param pattern       Element matching pattern
+     * @param className     Default Java class name to be created
+     * @param attributeName Attribute name that optionally overrides the 
default Java class name to be created
+     *
      * @see ObjectCreateRule
      */
     public void addObjectCreate(String pattern, String className, String 
attributeName) {
@@ -1712,12 +1697,12 @@ public class Digester extends DefaultHandler2 {
     /**
      * Add a "set next" rule for the specified parameters.
      *
-     * @param pattern Element matching pattern
+     * @param pattern    Element matching pattern
      * @param methodName Method name to call on the parent element
-     * @param paramType Java class name of the expected parameter type
-     *  (if you wish to use a primitive type, specify the corresponding
-     *  Java wrapper class instead, such as <code>java.lang.Boolean</code>
-     *  for a <code>boolean</code> parameter)
+     * @param paramType  Java class name of the expected parameter type (if 
you wish to use a primitive type, specify
+     *                       the corresponding Java wrapper class instead, 
such as <code>java.lang.Boolean</code> for a
+     *                       <code>boolean</code> parameter)
+     *
      * @see SetNextRule
      */
     public void addSetNext(String pattern, String methodName, String 
paramType) {
@@ -1731,6 +1716,7 @@ public class Digester extends DefaultHandler2 {
      * Add a "set properties" rule for the specified parameters.
      *
      * @param pattern Element matching pattern
+     *
      * @see SetPropertiesRule
      */
     public void addSetProperties(String pattern) {
@@ -1753,10 +1739,9 @@ public class Digester extends DefaultHandler2 {
     /**
      * Clear the current contents of the object stack.
      * <p>
-     * Calling this method <i>might</i> allow another document of the same type
-     * to be correctly parsed. However, this method was not intended for this
-     * purpose. In general, a separate Digester object should be created for
-     * each document to be parsed.
+     * Calling this method <i>might</i> allow another document of the same 
type to be correctly parsed. However, this
+     * method was not intended for this purpose. In general, a separate 
Digester object should be created for each
+     * document to be parsed.
      */
     public void clear() {
 
@@ -1780,8 +1765,9 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return the top object on the stack without removing it.  If there are
-     * no objects on the stack, return <code>null</code>.
+     * Return the top object on the stack without removing it. If there are no 
objects on the stack, return
+     * <code>null</code>.
+     *
      * @return the top object
      */
     public Object peek() {
@@ -1795,12 +1781,11 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return the n'th object down the stack, where 0 is the top element
-     * and [getCount()-1] is the bottom element.  If the specified index
-     * is out of range, return <code>null</code>.
+     * Return the n'th object down the stack, where 0 is the top element and 
[getCount()-1] is the bottom element. If
+     * the specified index is out of range, return <code>null</code>.
+     *
+     * @param n Index of the desired element, where 0 is the top of the stack, 
1 is the next element down, and so on.
      *
-     * @param n Index of the desired element, where 0 is the top of the stack,
-     *  1 is the next element down, and so on.
      * @return the specified object
      */
     public Object peek(int n) {
@@ -1814,8 +1799,9 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Pop the top object off of the stack, and return it.  If there are
-     * no objects on the stack, return <code>null</code>.
+     * Pop the top object off of the stack, and return it. If there are no 
objects on the stack, return
+     * <code>null</code>.
+     *
      * @return the top object
      */
     public Object pop() {
@@ -1843,12 +1829,10 @@ public class Digester extends DefaultHandler2 {
     }
 
     /**
-     * When the Digester is being used as a SAXContentHandler,
-     * this method allows you to access the root object that has been
-     * created after parsing.
+     * When the Digester is being used as a SAXContentHandler, this method 
allows you to access the root object that has
+     * been created after parsing.
      *
-     * @return the root object that has been created after parsing
-     *  or null if the digester has not parsed any XML yet.
+     * @return the root object that has been created after parsing or null if 
the digester has not parsed any XML yet.
      */
     public Object getRoot() {
         return root;
@@ -1863,11 +1847,9 @@ public class Digester extends DefaultHandler2 {
 
     /**
      * <p>
-     * Provide a hook for lazy configuration of this <code>Digester</code>
-     * instance.  The default implementation does nothing, but subclasses
-     * can override as needed.
+     * Provide a hook for lazy configuration of this <code>Digester</code> 
instance. The default implementation does
+     * nothing, but subclasses can override as needed.
      * </p>
-     *
      * <p>
      * <strong>Note</strong> This method may be called more than once.
      * </p>
@@ -1888,11 +1870,14 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * <p>Return the top object on the parameters stack without removing it.  
If there are
-     * no objects on the stack, return <code>null</code>.</p>
+     * <p>
+     * Return the top object on the parameters stack without removing it. If 
there are no objects on the stack, return
+     * <code>null</code>.
+     * </p>
+     * <p>
+     * The parameters stack is used to store <code>CallMethodRule</code> 
parameters. See {@link #params}.
+     * </p>
      *
-     * <p>The parameters stack is used to store <code>CallMethodRule</code> 
parameters.
-     * See {@link #params}.</p>
      * @return the top object on the parameters stack
      */
     public Object peekParams() {
@@ -1906,11 +1891,14 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * <p>Pop the top object off of the parameters stack, and return it.  If 
there are
-     * no objects on the stack, return <code>null</code>.</p>
+     * <p>
+     * Pop the top object off of the parameters stack, and return it. If there 
are no objects on the stack, return
+     * <code>null</code>.
+     * </p>
+     * <p>
+     * The parameters stack is used to store <code>CallMethodRule</code> 
parameters. See {@link #params}.
+     * </p>
      *
-     * <p>The parameters stack is used to store <code>CallMethodRule</code> 
parameters.
-     * See {@link #params}.</p>
      * @return the top object on the parameters stack
      */
     public Object popParams() {
@@ -1927,10 +1915,12 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * <p>Push a new object onto the top of the parameters stack.</p>
-     *
-     * <p>The parameters stack is used to store <code>CallMethodRule</code> 
parameters.
-     * See {@link #params}.</p>
+     * <p>
+     * Push a new object onto the top of the parameters stack.
+     * </p>
+     * <p>
+     * The parameters stack is used to store <code>CallMethodRule</code> 
parameters. See {@link #params}.
+     * </p>
      *
      * @param object The new object
      */
@@ -1943,10 +1933,11 @@ public class Digester extends DefaultHandler2 {
     }
 
     /**
-     * Create a SAX exception which also understands about the location in
-     * the digester file where the exception occurs
+     * Create a SAX exception which also understands about the location in the 
digester file where the exception occurs
+     *
      * @param message The error message
-     * @param e The root cause
+     * @param e       The root cause
+     *
      * @return the new exception
      */
     public SAXException createSAXException(String message, Exception e) {
@@ -1963,8 +1954,7 @@ public class Digester extends DefaultHandler2 {
             }
         }
         if (locator != null) {
-            String error = sm.getString("digester.errorLocation",
-                    Integer.valueOf(locator.getLineNumber()),
+            String error = sm.getString("digester.errorLocation", 
Integer.valueOf(locator.getLineNumber()),
                     Integer.valueOf(locator.getColumnNumber()), message);
             if (e != null) {
                 return new SAXParseException(error, locator, e);
@@ -1981,9 +1971,10 @@ public class Digester extends DefaultHandler2 {
     }
 
     /**
-     * Create a SAX exception which also understands about the location in
-     * the digester file where the exception occurs
+     * Create a SAX exception which also understands about the location in the 
digester file where the exception occurs
+     *
      * @param e The root cause
+     *
      * @return the new exception
      */
     public SAXException createSAXException(Exception e) {
@@ -2003,9 +1994,10 @@ public class Digester extends DefaultHandler2 {
     }
 
     /**
-     * Create a SAX exception which also understands about the location in
-     * the digester file where the exception occurs
+     * Create a SAX exception which also understands about the location in the 
digester file where the exception occurs
+     *
      * @param message The error message
+     *
      * @return the new exception
      */
     public SAXException createSAXException(String message) {
@@ -2016,10 +2008,9 @@ public class Digester extends DefaultHandler2 {
     // ------------------------------------------------------- Private Methods
 
 
-   /**
-     * Returns an attributes list which contains all the attributes
-     * passed in, with any text of form "${xxx}" in an attribute value
-     * replaced by the appropriate value from the system property.
+    /**
+     * Returns an attributes list which contains all the attributes passed in, 
with any text of form "${xxx}" in an
+     * attribute value replaced by the appropriate value from the system 
property.
      */
     private Attributes updateAttributes(Attributes list) {
 
@@ -2032,7 +2023,8 @@ public class Digester extends DefaultHandler2 {
         for (int i = 0; i < nAttributes; ++i) {
             String value = newAttrs.getValue(i);
             try {
-                newAttrs.setValue(i, 
IntrospectionUtils.replaceProperties(value, null, source, 
getClassLoader()).intern());
+                newAttrs.setValue(i,
+                        IntrospectionUtils.replaceProperties(value, null, 
source, getClassLoader()).intern());
             } catch (Exception e) {
                 log.warn(sm.getString("digester.failedToUpdateAttributes", 
newAttrs.getLocalName(i), value), e);
             }
@@ -2043,9 +2035,8 @@ public class Digester extends DefaultHandler2 {
 
 
     /**
-     * Return a new StringBuilder containing the same contents as the
-     * input buffer, except that data of form ${varname} have been
-     * replaced by the value of that var as defined in the system property.
+     * Return a new StringBuilder containing the same contents as the input 
buffer, except that data of form ${varname}
+     * have been replaced by the value of that var as defined in the system 
property.
      */
     private StringBuilder updateBodyText(StringBuilder bodyText) {
         String in = bodyText.toString();
@@ -2079,8 +2070,7 @@ public class Digester extends DefaultHandler2 {
         }
 
         @Override
-        public InputSource resolveEntity(String publicId, String systemId)
-                throws SAXException, IOException {
+        public InputSource resolveEntity(String publicId, String systemId) 
throws SAXException, IOException {
             publicId = replace(publicId);
             systemId = replace(systemId);
             return entityResolver.resolveEntity(publicId, systemId);
@@ -2100,23 +2090,21 @@ public class Digester extends DefaultHandler2 {
 
         private final EntityResolver2 entityResolver2;
 
-        EntityResolver2Wrapper(EntityResolver2 entityResolver, 
PropertySource[] source,
-                ClassLoader classLoader) {
+        EntityResolver2Wrapper(EntityResolver2 entityResolver, 
PropertySource[] source, ClassLoader classLoader) {
             super(entityResolver, source, classLoader);
             this.entityResolver2 = entityResolver;
         }
 
         @Override
-        public InputSource getExternalSubset(String name, String baseURI)
-                throws SAXException, IOException {
+        public InputSource getExternalSubset(String name, String baseURI) 
throws SAXException, IOException {
             name = replace(name);
             baseURI = replace(baseURI);
             return entityResolver2.getExternalSubset(name, baseURI);
         }
 
         @Override
-        public InputSource resolveEntity(String name, String publicId, String 
baseURI,
-                String systemId) throws SAXException, IOException {
+        public InputSource resolveEntity(String name, String publicId, String 
baseURI, String systemId)
+                throws SAXException, IOException {
             name = replace(name);
             publicId = replace(publicId);
             baseURI = replace(baseURI);
diff --git a/java/org/apache/tomcat/util/digester/DocumentProperties.java 
b/java/org/apache/tomcat/util/digester/DocumentProperties.java
index c688ee6f97..5729fed779 100644
--- a/java/org/apache/tomcat/util/digester/DocumentProperties.java
+++ b/java/org/apache/tomcat/util/digester/DocumentProperties.java
@@ -17,10 +17,8 @@
 package org.apache.tomcat.util.digester;
 
 /**
- * A collection of interfaces, one per property, that enables the object being
- * populated by the digester to signal to the digester that it supports the
- * given property and that the digester should populate that property if
- * available.
+ * A collection of interfaces, one per property, that enables the object being 
populated by the digester to signal to
+ * the digester that it supports the given property and that the digester 
should populate that property if available.
  */
 public interface DocumentProperties {
 
diff --git 
a/java/org/apache/tomcat/util/digester/EnvironmentPropertySource.java 
b/java/org/apache/tomcat/util/digester/EnvironmentPropertySource.java
index 6b4138c9eb..5b589539c9 100644
--- a/java/org/apache/tomcat/util/digester/EnvironmentPropertySource.java
+++ b/java/org/apache/tomcat/util/digester/EnvironmentPropertySource.java
@@ -22,11 +22,11 @@ import org.apache.tomcat.util.IntrospectionUtils;
 import org.apache.tomcat.util.security.PermissionCheck;
 
 /**
- * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource}
- * that uses environment variables to resolve expressions.
- *
- * <p><strong>Usage example:</strong></p>
- *
+ * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource} 
that uses environment variables to resolve
+ * expressions.
+ * <p>
+ * <strong>Usage example:</strong>
+ * </p>
  * Configure the certificate with environment variables.
  *
  * <pre>
@@ -40,10 +40,12 @@ import org.apache.tomcat.util.security.PermissionCheck;
  * </pre>
  *
  * How to configure:
+ *
  * <pre>
  * {@code
  *   echo 
"org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource"
 >> conf/catalina.properties}
  * </pre>
+ *
  * or add this to {@code CATALINA_OPTS}
  *
  * <pre>
@@ -51,12 +53,11 @@ import org.apache.tomcat.util.security.PermissionCheck;
  *   
-Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource}
  * </pre>
  *
- * <b>NOTE</b>: When configured the PropertySource for resolving expressions
- *              from system properties is still active.
+ * <b>NOTE</b>: When configured the PropertySource for resolving expressions 
from system properties is still active.
  *
  * @see Digester
- *
- * @see <a 
href="https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html#Property_replacements";>Tomcat
 Configuration Reference System Properties</a>
+ * @see <a 
href="https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html#Property_replacements";>Tomcat
+ *          Configuration Reference System Properties</a>
  */
 public class EnvironmentPropertySource implements 
IntrospectionUtils.SecurePropertySource {
 
diff --git a/java/org/apache/tomcat/util/digester/FactoryCreateRule.java 
b/java/org/apache/tomcat/util/digester/FactoryCreateRule.java
index dbeebb78dc..aa362c3977 100644
--- a/java/org/apache/tomcat/util/digester/FactoryCreateRule.java
+++ b/java/org/apache/tomcat/util/digester/FactoryCreateRule.java
@@ -20,14 +20,14 @@ import org.xml.sax.Attributes;
 
 
 /**
- * <p>Rule implementation that uses an {@link ObjectCreationFactory} to create
- * a new object which it pushes onto the object stack.  When the element is
- * complete, the object will be popped.</p>
- *
- * <p>This rule is intended in situations where the element's attributes are
- * needed before the object can be created.  A common scenario is for the
- * ObjectCreationFactory implementation to use the attributes  as parameters
- * in a call to either a factory method or to a non-empty constructor.
+ * <p>
+ * Rule implementation that uses an {@link ObjectCreationFactory} to create a 
new object which it pushes onto the object
+ * stack. When the element is complete, the object will be popped.
+ * </p>
+ * <p>
+ * This rule is intended in situations where the element's attributes are 
needed before the object can be created. A
+ * common scenario is for the ObjectCreationFactory implementation to use the 
attributes as parameters in a call to
+ * either a factory method or to a non-empty constructor.
  */
 
 public class FactoryCreateRule extends Rule {
@@ -43,16 +43,12 @@ public class FactoryCreateRule extends Rule {
     // ----------------------------------------------------------- Constructors
 
     /**
-     * Construct a factory create rule using the given, already instantiated,
-     * {@link ObjectCreationFactory}.
+     * Construct a factory create rule using the given, already instantiated, 
{@link ObjectCreationFactory}.
      *
-     * @param creationFactory called on to create the object.
-     * @param ignoreCreateExceptions if true, exceptions thrown by the object
-     *  creation factory will be ignored.
+     * @param creationFactory        called on to create the object.
+     * @param ignoreCreateExceptions if true, exceptions thrown by the object 
creation factory will be ignored.
      */
-    public FactoryCreateRule(
-                            ObjectCreationFactory creationFactory,
-                            boolean ignoreCreateExceptions) {
+    public FactoryCreateRule(ObjectCreationFactory creationFactory, boolean 
ignoreCreateExceptions) {
 
         this.creationFactory = creationFactory;
         this.ignoreCreateExceptions = ignoreCreateExceptions;
@@ -62,9 +58,8 @@ public class FactoryCreateRule extends Rule {
     // ----------------------------------------------------- Instance Variables
 
     /**
-     * The object creation factory we will use to instantiate objects
-     * as required based on the attributes specified in the matched XML
-     * element.
+     * The object creation factory we will use to instantiate objects as 
required based on the attributes specified in
+     * the matched XML element.
      */
     protected ObjectCreationFactory creationFactory;
 
@@ -90,8 +85,8 @@ public class FactoryCreateRule extends Rule {
                 Object instance = creationFactory.createObject(attributes);
 
                 if (digester.log.isTraceEnabled()) {
-                    digester.log.trace("[FactoryCreateRule]{" + digester.match 
+
-                            "} New " + instance.getClass().getName());
+                    digester.log
+                            .trace("[FactoryCreateRule]{" + digester.match + 
"} New " + instance.getClass().getName());
                 }
                 digester.push(instance);
                 exceptionIgnoredStack.push(Boolean.FALSE);
@@ -103,7 +98,7 @@ public class FactoryCreateRule extends Rule {
                             ((e.getMessage() == null) ? e.getClass().getName() 
: e.getMessage())), e);
                 } else if (digester.log.isInfoEnabled()) {
                     digester.log.info(sm.getString("rule.createError",
-                        ((e.getMessage() == null) ? e.getClass().getName() : 
e.getMessage())));
+                            ((e.getMessage() == null) ? e.getClass().getName() 
: e.getMessage())));
                 }
                 exceptionIgnoredStack.push(Boolean.TRUE);
             }
@@ -112,8 +107,7 @@ public class FactoryCreateRule extends Rule {
             Object instance = creationFactory.createObject(attributes);
 
             if (digester.log.isTraceEnabled()) {
-                digester.log.trace("[FactoryCreateRule]{" + digester.match +
-                        "} New " + instance.getClass().getName());
+                digester.log.trace("[FactoryCreateRule]{" + digester.match + 
"} New " + instance.getClass().getName());
             }
             digester.push(instance);
         }
@@ -128,10 +122,7 @@ public class FactoryCreateRule extends Rule {
 
         // check if object was created
         // this only happens if an exception was thrown, and we're ignoring 
them
-        if (
-                ignoreCreateExceptions &&
-                exceptionIgnoredStack != null &&
-                !(exceptionIgnoredStack.empty())) {
+        if (ignoreCreateExceptions && exceptionIgnoredStack != null && 
!(exceptionIgnoredStack.empty())) {
 
             if ((exceptionIgnoredStack.pop()).booleanValue()) {
                 // creation exception was ignored
@@ -145,8 +136,7 @@ public class FactoryCreateRule extends Rule {
 
         Object top = digester.pop();
         if (digester.log.isTraceEnabled()) {
-            digester.log.trace("[FactoryCreateRule]{" + digester.match +
-                    "} Pop " + top.getClass().getName());
+            digester.log.trace("[FactoryCreateRule]{" + digester.match + "} 
Pop " + top.getClass().getName());
         }
 
     }
diff --git a/java/org/apache/tomcat/util/digester/ObjectCreateRule.java 
b/java/org/apache/tomcat/util/digester/ObjectCreateRule.java
index 37f0697dc8..0dbac181c1 100644
--- a/java/org/apache/tomcat/util/digester/ObjectCreateRule.java
+++ b/java/org/apache/tomcat/util/digester/ObjectCreateRule.java
@@ -21,8 +21,7 @@ import org.xml.sax.Attributes;
 
 
 /**
- * Rule implementation that creates a new object and pushes it
- * onto the object stack.  When the element is complete, the
+ * Rule implementation that creates a new object and pushes it onto the object 
stack. When the element is complete, the
  * object will be popped
  */
 
@@ -45,15 +44,13 @@ public class ObjectCreateRule extends Rule {
 
 
     /**
-     * Construct an object create rule with the specified class name and an
-     * optional attribute name containing an override.
+     * Construct an object create rule with the specified class name and an 
optional attribute name containing an
+     * override.
      *
-     * @param className Java class name of the object to be created
-     * @param attributeName Attribute name which, if present, contains an
-     *  override of the class name to create
+     * @param className     Java class name of the object to be created
+     * @param attributeName Attribute name which, if present, contains an 
override of the class name to create
      */
-    public ObjectCreateRule(String className,
-                            String attributeName) {
+    public ObjectCreateRule(String className, String attributeName) {
 
         this.className = className;
         this.attributeName = attributeName;
@@ -81,16 +78,13 @@ public class ObjectCreateRule extends Rule {
     /**
      * Process the beginning of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace  the namespace URI of the matching element, or an 
empty string if the parser is not namespace
+     *                       aware or the element has no namespace
+     * @param name       the local name if the parser is namespace aware, or 
just the element name otherwise
      * @param attributes The attribute list for this element
      */
     @Override
-    public void begin(String namespace, String name, Attributes attributes)
-            throws Exception {
+    public void begin(String namespace, String name, Attributes attributes) 
throws Exception {
 
         String realClassName = getRealClassName(attributes);
 
@@ -115,7 +109,9 @@ public class ObjectCreateRule extends Rule {
 
     /**
      * Return the actual class name of the class to be instantiated.
+     *
      * @param attributes The attribute list for this element
+     *
      * @return the class name
      */
     protected String getRealClassName(Attributes attributes) {
@@ -134,19 +130,16 @@ public class ObjectCreateRule extends Rule {
     /**
      * Process the end of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
      */
     @Override
     public void end(String namespace, String name) throws Exception {
 
         Object top = digester.pop();
         if (digester.log.isTraceEnabled()) {
-            digester.log.trace("[ObjectCreateRule]{" + digester.match +
-                    "} Pop " + top.getClass().getName());
+            digester.log.trace("[ObjectCreateRule]{" + digester.match + "} Pop 
" + top.getClass().getName());
         }
 
     }
diff --git a/java/org/apache/tomcat/util/digester/ObjectCreationFactory.java 
b/java/org/apache/tomcat/util/digester/ObjectCreationFactory.java
index 39cbda25da..9dd99f3496 100644
--- a/java/org/apache/tomcat/util/digester/ObjectCreationFactory.java
+++ b/java/org/apache/tomcat/util/digester/ObjectCreationFactory.java
@@ -20,36 +20,35 @@ package org.apache.tomcat.util.digester;
 import org.xml.sax.Attributes;
 
 /**
- * <p> Interface for use with {@link FactoryCreateRule}.
- * The rule calls {@link #createObject} to create an object
- * to be pushed onto the <code>Digester</code> stack
- * whenever it is matched.</p>
- *
- * <p> {@link AbstractObjectCreationFactory} is an abstract
- * implementation suitable for creating anonymous
+ * <p>
+ * Interface for use with {@link FactoryCreateRule}. The rule calls {@link 
#createObject} to create an object to be
+ * pushed onto the <code>Digester</code> stack whenever it is matched.
+ * </p>
+ * <p>
+ * {@link AbstractObjectCreationFactory} is an abstract implementation 
suitable for creating anonymous
  * <code>ObjectCreationFactory</code> implementations.
  */
 public interface ObjectCreationFactory {
 
     /**
-     * Factory method called by {@link FactoryCreateRule} to supply an
-     * object based on the element's attributes.
+     * Factory method called by {@link FactoryCreateRule} to supply an object 
based on the element's attributes.
      *
      * @param attributes the element's attributes
+     *
      * @return the created object
+     *
      * @throws Exception any exception thrown will be propagated upwards
      */
     Object createObject(Attributes attributes) throws Exception;
 
     /**
-     * @return the {@link Digester} that was set by the
-     * {@link FactoryCreateRule} upon initialization.
+     * @return the {@link Digester} that was set by the {@link 
FactoryCreateRule} upon initialization.
      */
     Digester getDigester();
 
     /**
-     * Set the {@link Digester} to allow the implementation to do logging,
-     * classloading based on the digester's classloader, etc.
+     * Set the {@link Digester} to allow the implementation to do logging, 
classloading based on the digester's
+     * classloader, etc.
      *
      * @param digester parent Digester object
      */
diff --git a/java/org/apache/tomcat/util/digester/Rule.java 
b/java/org/apache/tomcat/util/digester/Rule.java
index 5c77de4f9c..41ba78c530 100644
--- a/java/org/apache/tomcat/util/digester/Rule.java
+++ b/java/org/apache/tomcat/util/digester/Rule.java
@@ -20,8 +20,8 @@ import org.apache.tomcat.util.res.StringManager;
 import org.xml.sax.Attributes;
 
 /**
- * Concrete implementations of this class implement actions to be taken when
- * a corresponding nested pattern of XML elements has been matched.
+ * Concrete implementations of this class implement actions to be taken when a 
corresponding nested pattern of XML
+ * elements has been matched.
  */
 public abstract class Rule {
 
@@ -30,10 +30,12 @@ public abstract class Rule {
     // ----------------------------------------------------------- Constructors
 
     /**
-     * <p>Base constructor.
-     * Now the digester will be set when the rule is added.</p>
+     * <p>
+     * Base constructor. Now the digester will be set when the rule is added.
+     * </p>
      */
-    public Rule() {}
+    public Rule() {
+    }
 
 
     // ----------------------------------------------------- Instance Variables
@@ -64,8 +66,7 @@ public abstract class Rule {
 
 
     /**
-     * Set the <code>Digester</code> with which this <code>Rule</code> is
-     * associated.
+     * Set the <code>Digester</code> with which this <code>Rule</code> is 
associated.
      *
      * @param digester The digester with which to associate this rule
      */
@@ -77,8 +78,7 @@ public abstract class Rule {
     /**
      * Return the namespace URI for which this Rule is relevant, if any.
      *
-     * @return The namespace URI for which this rule is relevant or
-     *         <code>null</code> if none.
+     * @return The namespace URI for which this rule is relevant or 
<code>null</code> if none.
      */
     public String getNamespaceURI() {
         return namespaceURI;
@@ -88,8 +88,8 @@ public abstract class Rule {
     /**
      * Set the namespace URI for which this Rule is relevant, if any.
      *
-     * @param namespaceURI Namespace URI for which this Rule is relevant,
-     *  or <code>null</code> to match independent of namespace.
+     * @param namespaceURI Namespace URI for which this Rule is relevant, or 
<code>null</code> to match independent of
+     *                         namespace.
      */
     public void setNamespaceURI(String namespaceURI) {
         this.namespaceURI = namespaceURI;
@@ -99,14 +99,12 @@ public abstract class Rule {
     // --------------------------------------------------------- Public Methods
 
     /**
-     * This method is called when the beginning of a matching XML element
-     * is encountered. The default implementation is a NO-OP.
+     * This method is called when the beginning of a matching XML element is 
encountered. The default implementation is
+     * a NO-OP.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *                  empty string if the parser is not namespace aware or 
the
-     *                  element has no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *             the element name otherwise
+     * @param namespace  the namespace URI of the matching element, or an 
empty string if the parser is not namespace
+     *                       aware or the element has no namespace
+     * @param name       the local name if the parser is namespace aware, or 
just the element name otherwise
      * @param attributes The attribute list of this element
      *
      * @throws Exception if an error occurs while processing the event
@@ -117,16 +115,13 @@ public abstract class Rule {
 
 
     /**
-     * This method is called when the body of a matching XML element is
-     * encountered.  If the element has no body, this method is not called at
-     * all. The default implementation is a NO-OP.
+     * This method is called when the body of a matching XML element is 
encountered. If the element has no body, this
+     * method is not called at all. The default implementation is a NO-OP.
      *
-     * @param namespace the namespace URI of the matching element, or an empty
-     *                  string if the parser is not namespace aware or the
-     *                  element has no namespace
-     * @param name the local name if the parser is namespace aware, or just the
-     *             element name otherwise
-     * @param text The text of the body of this element
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
+     * @param text      The text of the body of this element
      *
      * @throws Exception if an error occurs while processing the event
      */
@@ -136,14 +131,12 @@ public abstract class Rule {
 
 
     /**
-     * This method is called when the end of a matching XML element
-     * is encountered. The default implementation is a NO-OP.
+     * This method is called when the end of a matching XML element is 
encountered. The default implementation is a
+     * NO-OP.
      *
-     * @param namespace the namespace URI of the matching element, or an empty
-     *                  string if the parser is not namespace aware or the
-     *                  element has no namespace
-     * @param name the local name if the parser is namespace aware, or just the
-     *             element name otherwise
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
      *
      * @throws Exception if an error occurs while processing the event
      */
@@ -153,8 +146,7 @@ public abstract class Rule {
 
 
     /**
-     * This method is called after all parsing methods have been
-     * called, to allow Rules to remove temporary data.
+     * This method is called after all parsing methods have been called, to 
allow Rules to remove temporary data.
      *
      * @throws Exception if an error occurs while processing the event
      */
diff --git a/java/org/apache/tomcat/util/digester/RuleSet.java 
b/java/org/apache/tomcat/util/digester/RuleSet.java
index 990dee3602..5527fda803 100644
--- a/java/org/apache/tomcat/util/digester/RuleSet.java
+++ b/java/org/apache/tomcat/util/digester/RuleSet.java
@@ -17,31 +17,28 @@
 package org.apache.tomcat.util.digester;
 
 /**
- * <p>Public interface defining a shorthand means of configuring a complete
- * set of related <code>Rule</code> definitions, possibly associated with
- * a particular namespace URI, in one operation.  To use an instance of a
- * class that implements this interface:</p>
+ * <p>
+ * Public interface defining a shorthand means of configuring a complete set 
of related <code>Rule</code> definitions,
+ * possibly associated with a particular namespace URI, in one operation. To 
use an instance of a class that implements
+ * this interface:
+ * </p>
  * <ul>
  * <li>Create a concrete implementation of this interface.</li>
- * <li>Optionally, you can configure a <code>RuleSet</code> to be relevant
- *     only for a particular namespace URI by configuring the value to be
- *     returned by <code>getNamespaceURI()</code>.</li>
- * <li>As you are configuring your Digester instance, call
- *     <code>digester.addRuleSet()</code> and pass the RuleSet instance.</li>
- * <li>Digester will call the <code>addRuleInstances()</code> method of
- *     your RuleSet to configure the necessary rules.</li>
+ * <li>Optionally, you can configure a <code>RuleSet</code> to be relevant 
only for a particular namespace URI by
+ * configuring the value to be returned by <code>getNamespaceURI()</code>.</li>
+ * <li>As you are configuring your Digester instance, call 
<code>digester.addRuleSet()</code> and pass the RuleSet
+ * instance.</li>
+ * <li>Digester will call the <code>addRuleInstances()</code> method of your 
RuleSet to configure the necessary
+ * rules.</li>
  * </ul>
  */
 public interface RuleSet {
 
     /**
-     * Add the set of Rule instances defined in this RuleSet to the
-     * specified <code>Digester</code> instance, associating them with
-     * our namespace URI (if any).  This method should only be called
-     * by a Digester instance.
+     * Add the set of Rule instances defined in this RuleSet to the specified 
<code>Digester</code> instance,
+     * associating them with our namespace URI (if any). This method should 
only be called by a Digester instance.
      *
-     * @param digester Digester instance to which the new Rule instances
-     *  should be added.
+     * @param digester Digester instance to which the new Rule instances 
should be added.
      */
     void addRuleInstances(Digester digester);
 }
diff --git a/java/org/apache/tomcat/util/digester/Rules.java 
b/java/org/apache/tomcat/util/digester/Rules.java
index d22a3658cc..f600979336 100644
--- a/java/org/apache/tomcat/util/digester/Rules.java
+++ b/java/org/apache/tomcat/util/digester/Rules.java
@@ -19,18 +19,16 @@ package org.apache.tomcat.util.digester;
 import java.util.List;
 
 /**
- * Public interface defining a collection of Rule instances (and corresponding
- * matching patterns) plus an implementation of a matching policy that selects
- * the rules that match a particular pattern of nested elements discovered
- * during parsing.
+ * Public interface defining a collection of Rule instances (and corresponding 
matching patterns) plus an implementation
+ * of a matching policy that selects the rules that match a particular pattern 
of nested elements discovered during
+ * parsing.
  */
 public interface Rules {
 
     // ------------------------------------------------------------- Properties
 
     /**
-     * @return the Digester instance with which this Rules instance is
-     * associated.
+     * @return the Digester instance with which this Rules instance is 
associated.
      */
     Digester getDigester();
 
@@ -49,7 +47,7 @@ public interface Rules {
      * Register a new Rule instance matching the specified pattern.
      *
      * @param pattern Nesting pattern to be matched for this Rule
-     * @param rule Rule instance to be registered
+     * @param rule    Rule instance to be registered
      */
     void add(String pattern, Rule rule);
 
@@ -61,26 +59,24 @@ public interface Rules {
 
 
     /**
-     * Return a List of all registered Rule instances that match the specified
-     * nesting pattern, or a zero-length List if there are no matches.  If more
-     * than one Rule instance matches, they <strong>must</strong> be returned
-     * in the order originally registered through the <code>add()</code>
-     * method.
+     * Return a List of all registered Rule instances that match the specified 
nesting pattern, or a zero-length List if
+     * there are no matches. If more than one Rule instance matches, they 
<strong>must</strong> be returned in the order
+     * originally registered through the <code>add()</code> method.
+     *
+     * @param namespaceURI Namespace URI for which to select matching rules, 
or <code>null</code> to match regardless of
+     *                         namespace URI
+     * @param pattern      Nesting pattern to be matched
      *
-     * @param namespaceURI Namespace URI for which to select matching rules,
-     *  or <code>null</code> to match regardless of namespace URI
-     * @param pattern Nesting pattern to be matched
      * @return a rules list
      */
     List<Rule> match(String namespaceURI, String pattern);
 
 
     /**
-     * Return a List of all registered Rule instances, or a zero-length List
-     * if there are no registered Rule instances.  If more than one Rule
-     * instance has been registered, they <strong>must</strong> be returned
-     * in the order originally registered through the <code>add()</code>
-     * method.
+     * Return a List of all registered Rule instances, or a zero-length List 
if there are no registered Rule instances.
+     * If more than one Rule instance has been registered, they 
<strong>must</strong> be returned in the order
+     * originally registered through the <code>add()</code> method.
+     *
      * @return a rules list
      */
     List<Rule> rules();
diff --git a/java/org/apache/tomcat/util/digester/RulesBase.java 
b/java/org/apache/tomcat/util/digester/RulesBase.java
index 7e113331d4..cc4a7912c5 100644
--- a/java/org/apache/tomcat/util/digester/RulesBase.java
+++ b/java/org/apache/tomcat/util/digester/RulesBase.java
@@ -21,19 +21,18 @@ import java.util.HashMap;
 import java.util.List;
 
 /**
- * <p>Default implementation of the <code>Rules</code> interface that supports
- * the standard rule matching behavior.  This class can also be used as a
- * base class for specialized <code>Rules</code> implementations.</p>
- *
- * <p>The matching policies implemented by this class support two different
- * types of pattern matching rules:</p>
+ * <p>
+ * Default implementation of the <code>Rules</code> interface that supports 
the standard rule matching behavior. This
+ * class can also be used as a base class for specialized <code>Rules</code> 
implementations.
+ * </p>
+ * <p>
+ * The matching policies implemented by this class support two different types 
of pattern matching rules:
+ * </p>
  * <ul>
- * <li><em>Exact Match</em> - A pattern "a/b/c" exactly matches a
- *     <code>&lt;c&gt;</code> element, nested inside a <code>&lt;b&gt;</code>
- *     element, which is nested inside an <code>&lt;a&gt;</code> element.</li>
- * <li><em>Tail Match</em> - A pattern "&#42;/a/b" matches a
- *     <code>&lt;b&gt;</code> element, nested inside an <code>&lt;a&gt;</code>
- *      element, no matter how deeply the pair is nested.</li>
+ * <li><em>Exact Match</em> - A pattern "a/b/c" exactly matches a 
<code>&lt;c&gt;</code> element, nested inside a
+ * <code>&lt;b&gt;</code> element, which is nested inside an 
<code>&lt;a&gt;</code> element.</li>
+ * <li><em>Tail Match</em> - A pattern "&#42;/a/b" matches a 
<code>&lt;b&gt;</code> element, nested inside an
+ * <code>&lt;a&gt;</code> element, no matter how deeply the pair is 
nested.</li>
  * </ul>
  */
 public class RulesBase implements Rules {
@@ -41,9 +40,8 @@ public class RulesBase implements Rules {
     // ----------------------------------------------------- Instance Variables
 
     /**
-     * The set of registered Rule instances, keyed by the matching pattern.
-     * Each value is a List containing the Rules for that pattern, in the
-     * order that they were originally registered.
+     * The set of registered Rule instances, keyed by the matching pattern. 
Each value is a List containing the Rules
+     * for that pattern, in the order that they were originally registered.
      */
     protected HashMap<String,List<Rule>> cache = new HashMap<>();
 
@@ -55,8 +53,7 @@ public class RulesBase implements Rules {
 
 
     /**
-     * The set of registered Rule instances, in the order that they were
-     * originally registered.
+     * The set of registered Rule instances, in the order that they were 
originally registered.
      */
     protected ArrayList<Rule> rules = new ArrayList<>();
 
@@ -64,8 +61,7 @@ public class RulesBase implements Rules {
     // ------------------------------------------------------------- Properties
 
     /**
-     * Return the Digester instance with which this Rules instance is
-     * associated.
+     * Return the Digester instance with which this Rules instance is 
associated.
      */
     @Override
     public Digester getDigester() {
@@ -93,14 +89,14 @@ public class RulesBase implements Rules {
      * Register a new Rule instance matching the specified pattern.
      *
      * @param pattern Nesting pattern to be matched for this Rule
-     * @param rule Rule instance to be registered
+     * @param rule    Rule instance to be registered
      */
     @Override
     public void add(String pattern, Rule rule) {
         // to help users who accidentally add '/' to the end of their patterns
         int patternLength = pattern.length();
-        if (patternLength>1 && pattern.endsWith("/")) {
-            pattern = pattern.substring(0, patternLength-1);
+        if (patternLength > 1 && pattern.endsWith("/")) {
+            pattern = pattern.substring(0, patternLength - 1);
         }
 
         cache.computeIfAbsent(pattern, k -> new ArrayList<>()).add(rule);
@@ -122,15 +118,13 @@ public class RulesBase implements Rules {
 
 
     /**
-     * Return a List of all registered Rule instances that match the specified
-     * nesting pattern, or a zero-length List if there are no matches.  If more
-     * than one Rule instance matches, they <strong>must</strong> be returned
-     * in the order originally registered through the <code>add()</code>
-     * method.
+     * Return a List of all registered Rule instances that match the specified 
nesting pattern, or a zero-length List if
+     * there are no matches. If more than one Rule instance matches, they 
<strong>must</strong> be returned in the order
+     * originally registered through the <code>add()</code> method.
      *
-     * @param namespaceURI Namespace URI for which to select matching rules,
-     *  or <code>null</code> to match regardless of namespace URI
-     * @param pattern Nesting pattern to be matched
+     * @param namespaceURI Namespace URI for which to select matching rules, 
or <code>null</code> to match regardless of
+     *                         namespace URI
+     * @param pattern      Nesting pattern to be matched
      */
     @Override
     public List<Rule> match(String namespaceURI, String pattern) {
@@ -142,8 +136,7 @@ public class RulesBase implements Rules {
             String longKey = "";
             for (String key : this.cache.keySet()) {
                 if (key.startsWith("*/")) {
-                    if (pattern.equals(key.substring(2)) ||
-                        pattern.endsWith(key.substring(1))) {
+                    if (pattern.equals(key.substring(2)) || 
pattern.endsWith(key.substring(1))) {
                         if (key.length() > longKey.length()) {
                             // rulesList = (List) this.cache.get(key);
                             rulesList = lookup(namespaceURI, key);
@@ -161,11 +154,9 @@ public class RulesBase implements Rules {
 
 
     /**
-     * Return a List of all registered Rule instances, or a zero-length List
-     * if there are no registered Rule instances.  If more than one Rule
-     * instance has been registered, they <strong>must</strong> be returned
-     * in the order originally registered through the <code>add()</code>
-     * method.
+     * Return a List of all registered Rule instances, or a zero-length List 
if there are no registered Rule instances.
+     * If more than one Rule instance has been registered, they 
<strong>must</strong> be returned in the order
+     * originally registered through the <code>add()</code> method.
      */
     @Override
     public List<Rule> rules() {
@@ -176,13 +167,13 @@ public class RulesBase implements Rules {
     // ------------------------------------------------------ Protected Methods
 
     /**
-     * Return a List of Rule instances for the specified pattern that also
-     * match the specified namespace URI (if any).  If there are no such
-     * rules, return <code>null</code>.
+     * Return a List of Rule instances for the specified pattern that also 
match the specified namespace URI (if any).
+     * If there are no such rules, return <code>null</code>.
+     *
+     * @param namespaceURI Namespace URI to match, or <code>null</code> to 
select matching rules regardless of namespace
+     *                         URI
+     * @param pattern      Pattern to be matched
      *
-     * @param namespaceURI Namespace URI to match, or <code>null</code> to
-     *  select matching rules regardless of namespace URI
-     * @param pattern Pattern to be matched
      * @return a rules list
      */
     protected List<Rule> lookup(String namespaceURI, String pattern) {
@@ -198,8 +189,7 @@ public class RulesBase implements Rules {
         // Select only Rules that match on the specified namespace URI
         List<Rule> results = new ArrayList<>();
         for (Rule item : list) {
-            if ((namespaceURI.equals(item.getNamespaceURI())) ||
-                    (item.getNamespaceURI() == null)) {
+            if ((namespaceURI.equals(item.getNamespaceURI())) || 
(item.getNamespaceURI() == null)) {
                 results.add(item);
             }
         }
diff --git 
a/java/org/apache/tomcat/util/digester/ServiceBindingPropertySource.java 
b/java/org/apache/tomcat/util/digester/ServiceBindingPropertySource.java
index 5a26de0a97..4e5bf50878 100644
--- a/java/org/apache/tomcat/util/digester/ServiceBindingPropertySource.java
+++ b/java/org/apache/tomcat/util/digester/ServiceBindingPropertySource.java
@@ -27,16 +27,15 @@ import org.apache.tomcat.util.IntrospectionUtils;
 import org.apache.tomcat.util.security.PermissionCheck;
 
 /**
- * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource}
- * that uses Kubernetes service bindings to resolve expressions.
- *
+ * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource} 
that uses Kubernetes service bindings to
+ * resolve expressions.
  * <p>
- *   The Kubernetes service binding specification can be found at
- *   <a href="https://servicebinding.io/";>https://servicebinding.io/</a>.
+ * The Kubernetes service binding specification can be found at
+ * <a href="https://servicebinding.io/";>https://servicebinding.io/</a>.
+ * </p>
+ * <p>
+ * <strong>Usage example:</strong>
  * </p>
- *
- * <p><strong>Usage example:</strong></p>
- *
  * Configure the certificate with a service binding.
  * <p>
  * When the service binding is constructed as follows:
@@ -49,6 +48,7 @@ import org.apache.tomcat.util.security.PermissionCheck;
  *                                            /chainFile
  *                                            /keyPassword
  * </pre>
+ *
  * <pre>
  *   {@code
  *     <SSLHostConfig>
@@ -59,20 +59,19 @@ import org.apache.tomcat.util.security.PermissionCheck;
  *                        type="RSA" />
  *     </SSLHostConfig> }
  * </pre>
- *
  * <p>
- *   The optional <code>chomp:</code> prefix will cause the 
ServiceBindingPropertySource
- *   to trim a single newline (<code>\r\n</code>, <code>\r</code>, or 
<code>\n</code>)
- *   from the end of the file, if it exists. This is a convenience for 
hand-edited
- *   files/values where removing a trailing newline is difficult, and trailing
- *   whitespace changes the meaning of the value.
+ * The optional <code>chomp:</code> prefix will cause the 
ServiceBindingPropertySource to trim a single newline
+ * (<code>\r\n</code>, <code>\r</code>, or <code>\n</code>) from the end of 
the file, if it exists. This is a
+ * convenience for hand-edited files/values where removing a trailing newline 
is difficult, and trailing whitespace
+ * changes the meaning of the value.
  * </p>
- *
  * How to configure:
+ *
  * <pre>
  * {@code
  *   echo 
"org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.ServiceBindingPropertySource"
 >> conf/catalina.properties}
  * </pre>
+ *
  * or add this to {@code CATALINA_OPTS}
  *
  * <pre>
@@ -80,13 +79,11 @@ import org.apache.tomcat.util.security.PermissionCheck;
  *   
-Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.ServiceBindingPropertySource}
  * </pre>
  *
- * <b>NOTE</b>: When configured the PropertySource for resolving expressions
- *              from system properties is still active.
+ * <b>NOTE</b>: When configured the PropertySource for resolving expressions 
from system properties is still active.
  *
  * @see Digester
- *
  * @see <a 
href="https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html#Property_replacements";>Tomcat
- *      Configuration Reference System Properties</a>
+ *          Configuration Reference System Properties</a>
  */
 public class ServiceBindingPropertySource implements 
IntrospectionUtils.SecurePropertySource {
 
@@ -144,7 +141,7 @@ public class ServiceBindingPropertySource implements 
IntrospectionUtils.SecurePr
             int length = bytes.length;
 
             if (chomp) {
-                if(length > 1 && bytes[length - 2] == '\r' && bytes[length - 
1] == '\n') {
+                if (length > 1 && bytes[length - 2] == '\r' && bytes[length - 
1] == '\n') {
                     length -= 2;
                 } else if (length > 0) {
                     byte c = bytes[length - 1];
diff --git a/java/org/apache/tomcat/util/digester/SetNextRule.java 
b/java/org/apache/tomcat/util/digester/SetNextRule.java
index 4709205a58..2bfd5292db 100644
--- a/java/org/apache/tomcat/util/digester/SetNextRule.java
+++ b/java/org/apache/tomcat/util/digester/SetNextRule.java
@@ -20,14 +20,14 @@ import org.apache.tomcat.util.IntrospectionUtils;
 
 
 /**
- * <p>Rule implementation that calls a method on the (top-1) (parent)
- * object, passing the top object (child) as an argument.  It is
- * commonly used to establish parent-child relationships.</p>
- *
- * <p>This rule now supports more flexible method matching by default.
- * It is possible that this may break (some) code
- * written against release 1.1.1 or earlier.
- * See {@link #isExactMatch()} for more details.</p>
+ * <p>
+ * Rule implementation that calls a method on the (top-1) (parent) object, 
passing the top object (child) as an
+ * argument. It is commonly used to establish parent-child relationships.
+ * </p>
+ * <p>
+ * This rule now supports more flexible method matching by default. It is 
possible that this may break (some) code
+ * written against release 1.1.1 or earlier. See {@link #isExactMatch()} for 
more details.
+ * </p>
  */
 
 public class SetNextRule extends Rule {
@@ -38,13 +38,11 @@ public class SetNextRule extends Rule {
      * Construct a "set next" rule with the specified method name.
      *
      * @param methodName Method name of the parent method to call
-     * @param paramType Java class of the parent method's argument
-     *  (if you wish to use a primitive type, specify the corresponding
-     *  Java wrapper class instead, such as <code>java.lang.Boolean</code>
-     *  for a <code>boolean</code> parameter)
+     * @param paramType  Java class of the parent method's argument (if you 
wish to use a primitive type, specify the
+     *                       corresponding Java wrapper class instead, such as 
<code>java.lang.Boolean</code> for a
+     *                       <code>boolean</code> parameter)
      */
-    public SetNextRule(String methodName,
-                       String paramType) {
+    public SetNextRule(String methodName, String paramType) {
 
         this.methodName = methodName;
         this.paramType = paramType;
@@ -75,23 +73,26 @@ public class SetNextRule extends Rule {
 
 
     /**
-     * <p>Is exact matching being used.</p>
-     *
-     * <p>This rule uses <code>org.apache.commons.beanutils.MethodUtils</code>
-     * to introspect the relevant objects so that the right method can be 
called.
-     * Originally, <code>MethodUtils.invokeExactMethod</code> was used.
-     * This matches methods very strictly
-     * and so may not find a matching method when one exists.
-     * This is still the behaviour when exact matching is enabled.</p>
-     *
-     * <p>When exact matching is disabled, 
<code>MethodUtils.invokeMethod</code> is used.
-     * This method finds more methods but is less precise when there are 
several methods
-     * with correct signatures.
-     * So, if you want to choose an exact signature you might need to enable 
this property.</p>
-     *
-     * <p>The default setting is to disable exact matches.</p>
+     * <p>
+     * Is exact matching being used.
+     * </p>
+     * <p>
+     * This rule uses <code>org.apache.commons.beanutils.MethodUtils</code> to 
introspect the relevant objects so that
+     * the right method can be called. Originally, 
<code>MethodUtils.invokeExactMethod</code> was used. This matches
+     * methods very strictly and so may not find a matching method when one 
exists. This is still the behaviour when
+     * exact matching is enabled.
+     * </p>
+     * <p>
+     * When exact matching is disabled, <code>MethodUtils.invokeMethod</code> 
is used. This method finds more methods
+     * but is less precise when there are several methods with correct 
signatures. So, if you want to choose an exact
+     * signature you might need to enable this property.
+     * </p>
+     * <p>
+     * The default setting is to disable exact matches.
+     * </p>
      *
      * @return true iff exact matching is enabled
+     *
      * @since Digester Release 1.1.1
      */
     public boolean isExactMatch() {
@@ -100,11 +101,15 @@ public class SetNextRule extends Rule {
     }
 
     /**
-     * <p>Set whether exact matching is enabled.</p>
-     *
-     * <p>See {@link #isExactMatch()}.</p>
+     * <p>
+     * Set whether exact matching is enabled.
+     * </p>
+     * <p>
+     * See {@link #isExactMatch()}.
+     * </p>
      *
      * @param useExactMatch should this rule use exact method matching
+     *
      * @since Digester Release 1.1.1
      */
     public void setExactMatch(boolean useExactMatch) {
@@ -115,11 +120,9 @@ public class SetNextRule extends Rule {
     /**
      * Process the end of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param name the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace the namespace URI of the matching element, or an empty 
string if the parser is not namespace
+     *                      aware or the element has no namespace
+     * @param name      the local name if the parser is namespace aware, or 
just the element name otherwise
      */
     @Override
     public void end(String namespace, String name) throws Exception {
@@ -129,19 +132,16 @@ public class SetNextRule extends Rule {
         Object parent = digester.peek(1);
         if (digester.log.isTraceEnabled()) {
             if (parent == null) {
-                digester.log.trace("[SetNextRule]{" + digester.match +
-                        "} Call [NULL PARENT]." +
-                        methodName + "(" + child + ")");
+                digester.log.trace(
+                        "[SetNextRule]{" + digester.match + "} Call [NULL 
PARENT]." + methodName + "(" + child + ")");
             } else {
-                digester.log.trace("[SetNextRule]{" + digester.match +
-                        "} Call " + parent.getClass().getName() + "." +
+                digester.log.trace("[SetNextRule]{" + digester.match + "} Call 
" + parent.getClass().getName() + "." +
                         methodName + "(" + child + ")");
             }
         }
 
         // Call the specified method
-        IntrospectionUtils.callMethod1(parent, methodName,
-                child, paramType, digester.getClassLoader());
+        IntrospectionUtils.callMethod1(parent, methodName, child, paramType, 
digester.getClassLoader());
 
         StringBuilder code = digester.getGeneratedCode();
         if (code != null) {
diff --git a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java 
b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
index 5c2c6e6d68..bf11213eb4 100644
--- a/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
+++ b/java/org/apache/tomcat/util/digester/SetPropertiesRule.java
@@ -24,8 +24,10 @@ import org.xml.sax.Attributes;
 
 
 /**
- * <p>Rule implementation that sets properties on the object at the top of the
- * stack, based on attributes with corresponding names.</p>
+ * <p>
+ * Rule implementation that sets properties on the object at the top of the 
stack, based on attributes with
+ * corresponding names.
+ * </p>
  */
 
 public class SetPropertiesRule extends Rule {
@@ -52,23 +54,19 @@ public class SetPropertiesRule extends Rule {
     /**
      * Process the beginning of this element.
      *
-     * @param namespace the namespace URI of the matching element, or an
-     *   empty string if the parser is not namespace aware or the element has
-     *   no namespace
-     * @param theName the local name if the parser is namespace aware, or just
-     *   the element name otherwise
+     * @param namespace  the namespace URI of the matching element, or an 
empty string if the parser is not namespace
+     *                       aware or the element has no namespace
+     * @param theName    the local name if the parser is namespace aware, or 
just the element name otherwise
      * @param attributes The attribute list for this element
      */
     @Override
-    public void begin(String namespace, String theName, Attributes attributes)
-            throws Exception {
+    public void begin(String namespace, String theName, Attributes attributes) 
throws Exception {
 
         // Populate the corresponding properties of the top object
         Object top = digester.peek();
         if (digester.log.isTraceEnabled()) {
-            digester.log.trace("[SetPropertiesRule]{" + digester.match +
-                    "} Set " + top.getClass().getName() +
-                    " properties");
+            digester.log.trace(
+                    "[SetPropertiesRule]{" + digester.match + "} Set " + 
top.getClass().getName() + " properties");
         }
         StringBuilder code = digester.getGeneratedCode();
         String variableName = null;
@@ -84,8 +82,7 @@ public class SetPropertiesRule extends Rule {
             String value = attributes.getValue(i);
 
             if (digester.log.isTraceEnabled()) {
-                digester.log.trace("[SetPropertiesRule]{" + digester.match +
-                        "} Setting property '" + name + "' to '" +
+                digester.log.trace("[SetPropertiesRule]{" + digester.match + 
"} Setting property '" + name + "' to '" +
                         value + "'");
             }
             if (!digester.isFakeAttribute(top, name) && (excludes == null || 
!excludes.containsKey(name))) {
diff --git a/java/org/apache/tomcat/util/digester/SystemPropertySource.java 
b/java/org/apache/tomcat/util/digester/SystemPropertySource.java
index 49fc765f44..15dd414f0a 100644
--- a/java/org/apache/tomcat/util/digester/SystemPropertySource.java
+++ b/java/org/apache/tomcat/util/digester/SystemPropertySource.java
@@ -23,9 +23,8 @@ import org.apache.tomcat.util.IntrospectionUtils;
 import org.apache.tomcat.util.security.PermissionCheck;
 
 /**
- * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource}
- * that uses system properties to resolve expressions.
- * This property source is always active by default.
+ * A {@link org.apache.tomcat.util.IntrospectionUtils.SecurePropertySource} 
that uses system properties to resolve
+ * expressions. This property source is always active by default.
  *
  * @see Digester
  */


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org


Reply via email to