You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/07/24 20:27:46 UTC

[01/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Repository: struts
Updated Branches:
  refs/heads/master 98d7756cb -> 775c82a74


http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxp.java
----------------------------------------------------------------------
diff --git a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxp.java b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxp.java
index 6bd0028..a1a3cff 100644
--- a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxp.java
+++ b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxp.java
@@ -69,6 +69,9 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
 
     /**
      * Writes GXP. Pulls GXP parameters from Struts2's value stack.
+     *
+     * @param out Appendable
+     * @param gxpContext GXP content
      */
     public void write(Appendable out, GxpContext gxpContext) {
         write(out, gxpContext, null);
@@ -77,6 +80,8 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     /**
      * Writes GXP. Pulls GXP parameters from Struts2's value stack.
      *
+     * @param out Appendable
+     * @param gxpContext GXP content
      * @param overrides parameter map pushed onto the value stack
      */
     protected void write(Appendable out, GxpContext gxpContext, Map overrides) {
@@ -110,14 +115,14 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Creates GXP closure. Pulls GXP parameters from Struts 2 value stack.
+     * @return Creates GXP closure. Pulls GXP parameters from Struts 2 value stack.
      */
     public T getGxpClosure() {
         return getGxpClosure(null, null);
     }
 
     /**
-     * Creates GXP closure. Pulls GXP parameters from Struts 2 value stack.
+     * @return  Creates GXP closure. Pulls GXP parameters from Struts 2 value stack.
      *
      * @param body   is pushed onto the stack if this GXP has a
      *               {@link MarkupClosure} (or subclass) parameter named "body".
@@ -157,6 +162,8 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
      * be passed to a method on a GXP.
      *
      * @param overrides parameter map pushed onto the value stack
+     *
+     * @return list of arguments
      */
     List getArgListFromValueStack(Map overrides) {
 
@@ -185,6 +192,8 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
 
     /**
      * Combines parameter names and types into <code>Param</code> objects.
+     *
+     * @return parameter list
      */
     List<Param> lookupParams() {
         List<Param> params = new ArrayList<Param>();
@@ -220,7 +229,7 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Gets list of parameter types.
+     * @return  list of parameter types.
      */
     List<Class<?>> lookupParameterTypes() {
         List<Class<?>> parameterTypes = Arrays.asList(writeMethod.getParameterTypes());
@@ -229,7 +238,7 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Gets list of parameter names.
+     * @return  list of parameter names.
      */
     List<String> lookupParameterNames() {
         try {
@@ -240,7 +249,10 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Returns first method with the given name. Should not be used if the
+     * @param clazz class
+     * @param name method name for lookup
+     *
+     * @return  first method with the given name. Should not be used if the
      * method is overloaded.
      */
     protected static Method lookupMethodByName(Class clazz, String name) {
@@ -259,14 +271,16 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Returns list of parameters requested by GXP.
+     * @return  list of parameters requested by GXP.
      */
     public List<Param> getParams() {
         return params;
     }
 
     /**
-     * Returns generated GXP class given an absolute path to a GXP file.
+     * @param gxpPath Gxp path
+     *
+     * @return  generated GXP class given an absolute path to a GXP file.
      * The current implementation assumes that the GXP and generated Java source
      * file share the same name with different extensions.
      */
@@ -287,7 +301,10 @@ public abstract class AbstractGxp<T extends MarkupClosure> {
     }
 
     /**
-     * Creates debug String which can be tacked onto an exception.
+     * @param args arguments
+     * @param exception Exception
+     *
+     * @return debug String which can be tacked onto an exception.
      */
     String createDebugString(Object[] args, Exception exception) {
         StringBuffer buffer = new StringBuffer();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxpResult.java
----------------------------------------------------------------------
diff --git a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxpResult.java b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxpResult.java
index f27afc8..62ce72c 100644
--- a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxpResult.java
+++ b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/AbstractGxpResult.java
@@ -50,18 +50,18 @@ import java.util.Locale;
  * </p>
  *
  * <pre>
- *     &lt;result-types>
- *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult">
- *         &lt;param name="useInstances">true&lt;/param>
- *       &lt;/result-type>
- *     &lt;/result-types>
+ *     &lt;result-types&gt;
+ *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult"&gt;
+ *         &lt;param name="useInstances"&gt;true&lt;/param&gt;
+ *       &lt;/result-type&gt;
+ *     &lt;/result-types&gt;
  * </pre>
  *
  * <p>
  * This means that Struts 2 will attempt to instantiate the {@code Interface}
  * using the {@link com.opensymphony.xwork2.ObjectFactory}. If
- * {@link com.google.webwork.GuiceWebWorkIntegrationModule} is installed, or
- * {@link com.google.webwork.ContainerObjectFactory} is set as the static
+ * <code>com.google.webwork.GuiceWebWorkIntegrationModule</code> is installed, or
+ * <code>com.google.webwork.ContainerObjectFactory</code> is set as the static
  * {@code ObjectFactory} instance, then Guice will be used to instantiate the
  * GXP instance; otherwise, only GXPs with no constructor parameters will work.
  * </p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/Gxp.java
----------------------------------------------------------------------
diff --git a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/Gxp.java b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/Gxp.java
index 62d3ce0..705d1e1 100644
--- a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/Gxp.java
+++ b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/Gxp.java
@@ -57,6 +57,10 @@ public class Gxp extends AbstractGxp<HtmlClosure> {
 
     /**
      * Looks up Gxp instance for GXP with given path.
+     *
+     * @param gxpPath Gxp path
+     *
+     * @return Gxp instance
      */
     public static Gxp getInstance(String gxpPath) {
         try {
@@ -74,6 +78,10 @@ public class Gxp extends AbstractGxp<HtmlClosure> {
 
     /**
      * Looks up Gxp instance for the given GXP class.
+     *
+     * @param gxpClass Gxp class
+     *
+     * @return Gxp instance
      */
     public static Gxp getInstance(Class gxpClass) {
         return classToGxp.get(gxpClass);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpInstance.java
----------------------------------------------------------------------
diff --git a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpInstance.java b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpInstance.java
index d8c1a03..fef51bc 100644
--- a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpInstance.java
+++ b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpInstance.java
@@ -67,7 +67,9 @@ public class GxpInstance extends Gxp {
      * instance of the {@code Interface} class that is nested within the GXP
      * class. If that doesn't work, it falls back to trying to use the
      * {@code ObjectFactory} to create an instance of the nested {@code Instance}
-     * class, in case there is no binding for the {@code Interface}.
+     * class, in case there is no binding for the {@code Interface}.</p>
+     *
+     * @return Gxp instance
      */
     @Override
     protected Object getGxpInstance() {
@@ -108,6 +110,10 @@ public class GxpInstance extends Gxp {
 
     /**
      * Looks up Gxp instance for GXP with given path.
+     *
+     * @param gxpPath Gxp path
+     *
+     * @return Gxp instance
      */
     public static GxpInstance getInstance(String gxpPath) {
         try {
@@ -125,6 +131,10 @@ public class GxpInstance extends Gxp {
 
     /**
      * Looks up {@code GxpInstance} instance for the given GXP class.
+     *
+     * @param gxpClass Gxp class
+     *
+     * @return Gxp instance
      */
     public static GxpInstance getInstance(Class gxpClass) {
         return classToGxpInstance.get(gxpClass);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpResult.java
----------------------------------------------------------------------
diff --git a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpResult.java b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpResult.java
index b854ef1..7019956 100644
--- a/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpResult.java
+++ b/plugins/gxp/src/main/java/org/apache/struts2/views/gxp/GxpResult.java
@@ -37,19 +37,19 @@ import java.io.IOException;
  * <p>Declare the GXP result type for your package in the xwork.xml file:</p>
  *
  * <pre>
- *     &lt;result-types>
- *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult"/>
- *     &lt;/result-types>
+ *     &lt;result-types&gt;
+ *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult"/&gt;
+ *     &lt;/result-types&gt;
  * </pre>
  *
  * <p>Or if you want to output XML instead of HTML:</p>
  *
  * <pre>
- *     &lt;result-types>
- *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult">
- *         &lt;param name="outputXml">true&lt;/param>
- *       &lt;/result-type>
- *     &lt;/result-types>
+ *     &lt;result-types&gt;
+ *       &lt;result-type name="gxp" class="org.apache.struts2.views.gxp.GxpResult"&gt;
+ *         &lt;param name="outputXml"&gt;true&lt;/param&gt;
+ *       &lt;/result-type&gt;
+ *     &lt;/result-types&gt;
  * </pre>
  *
  * <p>Outputting XML changes the content type from text/html to application/xml
@@ -59,7 +59,7 @@ import java.io.IOException;
  * <p>Use the GXP result type for the result of an action. For example:</p>
  *
  * <pre>
- *   &lt;result name="success" type="gxp">/myPackage/MyGxp.gxp&lt;/result>
+ *   &lt;result name="success" type="gxp"&gt;/myPackage/MyGxp.gxp&lt;/result&gt;
  * </pre>
  *
  * @author Bob Lee
@@ -77,6 +77,8 @@ public class GxpResult extends AbstractGxpResult {
 
     /**
      * Whether or not this GXP should output XML.
+     *
+     * @param outputXml set the output XML
      */
     public void setOutputXml(boolean outputXml) {
         this.outputXml = outputXml;
@@ -103,6 +105,8 @@ public class GxpResult extends AbstractGxpResult {
 
     /**
      * Tells the GXP to write itself to the output stream.
+     *
+     * @param actionInvocation the action invocation
      */
     public void execute(ActionInvocation actionInvocation) {
         GxpResourceProvider provider = getProvider();
@@ -118,7 +122,7 @@ public class GxpResult extends AbstractGxpResult {
     }
 
     /**
-     * Gets appropriate provider.
+     * @return  appropriate provider.
      */
     GxpResourceProvider getProvider() {
         return new HtmlOrXmlProvider(outputXml);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java
----------------------------------------------------------------------
diff --git a/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java b/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java
index 63f965b..c3bba6e 100644
--- a/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java
+++ b/plugins/jfreechart/src/main/java/org/apache/struts2/dispatcher/ChartResult.java
@@ -70,7 +70,7 @@ import javax.servlet.http.HttpServletResponse;
  *	    public String execute() throws Exception {
  *		    // chart creation logic...
  *		    XYSeries dataSeries = new XYSeries(new Integer(1)); // pass a key for this serie
- *		    for (int i = 0; i <= 100; i++) {
+ *		    for (int i = 0; i &lt;= 100; i++) {
  *			    dataSeries.add(i, RandomUtils.nextInt());
  *		    }
  *		    XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
index 553f08c..6731871 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONInterceptor.java
@@ -320,6 +320,8 @@ public class JSONInterceptor extends AbstractInterceptor {
     /**
      * Ignore annotations on methods in interfaces You may need to set to this
      * true if your action is a proxy/enhanced as annotations are not inherited
+     *
+     * @param ignoreSMDMethodInterfaces set the flag for ignore SMD method interfaces
      */
     public void setIgnoreSMDMethodInterfaces(boolean ignoreSMDMethodInterfaces) {
         this.ignoreSMDMethodInterfaces = ignoreSMDMethodInterfaces;
@@ -328,7 +330,7 @@ public class JSONInterceptor extends AbstractInterceptor {
     /**
      * Wrap generated JSON with comments. Only used if SMD is enabled.
      * 
-     * @param wrapWithComments
+     * @param wrapWithComments Wrap generated JSON with comments.
      */
     public void setWrapWithComments(boolean wrapWithComments) {
         this.wrapWithComments = wrapWithComments;
@@ -340,9 +342,7 @@ public class JSONInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Ignore properties defined on base classes of the root object.
-     * 
-     * @param ignoreHierarchy
+     * @param ignoreHierarchy Ignore properties defined on base classes of the root object.
      */
     public void setIgnoreHierarchy(boolean ignoreHierarchy) {
         this.ignoreHierarchy = ignoreHierarchy;
@@ -467,13 +467,13 @@ public class JSONInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Returns the appropriate set of includes, based on debug setting.
+     * @return  the appropriate set of includes, based on debug setting.
      * Derived classes can override if there are additional, custom
      * debug-only parameters.
      */
     protected List getIncludeProperties() {
         if (includeProperties != null && getDebug()) {
-            List<Pattern> list = new ArrayList<Pattern>(includeProperties);
+            List<Pattern> list = new ArrayList<>(includeProperties);
             list.add(Pattern.compile("debug"));
             list.add(WildcardUtil.compileWildcardPattern("error.*"));
             return list;
@@ -503,7 +503,7 @@ public class JSONInterceptor extends AbstractInterceptor {
     /**
      * Add headers to response to prevent the browser from caching the response
      * 
-     * @param noCache
+     * @param noCache no cache
      */
     public void setNoCache(boolean noCache) {
         this.noCache = noCache;
@@ -514,9 +514,7 @@ public class JSONInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Do not serialize properties with a null value
-     * 
-     * @param excludeNullProperties
+     * @param excludeNullProperties  Do not serialize properties with a null value
      */
     public void setExcludeNullProperties(boolean excludeNullProperties) {
         this.excludeNullProperties = excludeNullProperties;
@@ -531,9 +529,7 @@ public class JSONInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Add "{} && " to generated JSON
-     * 
-     * @param prefix
+     * @param prefix Add "{} &amp;&amp; " to generated JSON
      */
     public void setPrefix(boolean prefix) {
         this.prefix = prefix;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
index d03be45..3475be0 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONResult.java
@@ -298,9 +298,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Wrap generated JSON with comments
-     *
-     * @param wrapWithComments
+     * @param wrapWithComments Wrap generated JSON with comments
      */
     public void setWrapWithComments(boolean wrapWithComments) {
         this.wrapWithComments = wrapWithComments;
@@ -314,9 +312,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Enable SMD generation for action, which can be used for JSON-RPC
-     *
-     * @param enableSMD
+     * @param enableSMD Enable SMD generation for action, which can be used for JSON-RPC
      */
     public void setEnableSMD(boolean enableSMD) {
         this.enableSMD = enableSMD;
@@ -327,7 +323,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Controls whether interfaces should be inspected for method annotations
+     * @param ignoreInterfaces  Controls whether interfaces should be inspected for method annotations
      * You may need to set to this true if your action is a proxy as annotations
      * on methods are not inherited
      */
@@ -336,11 +332,9 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Controls how Enum's are serialized : If true, an Enum is serialized as a
+     * @param enumAsBean Controls how Enum's are serialized : If true, an Enum is serialized as a
      * name=value pair (name=name()) (default) If false, an Enum is serialized
      * as a bean with a special property _name=name()
-     *
-     * @param enumAsBean
      */
     public void setEnumAsBean(boolean enumAsBean) {
         this.enumAsBean = enumAsBean;
@@ -363,9 +357,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Add headers to response to prevent the browser from caching the response
-     *
-     * @param noCache
+     * @param noCache Add headers to response to prevent the browser from caching the response
      */
     public void setNoCache(boolean noCache) {
         this.noCache = noCache;
@@ -380,27 +372,21 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Do not serialize properties with a null value
-     *
-     * @param excludeNullProperties
+     * @param excludeNullProperties Do not serialize properties with a null value
      */
     public void setExcludeNullProperties(boolean excludeNullProperties) {
         this.excludeNullProperties = excludeNullProperties;
     }
 
     /**
-     * Status code to be set in the response
-     *
-     * @param statusCode
+     * @param statusCode Status code to be set in the response
      */
     public void setStatusCode(int statusCode) {
         this.statusCode = statusCode;
     }
 
     /**
-     * Error code to be set in the response
-     *
-     * @param errorCode
+     * @param errorCode Error code to be set in the response
      */
     public void setErrorCode(int errorCode) {
         this.errorCode = errorCode;
@@ -415,18 +401,14 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Prefix JSON with "{} &&"
-     *
-     * @param prefix
+     * @param prefix Prefix JSON with "{} &amp;&amp;"
      */
     public void setPrefix(boolean prefix) {
         this.prefix = prefix;
     }
 
     /**
-     * Content type to be set in the response
-     *
-     * @param contentType
+     * @param contentType Content type to be set in the response
      */
     public void setContentType(String contentType) {
         this.contentType = contentType;
@@ -437,7 +419,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Text to be inserted at the begining of the response
+     * @param wrapPrefix  Text to be inserted at the begining of the response
      */
     public void setWrapPrefix(String wrapPrefix) {
         this.wrapPrefix = wrapPrefix;
@@ -448,7 +430,7 @@ public class JSONResult implements Result {
     }
 
     /**
-     * Text to be inserted at the end of the response
+     * @param wrapSuffix  Text to be inserted at the end of the response
      */
     public void setWrapSuffix(String wrapSuffix) {
         this.wrapSuffix = wrapSuffix;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
index fc2b25b..f44719f 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
@@ -67,7 +67,7 @@ public class JSONUtil {
      * @param cacheBeanInfo
      * 			  Specifies whether to cache bean info in the JSONWriter
      * @return JSON string
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static String serialize(Object object, boolean cacheBeanInfo) throws JSONException {
         JSONWriter writer = new JSONWriter();
@@ -83,11 +83,15 @@ public class JSONUtil {
      *            to be serialized
      * @param excludeProperties
      *            Patterns matching properties to exclude
+     * @param includeProperties
+     *            Patterns matching properties to include
      * @param ignoreHierarchy
      *            whether to ignore properties defined on base classes of the
      *            root object
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @return JSON string
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static String serialize(Object object, Collection<Pattern> excludeProperties,
             Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties)
@@ -104,13 +108,17 @@ public class JSONUtil {
      *            to be serialized
      * @param excludeProperties
      *            Patterns matching properties to exclude
+     * @param includeProperties
+     *            Patterns matching properties to include
      * @param ignoreHierarchy
      *            whether to ignore properties defined on base classes of the
      *            root object
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @param cacheBeanInfo
      * 			  Specifies whether to cache bean info in the JSONWriter
      * @return JSON string
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static String serialize(Object object, Collection<Pattern> excludeProperties,
             Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean excludeNullProperties,
@@ -130,15 +138,19 @@ public class JSONUtil {
      *            to be serialized
      * @param excludeProperties
      *            Patterns matching properties to exclude
+     * @param includeProperties
+     *            Patterns matching properties to include
      * @param ignoreHierarchy
      *            whether to ignore properties defined on base classes of the
      *            root object
      * @param enumAsBean
      *            whether to serialized enums a Bean or name=value pair
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @param defaultDateFormat
      *            date format used to serialize dates
      * @return JSON string
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static String serialize(Object object, Collection<Pattern> excludeProperties,
                                    Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean,
@@ -155,17 +167,21 @@ public class JSONUtil {
      *            to be serialized
      * @param excludeProperties
      *            Patterns matching properties to exclude
+     * @param includeProperties
+     *            Patterns matching properties to include
      * @param ignoreHierarchy
      *            whether to ignore properties defined on base classes of the
      *            root object
      * @param enumAsBean
      *            whether to serialized enums a Bean or name=value pair
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @param defaultDateFormat
      *            date format used to serialize dates
      * @param cacheBeanInfo
      * 			  Specifies whether to cache bean info in the JSONWriter
      * @return JSON string
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static String serialize(Object object, Collection<Pattern> excludeProperties,
                                    Collection<Pattern> includeProperties, boolean ignoreHierarchy, boolean enumAsBean,
@@ -185,8 +201,8 @@ public class JSONUtil {
      *            Writer to serialize the object to
      * @param object
      *            object to be serialized
-     * @throws IOException
-     * @throws JSONException
+     * @throws IOException  in case of IO errors
+     * @throws JSONException in case of error during serialize
      */
     public static void serialize(Writer writer, Object object) throws IOException, JSONException {
         serialize(writer, object, CACHE_BEAN_INFO_DEFAULT);
@@ -201,8 +217,8 @@ public class JSONUtil {
      *            object to be serialized
      * @param cacheBeanInfo
      * 			  Specifies whether to cache bean info in the JSONWriter
-     * @throws IOException
-     * @throws JSONException
+     * @throws IOException  in case of IO errors
+     * @throws JSONException in case of error during serialize
      */
     public static void serialize(Writer writer, Object object, boolean cacheBeanInfo) throws IOException, JSONException {
         writer.write(serialize(object, cacheBeanInfo));
@@ -219,8 +235,12 @@ public class JSONUtil {
      *            object to be serialized
      * @param excludeProperties
      *            Patterns matching properties to ignore
-     * @throws IOException
-     * @throws JSONException
+     * @param includeProperties
+     *            Patterns matching properties to include
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
+     * @throws IOException  in case of IO errors
+     * @throws JSONException in case of error during serialize
      */
     public static void serialize(Writer writer, Object object, Collection<Pattern> excludeProperties,
             Collection<Pattern> includeProperties, boolean excludeNullProperties) throws IOException,
@@ -239,10 +259,14 @@ public class JSONUtil {
      *            object to be serialized
      * @param excludeProperties
      *            Patterns matching properties to ignore
+     * @param includeProperties
+     *            Patterns matching properties to include
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @param cacheBeanInfo
      * 			  Specifies whether to cache bean info in the JSONWriter        
-     * @throws IOException
-     * @throws JSONException
+     * @throws IOException  in case of IO errors
+     * @throws JSONException in case of error during serialize
      */
     public static void serialize(Writer writer, Object object, Collection<Pattern> excludeProperties,
             Collection<Pattern> includeProperties, boolean excludeNullProperties, boolean cacheBeanInfo) 
@@ -256,7 +280,7 @@ public class JSONUtil {
      * @param json
      *            string in JSON
      * @return desrialized object
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public static Object deserialize(String json) throws JSONException {
         JSONReader reader = new JSONReader();
@@ -364,11 +388,14 @@ public class JSONUtil {
     /**
      * List visible methods carrying the
      *
-     * @SMDMethod annotation
+     * {@literal @}SMDMethod annotation
      *
+     * @param clazz
+     *            class
      * @param ignoreInterfaces
      *            if true, only the methods of the class are examined. If false,
      *            annotations on every interfaces' methods are examined.
+     * @return array of SMD methods
      */
     @SuppressWarnings("unchecked")
     public static Method[] listSMDMethods(Class clazz, boolean ignoreInterfaces) {
@@ -440,7 +467,7 @@ public class JSONUtil {
         return visitUniqueInterfaces(aClass, visitor, classesVisited);
     }
 
-    /**
+    /*
      * Recursive method to visit all the interfaces of a class (and its
      * superclasses and super-interfaces) if they haven't already been visited.
      * <br> Always visits itself if it hasn't already been visited
@@ -564,7 +591,7 @@ public class JSONUtil {
         return patternExpr;
     }
 
-    /**
+    /*
      * Add a pattern that does not have the indexed property matching (ie. list\[\d+\] becomes list).
      */
     private static boolean isIndexedProperty(String patternPiece, String type, Map<String, Map<String, String>> includePatternData) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/json/src/main/java/org/apache/struts2/json/JSONValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONValidationInterceptor.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONValidationInterceptor.java
index 7dd169d..f895053 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONValidationInterceptor.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONValidationInterceptor.java
@@ -82,7 +82,8 @@ public class JSONValidationInterceptor extends MethodFilterInterceptor {
 
     /**
      * HTTP status that will be set in the response if validation fails
-     * @param validationFailedStatus
+     *
+     * @param validationFailedStatus validation failed status
      */
     public void setValidationFailedStatus(int validationFailedStatus) {
         this.validationFailedStatus = validationFailedStatus;
@@ -153,6 +154,7 @@ public class JSONValidationInterceptor extends MethodFilterInterceptor {
     }
 
     /**
+     * @param validationAware the validation aware object
      * @return JSON string that contains the errors and field errors
      */
     @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
----------------------------------------------------------------------
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
index c3b8889..20f815c 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java
@@ -79,16 +79,23 @@ public class JSONWriter {
     /**
      * @param object Object to be serialized into JSON
      * @return JSON string for object
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public String write(Object object) throws JSONException {
         return this.write(object, null, null, false);
     }
 
     /**
-     * @param object Object to be serialized into JSON
+     * @param object
+     *            Object to be serialized into JSON
+     * @param excludeProperties
+     *            Patterns matching properties to ignore
+     * @param includeProperties
+     *            Patterns matching properties to include
+     * @param excludeNullProperties
+     *            enable/disable excluding of null properties
      * @return JSON string for object
-     * @throws JSONException
+     * @throws JSONException in case of error during serialize
      */
     public String write(Object object, Collection<Pattern> excludeProperties,
                         Collection<Pattern> includeProperties, boolean excludeNullProperties) throws JSONException {
@@ -107,6 +114,11 @@ public class JSONWriter {
 
     /**
      * Detect cyclic references
+     *
+     * @param object Object to be serialized into JSON
+     * @param method method
+     *
+     * @throws JSONException in case of error during serialize
      */
     protected void value(Object object, Method method) throws JSONException {
         if (object == null) {
@@ -133,6 +145,11 @@ public class JSONWriter {
 
     /**
      * Serialize object into json
+     *
+     * @param object Object to be serialized into JSON
+     * @param method method
+     *
+     * @throws JSONException  in case of error during serialize
      */
     protected void process(Object object, Method method) throws JSONException {
         this.stack.push(object);
@@ -170,6 +187,11 @@ public class JSONWriter {
 
     /**
      * Serialize custom object into json
+     *
+     * @param object object
+     * @param method method
+     *
+     * @throws JSONException  in case of error during serialize
      */
     protected void processCustom(Object object, Method method) throws JSONException {
         this.bean(object);
@@ -177,6 +199,10 @@ public class JSONWriter {
 
     /**
      * Instrospect bean and serialize its properties
+     *
+     * @param object object
+     *
+     * @throws JSONException  in case of error during serialize
      */
     protected void bean(Object object) throws JSONException {
         this.add("{");
@@ -322,6 +348,10 @@ public class JSONWriter {
     /**
      * Instrospect an Enum and serialize it as a name/value pair or as a bean
      * including all its own properties
+     *
+     * @param enumeration the enum
+     *
+     * @throws JSONException  in case of error during serialize
      */
     protected void enumeration(Enum enumeration) throws JSONException {
         if (enumAsBean) {
@@ -382,7 +412,7 @@ public class JSONWriter {
         return false;
     }
 
-    /**
+    /*
      * Add name/value pair to buffer
      */
     protected boolean add(String name, Object value, Method method, boolean hasData) throws JSONException {
@@ -399,7 +429,7 @@ public class JSONWriter {
         return true;
     }
 
-    /**
+    /*
      * Add map to buffer
      */
     protected void map(Map map, Method method) throws JSONException {
@@ -450,7 +480,7 @@ public class JSONWriter {
         this.add("}");
     }
 
-    /**
+    /*
      * Add date to buffer
      */
     protected void date(Date date, Method method) {
@@ -465,7 +495,7 @@ public class JSONWriter {
         this.string(formatter.format(date));
     }
 
-    /**
+    /*
      * Add array to buffer
      */
     protected void array(Iterator it, Method method) throws JSONException {
@@ -495,7 +525,7 @@ public class JSONWriter {
         this.add("]");
     }
 
-    /**
+    /*
      * Add array to buffer
      */
     protected void array(Object object, Method method) throws JSONException {
@@ -526,7 +556,7 @@ public class JSONWriter {
         this.add("]");
     }
 
-    /**
+    /*
      * Add boolean to buffer
      */
     protected void bool(boolean b) {
@@ -535,6 +565,8 @@ public class JSONWriter {
 
     /**
      * escape characters
+     *
+     * @param obj the object to escape
      */
     protected void string(Object obj) {
         this.add('"');
@@ -568,14 +600,14 @@ public class JSONWriter {
         this.add('"');
     }
 
-    /**
+    /*
      * Add object to buffer
      */
     protected void add(Object obj) {
         this.buf.append(obj);
     }
 
-    /**
+    /*
      * Add char to buffer
      */
     protected void add(char c) {
@@ -606,7 +638,7 @@ public class JSONWriter {
 
     /**
      * If true, an Enum is serialized as a bean with a special property
-     * _name=name() as all as all other properties defined within the enum.<br/>
+     * _name=name() as all as all other properties defined within the enum.<br>
      * If false, an Enum is serialized as a name=value pair (name=name())
      *
      * @param enumAsBean true to serialize an enum as a bean instead of as a name=value

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/DefaultBundleAccessor.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/DefaultBundleAccessor.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/DefaultBundleAccessor.java
index c5103be..b3967a0 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/DefaultBundleAccessor.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/DefaultBundleAccessor.java
@@ -53,8 +53,8 @@ public class DefaultBundleAccessor implements BundleAccessor {
     private static final Logger LOG = LogManager.getLogger(DefaultBundleAccessor.class);
 
     private BundleContext bundleContext;
-    private Map<String, String> packageToBundle = new HashMap<String, String>();
-    private Map<Bundle, Set<String>> packagesByBundle = new HashMap<Bundle, Set<String>>();
+    private Map<String, String> packageToBundle = new HashMap<>();
+    private Map<Bundle, Set<String>> packagesByBundle = new HashMap<>();
     private OsgiHost osgiHost;
 
     public DefaultBundleAccessor() {
@@ -79,8 +79,9 @@ public class DefaultBundleAccessor implements BundleAccessor {
                 return bundleContext.getServiceReferences(className, null);
             } catch (InvalidSyntaxException e) {
                 //cannot happen we are passing null as the param
-                if (LOG.isErrorEnabled())
+                if (LOG.isErrorEnabled()) {
                     LOG.error("Invalid syntax for service lookup", e);
+                }
             }
         }
 
@@ -92,7 +93,7 @@ public class DefaultBundleAccessor implements BundleAccessor {
     }
 
     /**
-     *  Add as Bundle -> Package mapping 
+     *  Add as Bundle -&gt; Package mapping
      * @param bundle the bundle where the package was loaded from
      * @param packageName the anme of the loaded package
      */
@@ -100,7 +101,7 @@ public class DefaultBundleAccessor implements BundleAccessor {
         this.packageToBundle.put(packageName, bundle.getSymbolicName());
         Set<String> pkgs = packagesByBundle.get(bundle);
         if (pkgs == null) {
-            pkgs = new HashSet<String>();
+            pkgs = new HashSet<>();
             packagesByBundle.put(bundle, pkgs);
         }
         pkgs.add(packageName);
@@ -139,7 +140,7 @@ public class DefaultBundleAccessor implements BundleAccessor {
     public List<URL> loadResources(String name, boolean translate) throws IOException {
         Bundle bundle = getCurrentBundle();
         if (bundle != null) {
-            List<URL> resources = new ArrayList<URL>();
+            List<URL> resources = new ArrayList<>();
             Enumeration e = bundle.getResources(name);
             if (e != null) {
                 while (e.hasMoreElements()) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiConfigurationProvider.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiConfigurationProvider.java
index b24eb8a..682fc53 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiConfigurationProvider.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiConfigurationProvider.java
@@ -89,7 +89,7 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
             ActionContext.setContext(ctx);
         }
 
-        Set<String> bundleNames = new HashSet<String>();
+        Set<String> bundleNames = new HashSet<>();
 
         //iterate over the bundles and load packages from them
         for (Bundle bundle : osgiHost.getBundles().values()) {
@@ -112,6 +112,8 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
     /**
      * Loads XML config as well as Convention config from a bundle
      * Limitation: Constants and Beans are ignored on XML config
+     *
+     * @param bundle the bundle
      */
     protected void loadConfigFromBundle(Bundle bundle) {
         String bundleName = bundle.getSymbolicName();
@@ -141,7 +143,7 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
 
             //Convention
             //get the existing packages before reloading the provider (se we can figure out what are the new packages)
-            Set<String> packagesBeforeLoading = new HashSet<String>(configuration.getPackageConfigNames());
+            Set<String> packagesBeforeLoading = new HashSet<>(configuration.getPackageConfigNames());
 
             PackageProvider conventionPackageProvider = configuration.getContainer().getInstance(PackageProvider.class, "convention.packageProvider");
             if (conventionPackageProvider != null) {
@@ -170,6 +172,10 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
 
     /**
      * Checks for "Struts2-Enabled" header in the bundle
+     *
+     * @param bundle the bundle
+     *
+     * @return true is struts2 enabled
      */
     protected boolean shouldProcessBundle(Bundle bundle) {
         // Cast to String is required on JDK7
@@ -223,6 +229,8 @@ public class OsgiConfigurationProvider implements PackageProvider, BundleListene
 
     /**
      * Listens to bundle event to load/unload config
+     *
+     * @param bundleEvent the bundle event
      */
     public void bundleChanged(BundleEvent bundleEvent) {
         Bundle bundle = bundleEvent.getBundle();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiUtil.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiUtil.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiUtil.java
index 60c478a..955d090 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiUtil.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/OsgiUtil.java
@@ -34,8 +34,15 @@ public class OsgiUtil {
     private static final Logger LOG = LogManager.getLogger(OsgiUtil.class);
 
     /**
-     * A bundle is a jar, and a bunble URL will be useless to clients, this method translates
+     * A bundle is a jar, and a bundle URL will be useless to clients, this method translates
      * a URL to a resource inside a bundle from "bundle:something/path" to "jar:file:bundlelocation!/path"
+     *
+     * @param bundleUrl URL to translate
+     * @param bundle the bundle
+     *
+     * @return translated URL
+     *
+     * @throws MalformedURLException if url is malformed
      */
     public static URL translateBundleURLToJarURL(URL bundleUrl, Bundle bundle) throws MalformedURLException {
         if (bundleUrl != null && "bundle".equalsIgnoreCase(bundleUrl.getProtocol())) {
@@ -52,6 +59,11 @@ public class OsgiUtil {
     /**
      * Calls getBean() on the passed object using refelection. Used on Spring context
      * because they are loaded from bundles (in anothe class loader)
+     *
+     * @param beanFactory bean factory
+     * @param beanId id of bean
+     *
+     * @return the object found
      */
     public static Object getBean(Object beanFactory, String beanId) {
         try {
@@ -67,6 +79,11 @@ public class OsgiUtil {
     /**
      * Calls containsBean on the passed object using refelection. Used on Spring context
      * because they are loaded from bundles (in anothe class loader)
+     *
+     * @param beanFactory bean factory
+     * @param beanId id of bean
+     *
+     * @return true if bean factory contains bean with bean id
      */
     public static boolean containsBean(Object beanFactory, String beanId) {
         try {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/BaseOsgiHost.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/BaseOsgiHost.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/BaseOsgiHost.java
index fdd5c74..4e2c57b 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/BaseOsgiHost.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/BaseOsgiHost.java
@@ -71,6 +71,8 @@ public abstract class BaseOsgiHost implements OsgiHost {
     /**
      * This bundle map will not change, but the status of the bundles can change over time.
      * Use getActiveBundles() for active bundles
+     *
+     * @return map with bundles
      */
     public abstract Map<String, Bundle> getBundles();
 
@@ -85,7 +87,7 @@ public abstract class BaseOsgiHost implements OsgiHost {
      *
      * @param paramName    the name of the param to get from the ServletContext
      * @param defaultValue value to return if the param is not set
-     * @return
+     * @return param from the ServletContext, returning the default value if the param is not set
      */
     protected String getServletContextParam(String paramName, String defaultValue) {
         return StringUtils.defaultString(this.servletContext.getInitParameter(paramName), defaultValue);
@@ -119,7 +121,8 @@ public abstract class BaseOsgiHost implements OsgiHost {
     }
 
     /**
-     * Return a list of directories under a directory whose name is a number
+     * @param dir directory
+     * @return  a list of directories under a directory whose name is a number
      */
     protected Map<String, String> getRunLevelDirs(String dir) {
         Map<String, String> dirs = new HashMap<String, String>();
@@ -261,7 +264,8 @@ public abstract class BaseOsgiHost implements OsgiHost {
     }
 
     /**
-     * Gets the version used to export the packages. it tries to get it from MANIFEST.MF, or the file name
+     * @param url URL for package
+     * @return  the version used to export the packages. it tries to get it from MANIFEST.MF, or the file name
      */
     protected String getVersion(URL url) {
         if ("jar".equals(url.getProtocol())) {
@@ -286,7 +290,8 @@ public abstract class BaseOsgiHost implements OsgiHost {
     }
 
     /**
-     * Extracts numbers followed by "." or "-" from the string and joins them with "."
+     * @param str string for extract version
+     * @return Extracts numbers followed by "." or "-" from the string and joins them with "."
      */
     protected String getVersionFromString(String str) {
         Matcher matcher = versionPattern.matcher(str);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/FelixOsgiHost.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/FelixOsgiHost.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/FelixOsgiHost.java
index 259fe2e..a3241e7 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/FelixOsgiHost.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/host/FelixOsgiHost.java
@@ -43,7 +43,7 @@ import java.util.Properties;
 /**
  * Apache felix implementation of an OsgiHost
  * See http://felix.apache.org/site/apache-felix-framework-launching-and-embedding.html
- * <br/>
+ * <br>
  * Servlet config params:
  * <p>struts.osgi.clearBundleCache: Defaults to "true" delete installed bundles when the comntainer starts</p>
  * <p>struts.osgi.logLevel: Defaults to "1". Felix log level. 1 = error, 2 = warning, 3 = information, and 4 = debug </p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/osgi/src/main/java/org/apache/struts2/osgi/interceptor/OsgiInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/osgi/src/main/java/org/apache/struts2/osgi/interceptor/OsgiInterceptor.java b/plugins/osgi/src/main/java/org/apache/struts2/osgi/interceptor/OsgiInterceptor.java
index 53a58eb..0c972dd 100644
--- a/plugins/osgi/src/main/java/org/apache/struts2/osgi/interceptor/OsgiInterceptor.java
+++ b/plugins/osgi/src/main/java/org/apache/struts2/osgi/interceptor/OsgiInterceptor.java
@@ -37,7 +37,7 @@ import java.util.List;
 
 /**
  * If a class implements BundleContextAware, this interceptor will call the setBundleContext(BundleContext)
- * method on it. If a class implements ServiceAware<T>, this interceptor will call setService(List<T>)
+ * method on it. If a class implements ServiceAware&lt;T&gt;, this interceptor will call setService(List&lt;T&gt;)
  */
 public class OsgiInterceptor extends AbstractInterceptor {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
index d3a7612..5f26f08 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
@@ -96,7 +96,7 @@ import static org.apache.struts2.portlet.PortletConstants.RESPONSE;
  *
  * <p><b>Init parameters</b></p>
  * <!-- START SNIPPET: params -->
- * <table class="confluenceTable">
+ * <table class="confluenceTable" summary="">
  * <tr>
  *  <th class="confluenceTh">Name</th>
  * <th class="confluenceTh">Description</th>
@@ -188,12 +188,13 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
 
     /**
      * Initialize the portlet with the init parameters from <tt>portlet.xml</tt>
+     *
+     * @param cfg portlet configuration
+     * @throws PortletException in case of errors
      */
     public void init(PortletConfig cfg) throws PortletException {
         super.init(cfg);
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Initializing portlet " + getPortletName());
-        }
+        LOG.debug("Initializing portlet {}", getPortletName());
 
         Map<String, String> params = new HashMap<String, String>();
         for (Enumeration e = cfg.getInitParameterNames(); e.hasMoreElements(); ) {
@@ -211,9 +212,8 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
             factory = dispatcherUtils.getContainer().getInstance(ActionProxyFactory.class);
         }
         portletNamespace = cfg.getInitParameter("portletNamespace");
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("PortletNamespace: " + portletNamespace);
-        }
+        LOG.debug("PortletNamespace: {}", portletNamespace);
+
         parseModeConfig(actionMap, cfg, PortletMode.VIEW, "viewNamespace",
                 "defaultViewAction");
         parseModeConfig(actionMap, cfg, PortletMode.EDIT, "editNamespace",
@@ -288,6 +288,12 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
     /**
      * Service an action from the <tt>event</tt> phase.
      *
+     * @param request action request
+     * @param response  action response
+     *
+     * @throws PortletException in case of errors
+     * @throws IOException in case of IO errors
+     *
      * @see javax.portlet.Portlet#processAction(javax.portlet.ActionRequest,
      *      javax.portlet.ActionResponse)
      */
@@ -310,6 +316,12 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
     /**
      * Service an action from the <tt>render</tt> phase.
      *
+     * @param request render request
+     * @param response  render response
+     *
+     * @throws PortletException in case of errors
+     * @throws IOException in case of IO errors
+     *
      * @see javax.portlet.Portlet#render(javax.portlet.RenderRequest,
      *      javax.portlet.RenderResponse)
      */
@@ -351,10 +363,15 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
      * @param applicationMap a Map of all servlet context attributes.
      * @param request the PortletRequest object.
      * @param response the PortletResponse object.
+     * @param servletRequest the HttpServletRequest object.
+     * @param servletResponse the HttpServletResponse object.
+     * @param servletContext the ServletContext object.
      * @param portletConfig the PortletConfig object.
      * @param phase The portlet phase (render or action, see
      *        {@link PortletConstants})
      * @return a HashMap representing the <tt>Action</tt> context.
+     *
+     * @throws IOException in case of IO errors
      */
     public HashMap<String, Object> createContextMap(Map<String, Object> requestMap, Map<String, String[]> parameterMap,
                                                     Map<String, Object> sessionMap, Map<String, Object> applicationMap,
@@ -421,6 +438,8 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
      * @param applicationMap a Map of all application attributes.
      * @param portletNamespace the namespace or context of the action.
      * @param phase The portlet phase (render or action, see {@link PortletConstants})
+     *
+     * @throws PortletException in case of errors
      */
     public void serviceAction(PortletRequest request, PortletResponse response, Map<String, Object> requestMap, Map<String, String[]> parameterMap,
                               Map<String, Object> sessionMap, Map<String, Object> applicationMap, String portletNamespace,
@@ -589,7 +608,7 @@ public class Jsr168Dispatcher extends GenericPortlet implements StrutsStatics {
 
     /**
      * Convenience method to ease testing.
-     * @param factory
+     * @param factory action proxy factory
      */
     protected void setActionProxyFactory(ActionProxyFactory factory) {
         this.factory = factory;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesAware.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesAware.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesAware.java
index 1461f1f..1f007a0 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesAware.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletPreferencesAware.java
@@ -33,7 +33,7 @@ public interface PortletPreferencesAware {
     /**
      * Sets the HTTP request object in implementing classes.
      *
-     * @param request the HTTP request.
+     * @param prefs the portlet preferences.
      */
     public void setPortletPreferences(PortletPreferences prefs);
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
index 5ef5a1a..0bc6938 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
@@ -42,7 +42,7 @@ import java.util.Map;
  * <!-- START SNIPPET: description -->
  * 
  * This result uses the {@link ActionMapper} provided by the
- * {@link ActionMapperFactory} to instruct the render phase to invoke the
+ * <code>ActionMapperFactory</code> to instruct the render phase to invoke the
  * specified action and (optional) namespace. This is better than the
  * {@link PortletResult} because it does not require you to encode the URL
  * patterns processed by the {@link ActionMapper} in to your struts.xml
@@ -247,6 +247,8 @@ public class PortletActionRedirectResult extends PortletResult {
 	 * 
 	 * @param key The parameter name
 	 * @param value The parameter value
+	 *
+	 * @return the portlet action redirect result
 	 */
 	public PortletActionRedirectResult addParameter(String key, Object value) {
 		requestParameters.put(key, String.valueOf(value));

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
index 50fa223..0e0c881 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
@@ -54,14 +54,12 @@ public class PortletResult extends StrutsResultSupport {
 
 	private static final long serialVersionUID = 434251393926178567L;
 
+	private static final Logger LOG = LogManager.getLogger(PortletResult.class);
+
 	private boolean useDispatcherServlet;
 
 	private String dispatcherServletName = PortletConstants.DEFAULT_DISPATCHER_SERVLET_NAME;
 
-	/**
-	 * Logger instance.
-	 */
-	private static final Logger LOG = LogManager.getLogger(PortletResult.class);
 
 	private String contentType = "text/html";
 
@@ -93,7 +91,12 @@ public class PortletResult extends StrutsResultSupport {
 	 * Execute the result. Obtains the
 	 * {@link javax.portlet.PortletRequestDispatcher}from the
 	 * {@link PortletActionContext}and includes the JSP.
+     *
+     * @param finalLocation the final location
+     * @param actionInvocation the action invocation
 	 *
+     * @throws Exception in case of any errors
+     *
 	 * @see com.opensymphony.xwork2.Result#execute(com.opensymphony.xwork2.ActionInvocation)
 	 */
 	public void doExecute(String finalLocation, ActionInvocation actionInvocation) throws Exception {
@@ -110,6 +113,12 @@ public class PortletResult extends StrutsResultSupport {
 
 	/**
 	 * Executes the regular servlet result.
+     *
+     * @param finalLocation the final location
+     * @param actionInvocation the action invocation
+     *
+     * @throws ServletException in case of any Servlet errors
+     * @throws IOException in case of any IO errors
 	 */
 	private void executeRegularServletResult(String finalLocation, ActionInvocation actionInvocation)
 			throws ServletException, IOException {
@@ -130,17 +139,18 @@ public class PortletResult extends StrutsResultSupport {
 	/**
 	 * Executes the action result.
 	 *
-	 * @param finalLocation
-	 * @param invocation
+     * @param finalLocation the final location
+     * @param invocation the action invocation
+     *
+     * @throws Exception in case of any errors
 	 */
 	protected void executeActionResult(String finalLocation, ActionInvocation invocation) throws Exception {
         String location = finalLocation;
         String namespace = invocation.getProxy().getNamespace();
 		if (LOG.isDebugEnabled()) {
-			String phase = (PortletActionContext.getPhase().isEvent()) ? "Event" : "Action";
-			LOG.debug("Executing result in "+phase+" phase");
-			LOG.debug("Setting event render parameter location : " + location);
-			LOG.debug("Setting event render parameter namespace: " + namespace);
+			LOG.debug("Executing result in {} phase", (PortletActionContext.getPhase().isEvent()) ? "Event" : "Action");
+			LOG.debug("Setting event render parameter location : {}", location);
+			LOG.debug("Setting event render parameter namespace: {}", namespace);
 		}
 		Map<String, Object> sessionMap = invocation.getInvocationContext().getSession();
 		if (location.indexOf('?') != -1) {
@@ -171,7 +181,7 @@ public class PortletResult extends StrutsResultSupport {
 	/**
 	 * Converts the query params to render params.
 	 *
-	 * @param queryParams
+	 * @param queryParams query parameter
 	 */
 	protected void convertQueryParamsToRenderParams(String queryParams) {
 		StringTokenizer tok = new StringTokenizer(queryParams, "&");
@@ -186,9 +196,10 @@ public class PortletResult extends StrutsResultSupport {
     /**
      * Executes the render result.
      *
-     * @param finalLocation
-     * @throws PortletException
-     * @throws IOException
+     * @param finalLocation the final location
+     *
+     * @throws PortletException in case of any Portlet errors
+     * @throws IOException in case of any IO errors
      */
     protected void executeMimeResult(final String finalLocation) throws PortletException, IOException {
         if (LOG.isDebugEnabled()) LOG.debug("Executing mime result");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResultHelper.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResultHelper.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResultHelper.java
index cc6c725..26f1d52 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResultHelper.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletResultHelper.java
@@ -25,6 +25,8 @@ public interface PortletResultHelper {
      *
      * @param response    The response to set the portlet mode on.
      * @param portletMode The portlet mode to set.
+     *
+     * @throws PortletModeException in case of errors during setting of portlet mode
      */
     void setPortletMode( PortletResponse response, PortletMode portletMode ) throws PortletModeException;
 
@@ -35,6 +37,9 @@ public interface PortletResultHelper {
      * @param contentType The content type to set for the response.
      * @param request     The request to use for including
      * @param response    The response to use for including
+     *
+     * @throws IOException in case of any I/O errors
+     * @throws PortletException in case of any portlet errors
      */
     void include( PortletRequestDispatcher dispatcher, String contentType, PortletRequest request,
                   PortletResponse response ) throws IOException, PortletException;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
index b49cfc4..d502e74 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
@@ -204,6 +204,8 @@ public class PortletVelocityResult extends StrutsResultSupport {
      * this method if they want to provide specific content types for specific
      * templates (eg text/xml).
      *
+     * @param templateLocation location of templates
+     *
      * @return The content type associated with this template (default
      *         "text/html")
      */
@@ -215,6 +217,8 @@ public class PortletVelocityResult extends StrutsResultSupport {
      * Retrieve the encoding for this template. <br>People can override this
      * method if they want to provide specific encodings for specific templates.
      *
+     * @param templateLocation location of templates
+     *
      * @return The encoding associated with this template (defaults to the value
      *         of 'struts.i18n.encoding' property)
      */
@@ -256,6 +260,8 @@ public class PortletVelocityResult extends StrutsResultSupport {
      * @param velocityManager a reference to the velocityManager to use
      * @param stack the value stack to resolve the location against (when parse
      *        equals true)
+     * @param request servlet request
+     * @param response servlet response
      * @param location the name of the template that is being used
      * @return the a minted Velocity context.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java b/plugins/portlet/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
index 7e72287..73a3195 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
@@ -83,6 +83,19 @@ public class PortletUrlHelper {
     /**
      * Create a portlet URL with for the specified action and namespace.
      *
+     * @param action The action the URL should invoke.
+     * @param namespace The namespace of the action to invoke.
+     * @param method The method of the action to invoke.
+     * @param params The parameters of the URL.
+     * @param type The type of the url, either <tt>action</tt> or <tt>render</tt>
+     * @param scheme The scheme of the URL.
+     * @param portletMode The Portlet Mode of the URL.
+     * @param windowState  The Window State
+     * @param includeContext true for including context
+     * @param encodeResult true for encode of the result
+     *
+     * @return The URL String.
+     *
      * @see #buildUrl(String, String, String, java.util.Map, String, String, String)
      */
     public String buildUrl(String action, String namespace, String method, Map<String, Object> params,
@@ -218,7 +231,8 @@ public class PortletUrlHelper {
      * Encode an url to a non Struts action resource, like stylesheet, image or
      * servlet.
      *
-     * @param value
+     * @param value base url
+     * @param params url parameters
      * @return encoded url to non Struts action resources.
      */
     public String buildResourceUrl(String value, Map params) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/portlet/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
----------------------------------------------------------------------
diff --git a/plugins/portlet/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java b/plugins/portlet/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
index adda4bc..09a3d5f 100644
--- a/plugins/portlet/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
+++ b/plugins/portlet/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
@@ -46,8 +46,6 @@ import java.io.IOException;
 import java.io.Writer;
 import java.util.Locale;
 
-/**
- */
 public class PortletFreemarkerResult extends StrutsResultSupport {
 
     private static final long serialVersionUID = -5570612389289887543L;
@@ -87,6 +85,8 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
 
     /**
      * allow parameterization of the contentType the default being text/html
+     *
+     * @return content type
      */
     public String getContentType() {
         return pContentType;
@@ -94,13 +94,20 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
 
     /**
      * <p>
-     * Execute this result, using the specified template location. <p/>The
+     * Execute this result, using the specified template location. <br>The
      * template location has already been interpolated for any variable
      * substitutions <br>this method obtains the freemarker configuration and
      * the object wrapper from the provided hooks. It them implements the
      * template processing workflow by calling the hooks for preTemplateProcess
      * and postTemplateProcess
      * </p>
+     *
+     * @param location template location
+     * @param invocation the action invocation
+     *
+     * @throws IOException in case of I/O related errors
+     * @throws TemplateException in case of freemarker templates related errors
+     * @throws PortletException in case of portlet related errors
      */
     public void doExecute(String location, ActionInvocation invocation)
             throws IOException, TemplateException, PortletException {
@@ -190,6 +197,10 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
      * the configuration object in a subclass, or to fetch it from an IoC
      * container. <br><b>The default implementation obtains the configuration
      * from the ConfigurationManager instance. </b>
+     *
+     * @return configuration
+     *
+     * @throws TemplateException in case of freemarker templates related errors
      */
     protected Configuration getConfiguration() throws TemplateException {
         return freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
@@ -201,6 +212,8 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
      * for adapting objects into template models. This is a hook that allows you
      * to custom-configure the wrapper object in a subclass. <br><b>The default
      * implementation returns {@link Configuration#getObjectWrapper()}</b>
+     *
+     * @return object wrapper
      */
     protected ObjectWrapper getObjectWrapper() {
         return configuration.getObjectWrapper();
@@ -208,6 +221,10 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
 
     /**
      * The default writer writes directly to the response writer.
+     *
+     * @return response writer
+     *
+     * @throws IOException in case of I/O related errors
      */
     protected Writer getWriter() throws IOException {
         return PortletActionContext.getRenderResponse().getWriter();
@@ -234,6 +251,10 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
      * servlet spec (for JSP Exception pages)
      * <li>struts - instance of the StrutsUtil class
      * </ul>
+     *
+     * @return freemarker template model
+     *
+     * @throws TemplateModelException in case of template model errors
      */
     protected TemplateModel createModel() throws TemplateModelException {
         ServletContext servletContext = ServletActionContext
@@ -245,7 +266,7 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
     }
 
     /**
-     * Returns the locale used for the
+     * @return  the locale used for the
      * {@link Configuration#getTemplate(String, Locale)}call. The base
      * implementation simply returns the locale setting of the configuration.
      * Override this method to provide different behaviour,
@@ -257,6 +278,11 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
     /**
      * the default implementation of postTemplateProcess applies the contentType
      * parameter
+     *
+     * @param template freemarker template
+     * @param data model data
+     *
+     * @throws IOException in case of I/O related errors
      */
     protected void postTemplateProcess(Template template, TemplateModel data) throws IOException {
     }
@@ -268,8 +294,13 @@ public class PortletFreemarkerResult extends StrutsResultSupport {
      * action to perform here is to inject application-specific objects into the
      * model root
      *
+     * @param template freemarker template
+     * @param model model data
+     *
      * @return true to process the template, false to suppress template
      *         processing.
+     *
+     * @throws IOException in case of I/O related errors
      */
     protected boolean preTemplateProcess(Template template, TemplateModel model) throws IOException {
         Object attrContentType = template.getCustomAttribute("content_type");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java b/plugins/rest/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
index 38ca89c..5b81a97 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/ContentTypeHandlerManager.java
@@ -46,6 +46,7 @@ public interface ContentTypeHandlerManager {
     /**
      * Gets the handler for the response by looking at the extension of the request
      * @param req The request
+     * @param res The servlet response
      * @return The appropriate handler
      */
     ContentTypeHandler getHandlerForResponse(HttpServletRequest req, HttpServletResponse res);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java b/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
index 4541676..b943a3b 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/HttpHeaders.java
@@ -40,17 +40,17 @@ public interface HttpHeaders {
             HttpServletResponse response, Object target);
     
     /**
-     * The HTTP status code
+     * @return  The HTTP status code
      */
     int getStatus();
 
     /**
-     * The HTTP status code
+     * @param status set the HTTP status code
      */
     void setStatus(int status);
 
     /**
-     * The result code to process
+     * @return The result code to process
      */
     String getResultCode();
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java
index 1a2cac2..816843a 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionMapper.java
@@ -80,14 +80,14 @@ import java.util.HashMap;
  * The following URL's will invoke its methods:
  * </p>
  * <ul> 
- *  <li><code>GET:    /movies                => method="index"</code></li>
- *  <li><code>GET:    /movies/Thrillers      => method="show", id="Thrillers"</code></li>
- *  <li><code>GET:    /movies/Thrillers;edit => method="edit", id="Thrillers"</code></li>
- *  <li><code>GET:    /movies/Thrillers/edit => method="edit", id="Thrillers"</code></li>
- *  <li><code>GET:    /movies/new            => method="editNew"</code></li>
- *  <li><code>POST:   /movies                => method="create"</code></li>
- *  <li><code>PUT:    /movies/Thrillers      => method="update", id="Thrillers"</code></li>
- *  <li><code>DELETE: /movies/Thrillers      => method="destroy", id="Thrillers"</code></li>
+ *  <li><code>GET:    /movies                =&gt; method="index"</code></li>
+ *  <li><code>GET:    /movies/Thrillers      =&gt; method="show", id="Thrillers"</code></li>
+ *  <li><code>GET:    /movies/Thrillers;edit =&gt; method="edit", id="Thrillers"</code></li>
+ *  <li><code>GET:    /movies/Thrillers/edit =&gt; method="edit", id="Thrillers"</code></li>
+ *  <li><code>GET:    /movies/new            =&gt; method="editNew"</code></li>
+ *  <li><code>POST:   /movies                =&gt; method="create"</code></li>
+ *  <li><code>PUT:    /movies/Thrillers      =&gt; method="update", id="Thrillers"</code></li>
+ *  <li><code>DELETE: /movies/Thrillers      =&gt; method="destroy", id="Thrillers"</code></li>
  * </ul>
  * <p>
  * To simulate the HTTP methods PUT and DELETE, since they aren't supported by HTML,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionSupport.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionSupport.java b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionSupport.java
index 63230c2..812a00a 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionSupport.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionSupport.java
@@ -48,7 +48,7 @@ public class RestActionSupport extends ActionSupport {
 	/**
 	 * Default execution.
 	 * @return object because it can return string, result or httpHeader.
-	 * @throws Exception
+	 * @throws Exception in case of any error
 	 */
     public Object index() throws Exception {
         return execute();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/handler/ContentTypeHandler.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/ContentTypeHandler.java b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/ContentTypeHandler.java
index 9ea78e8..7dca16a 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/ContentTypeHandler.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/ContentTypeHandler.java
@@ -34,6 +34,7 @@ public interface ContentTypeHandler {
      * Populates an object using data from the input stream
      * @param in The input stream, usually the body of the request
      * @param target The target, usually the action class
+     * @throws IOException If unable to write to the output stream
      */
     void toObject(Reader in, Object target) throws IOException;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/handler/FormUrlEncodedHandler.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/FormUrlEncodedHandler.java b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/FormUrlEncodedHandler.java
index 17ea005..90a08b8 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/FormUrlEncodedHandler.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/FormUrlEncodedHandler.java
@@ -31,7 +31,7 @@ import java.io.Reader;
  *
  * This handler is intended for requests only, not for responses
  *
- * {@link http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4}
+ * @see <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4">http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4</a>
  *
  */
 public class FormUrlEncodedHandler implements ContentTypeHandler {
@@ -42,13 +42,17 @@ public class FormUrlEncodedHandler implements ContentTypeHandler {
         throw new IOException("Conversion from Object to '"+getContentType()+"' is not supported");
     }
 
-    /** No transformation is required as the framework handles this data */
+    /**
+     * No transformation is required as the framework handles this data
+     *
+     * @param in The input stream, usually the body of the request
+     * @param target The target, usually the action class
+     */
     public void toObject(Reader in, Object target) {
     }
 
     /**
-     * The extension is not used by this handler
-     * @return
+     * @return The extension is not used by this handler
      */
     public String getExtension() {
         return null;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/rest/src/main/java/org/apache/struts2/rest/handler/MultipartFormDataHandler.java
----------------------------------------------------------------------
diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/MultipartFormDataHandler.java b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/MultipartFormDataHandler.java
index a49cc2b..affef17 100644
--- a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/MultipartFormDataHandler.java
+++ b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/MultipartFormDataHandler.java
@@ -32,8 +32,7 @@ import java.io.Reader;
  *
  * This handler is intended for requests only, not for responses
  *
- * {@link http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4}
- *
+ * @see <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4">http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4</a>
  */
 public class MultipartFormDataHandler implements ContentTypeHandler {
 
@@ -43,13 +42,17 @@ public class MultipartFormDataHandler implements ContentTypeHandler {
         throw new IOException("Conversion from Object to '"+getContentType()+"' is not supported");
     }
 
-    /** No transformation is required as the framework handles this data */
+    /**
+     * No transformation is required as the framework handles this data
+     *
+     * @param in The input stream, usually the body of the request
+     * @param target The target, usually the action class
+     */
     public void toObject(Reader in, Object target) {
     }
 
     /**
-     * The extension is not used by this handler
-     * @return
+     * @return The extension is not used by this handler
      */
     public String getExtension() {
         return null;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/spring/src/main/java/org/apache/struts2/spring/ClassReloadingXMLWebApplicationContext.java
----------------------------------------------------------------------
diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/ClassReloadingXMLWebApplicationContext.java b/plugins/spring/src/main/java/org/apache/struts2/spring/ClassReloadingXMLWebApplicationContext.java
index 87c39b8..847bbd2 100644
--- a/plugins/spring/src/main/java/org/apache/struts2/spring/ClassReloadingXMLWebApplicationContext.java
+++ b/plugins/spring/src/main/java/org/apache/struts2/spring/ClassReloadingXMLWebApplicationContext.java
@@ -44,19 +44,24 @@ import java.util.HashSet;
 import java.util.regex.Pattern;
 
 /**
+ * <p>
  * This class can be used instead of XmlWebApplicationContext, and it will watch jar files and directories for changes
  * and reload then changed classes.
- * <br />
+ * </p>
+ *
+ * <p>
  * To use this class:
+ * </p>
  * <ul>
  * <li>Set "struts.devMode" to "true" </li>
- * <li>Set "struts.class.reloading.watchList" to a comma separated list of directories, or jar files (absolute paths)</p>
+ * <li>Set "struts.class.reloading.watchList" to a comma separated list of directories, or jar files (absolute paths)</li>
  * <li>Add this to web.xml:
- * <pre>
+ *  <pre>
  *  &lt;context-param&gt;
  *       &lt;param-name&gt;contextClass&lt;/param-name&gt;
  *       &lt;param-value&gt;org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext&lt;/param-value&gt;
  *   &lt;/context-param&gt;
+ *   </pre>
  *  </li>
  * <li>Add Apache Commons JCI FAM to the classpath. If you are using maven, add this to pom.xml:
  *  <pre>
@@ -65,7 +70,7 @@ import java.util.regex.Pattern;
  *       &lt;artifactId&gt;commons-jci-fam&lt;/artifactId&gt;
  *       &lt;version&gt;1.0&lt;/version&gt;
  *       &lt;optional&gt;true&lt;/optional&gt;
- *  &lt;/dependency>
+ *  &lt;/dependency&gt;
  *  </pre>
  * </li>
  * </ul>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
----------------------------------------------------------------------
diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
index 251548d..83b2853 100644
--- a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
+++ b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
@@ -55,7 +55,10 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory {
      * @param autoWire The type of autowiring to use
      * @param alwaysAutoWire Whether to always respect the autowiring or not
      * @param useClassCacheStr Whether to use the class cache or not
+     * @param enableAopSupport enable AOP support
      * @param servletContext The servlet context
+     * @param devMode development mode
+     * @param container container
      * @since 2.1.3
      */
     @Inject


[07/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Node.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Node.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Node.java
index fe8b532..24b1711 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Node.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Node.java
@@ -19,11 +19,11 @@
 
 package org.apache.struts2.el.parser;
 
+import org.apache.struts2.el.lang.EvaluationContext;
+
 import javax.el.ELException;
 import javax.el.MethodInfo;
 
-import org.apache.struts2.el.lang.EvaluationContext;
-
 
 /* All AST nodes must implement this interface.  It provides basic
    machinery for constructing the parent and child relationships
@@ -35,37 +35,65 @@ import org.apache.struts2.el.lang.EvaluationContext;
  */
 public interface Node {
 
-  /** This method is called after the node has been made the current
-    node.  It indicates that child nodes can now be added to it. */
-  public void jjtOpen();
-
-  /** This method is called after all the child nodes have been
-    added. */
-  public void jjtClose();
-
-  /** This pair of methods are used to inform the node of its
-    parent. */
-  public void jjtSetParent(Node n);
-  public Node jjtGetParent();
-
-  /** This method tells the node to add its argument to the node's
-    list of children.  */
-  public void jjtAddChild(Node n, int i);
-
-  /** This method returns a child node.  The children are numbered
-     from zero, left to right. */
-  public Node jjtGetChild(int i);
-
-  /** Return the number of children the node has. */
-  public int jjtGetNumChildren();
-  
-  public String getImage();
-  
-  public Object getValue(EvaluationContext ctx) throws ELException;
-  public void setValue(EvaluationContext ctx, Object value) throws ELException;
-  public Class getType(EvaluationContext ctx) throws ELException;
-  public boolean isReadOnly(EvaluationContext ctx) throws ELException;
-  public void accept(NodeVisitor visitor) throws Exception;
-  public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException;
-  public Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException;
+    /**
+     * This method is called after the node has been made the current
+     * node.  It indicates that child nodes can now be added to it.
+     */
+    public void jjtOpen();
+
+    /**
+     * This method is called after all the child nodes have been
+     * added.
+     */
+    public void jjtClose();
+
+    /**
+     * This pair of methods are used to inform the node of its
+     * parent.
+     *
+     * @param n the node
+     */
+    public void jjtSetParent(Node n);
+
+    public Node jjtGetParent();
+
+    /**
+     * This method tells the node to add its argument to the node's
+     * list of children.
+     *
+     * @param n the node
+     * @param i i
+     */
+    public void jjtAddChild(Node n, int i);
+
+    /**
+     * This method returns a child node.  The children are numbered
+     * from zero, left to right.
+     *
+     * @param i i
+     *
+     * @return child node
+     */
+    public Node jjtGetChild(int i);
+
+    /**
+     * @return the number of children the node has.
+     */
+    public int jjtGetNumChildren();
+
+    public String getImage();
+
+    public Object getValue(EvaluationContext ctx) throws ELException;
+
+    public void setValue(EvaluationContext ctx, Object value) throws ELException;
+
+    public Class getType(EvaluationContext ctx) throws ELException;
+
+    public boolean isReadOnly(EvaluationContext ctx) throws ELException;
+
+    public void accept(NodeVisitor visitor) throws Exception;
+
+    public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] paramTypes) throws ELException;
+
+    public Object invoke(EvaluationContext ctx, Class[] paramTypes, Object[] paramValues) throws ELException;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ParseException.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ParseException.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ParseException.java
index 231d73c..a57e7da 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ParseException.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ParseException.java
@@ -23,7 +23,11 @@ public class ParseException extends Exception {
    * This constructor calls its super class with the empty string
    * to force the "toString" method of parent class "Throwable" to
    * print the error message in the form:
-   *     ParseException: <result of getMessage>
+   *     ParseException: &lt;result of getMessage&gt;
+   *
+   * @param currentTokenVal current token value
+   * @param expectedTokenSequencesVal  expected token sequence value
+   * @param tokenImageVal token image value
    */
   public ParseException(Token currentTokenVal,
                         int[][] expectedTokenSequencesVal,
@@ -52,7 +56,11 @@ public class ParseException extends Exception {
     specialConstructor = false;
   }
 
-  /** Constructor with message. */
+  /**
+   * Constructor with message.
+   *
+   * @param message exception message
+   */
   public ParseException(String message) {
     super(message);
     specialConstructor = false;
@@ -68,7 +76,7 @@ public class ParseException extends Exception {
   /**
    * This is the last token that has been consumed successfully.  If
    * this object has been created due to a parse error, the token
-   * followng this token will (therefore) be the first error token.
+   * following this token will (therefore) be the first error token.
    */
   public Token currentToken;
 
@@ -95,25 +103,27 @@ public class ParseException extends Exception {
    * from the parser), then this method is called during the printing
    * of the final stack trace, and hence the correct error message
    * gets displayed.
+   *
+   * @return the exception message
    */
   public String getMessage() {
     if (!specialConstructor) {
       return super.getMessage();
     }
-    StringBuffer expected = new StringBuffer();
+    StringBuilder expected = new StringBuilder();
     int maxSize = 0;
-    for (int i = 0; i < expectedTokenSequences.length; i++) {
-      if (maxSize < expectedTokenSequences[i].length) {
-        maxSize = expectedTokenSequences[i].length;
-      }
-      for (int j = 0; j < expectedTokenSequences[i].length; j++) {
-        expected.append(tokenImage[expectedTokenSequences[i][j]]).append(' ');
+      for (int[] expectedTokenSequence : expectedTokenSequences) {
+          if (maxSize < expectedTokenSequence.length) {
+              maxSize = expectedTokenSequence.length;
+          }
+          for (int anExpectedTokenSequence : expectedTokenSequence) {
+              expected.append(tokenImage[anExpectedTokenSequence]).append(' ');
+          }
+          if (expectedTokenSequence[expectedTokenSequence.length - 1] != 0) {
+              expected.append("...");
+          }
+          expected.append(eol).append("    ");
       }
-      if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) {
-        expected.append("...");
-      }
-      expected.append(eol).append("    ");
-    }
     String retval = "Encountered \"";
     Token tok = currentToken.next;
     for (int i = 0; i < maxSize; i++) {
@@ -148,9 +158,12 @@ public class ParseException extends Exception {
    * Used to convert raw characters to their escaped version
    * when these raw version cannot be used as part of an ASCII
    * string literal.
+   *
+   * @param str string to escape
+   * @return string with escapes
    */
   protected String add_escapes(String str) {
-      StringBuffer retval = new StringBuffer();
+      StringBuilder retval = new StringBuilder();
       char ch;
       for (int i = 0; i < str.length(); i++) {
         switch (str.charAt(i))
@@ -184,11 +197,10 @@ public class ParseException extends Exception {
            default:
               if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
                  String s = "0000" + Integer.toString(ch, 16);
-                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+                 retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
               } else {
                  retval.append(ch);
               }
-              continue;
         }
       }
       return retval.toString();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/SimpleCharStream.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/SimpleCharStream.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/SimpleCharStream.java
index 9e4a407..bb7f01e 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/SimpleCharStream.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/SimpleCharStream.java
@@ -7,466 +7,567 @@ package org.apache.struts2.el.parser;
  * contain only ASCII characters (without unicode processing).
  */
 
-public class SimpleCharStream
-{
-/** Whether parser is static. */
-  public static final boolean staticFlag = false;
-  int bufsize;
-  int available;
-  int tokenBegin;
-/** Position in buffer. */
-  public int bufpos = -1;
-  protected int bufline[];
-  protected int bufcolumn[];
-
-  protected int column = 0;
-  protected int line = 1;
-
-  protected boolean prevCharIsCR = false;
-  protected boolean prevCharIsLF = false;
-
-  protected java.io.Reader inputStream;
-
-  protected char[] buffer;
-  protected int maxNextCharInd = 0;
-  protected int inBuf = 0;
-  protected int tabSize = 8;
-
-  protected void setTabSize(int i) { tabSize = i; }
-  protected int getTabSize(int i) { return tabSize; }
-
-
-  protected void ExpandBuff(boolean wrapAround)
-  {
-     char[] newbuffer = new char[bufsize + 2048];
-     int newbufline[] = new int[bufsize + 2048];
-     int newbufcolumn[] = new int[bufsize + 2048];
-
-     try
-     {
-        if (wrapAround)
-        {
-           System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
-           System.arraycopy(buffer, 0, newbuffer,
-                                             bufsize - tokenBegin, bufpos);
-           buffer = newbuffer;
-
-           System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
-           System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
-           bufline = newbufline;
-
-           System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
-           System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
-           bufcolumn = newbufcolumn;
-
-           maxNextCharInd = (bufpos += (bufsize - tokenBegin));
+public class SimpleCharStream {
+    /**
+     * Whether parser is static.
+     */
+    public static final boolean staticFlag = false;
+    int bufsize;
+    int available;
+    int tokenBegin;
+    /**
+     * Position in buffer.
+     */
+    public int bufpos = -1;
+    protected int bufline[];
+    protected int bufcolumn[];
+
+    protected int column = 0;
+    protected int line = 1;
+
+    protected boolean prevCharIsCR = false;
+    protected boolean prevCharIsLF = false;
+
+    protected java.io.Reader inputStream;
+
+    protected char[] buffer;
+    protected int maxNextCharInd = 0;
+    protected int inBuf = 0;
+    protected int tabSize = 8;
+
+    protected void setTabSize(int i) {
+        tabSize = i;
+    }
+
+    protected int getTabSize(int i) {
+        return tabSize;
+    }
+
+
+    protected void ExpandBuff(boolean wrapAround) {
+        char[] newbuffer = new char[bufsize + 2048];
+        int newbufline[] = new int[bufsize + 2048];
+        int newbufcolumn[] = new int[bufsize + 2048];
+
+        try {
+            if (wrapAround) {
+                System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+                System.arraycopy(buffer, 0, newbuffer,
+                        bufsize - tokenBegin, bufpos);
+                buffer = newbuffer;
+
+                System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+                System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
+                bufline = newbufline;
+
+                System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+                System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
+                bufcolumn = newbufcolumn;
+
+                maxNextCharInd = (bufpos += (bufsize - tokenBegin));
+            } else {
+                System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
+                buffer = newbuffer;
+
+                System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
+                bufline = newbufline;
+
+                System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
+                bufcolumn = newbufcolumn;
+
+                maxNextCharInd = (bufpos -= tokenBegin);
+            }
+        } catch (Throwable t) {
+            throw new Error(t.getMessage());
         }
-        else
-        {
-           System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
-           buffer = newbuffer;
 
-           System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
-           bufline = newbufline;
 
-           System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
-           bufcolumn = newbufcolumn;
+        bufsize += 2048;
+        available = bufsize;
+        tokenBegin = 0;
+    }
 
-           maxNextCharInd = (bufpos -= tokenBegin);
+    protected void FillBuff() throws java.io.IOException {
+        if (maxNextCharInd == available) {
+            if (available == bufsize) {
+                if (tokenBegin > 2048) {
+                    bufpos = maxNextCharInd = 0;
+                    available = tokenBegin;
+                } else if (tokenBegin < 0)
+                    bufpos = maxNextCharInd = 0;
+                else
+                    ExpandBuff(false);
+            } else if (available > tokenBegin)
+                available = bufsize;
+            else if ((tokenBegin - available) < 2048)
+                ExpandBuff(true);
+            else
+                available = tokenBegin;
         }
-     }
-     catch (Throwable t)
-     {
-        throw new Error(t.getMessage());
-     }
-
-
-     bufsize += 2048;
-     available = bufsize;
-     tokenBegin = 0;
-  }
-
-  protected void FillBuff() throws java.io.IOException
-  {
-     if (maxNextCharInd == available)
-     {
-        if (available == bufsize)
-        {
-           if (tokenBegin > 2048)
-           {
-              bufpos = maxNextCharInd = 0;
-              available = tokenBegin;
-           }
-           else if (tokenBegin < 0)
-              bufpos = maxNextCharInd = 0;
-           else
-              ExpandBuff(false);
+
+        int i;
+        try {
+            if ((i = inputStream.read(buffer, maxNextCharInd,
+                    available - maxNextCharInd)) == -1) {
+                inputStream.close();
+                throw new java.io.IOException();
+            } else
+                maxNextCharInd += i;
+            return;
+        } catch (java.io.IOException e) {
+            --bufpos;
+            backup(0);
+            if (tokenBegin == -1)
+                tokenBegin = bufpos;
+            throw e;
         }
-        else if (available > tokenBegin)
-           available = bufsize;
-        else if ((tokenBegin - available) < 2048)
-           ExpandBuff(true);
-        else
-           available = tokenBegin;
-     }
-
-     int i;
-     try {
-        if ((i = inputStream.read(buffer, maxNextCharInd,
-                                    available - maxNextCharInd)) == -1)
-        {
-           inputStream.close();
-           throw new java.io.IOException();
+    }
+
+    /**
+     * Start.
+     *
+     * @return first char
+     * @throws java.io.IOException in case of IO errors
+     */
+    public char BeginToken() throws java.io.IOException {
+        tokenBegin = -1;
+        char c = readChar();
+        tokenBegin = bufpos;
+
+        return c;
+    }
+
+    protected void UpdateLineColumn(char c) {
+        column++;
+
+        if (prevCharIsLF) {
+            prevCharIsLF = false;
+            line += (column = 1);
+        } else if (prevCharIsCR) {
+            prevCharIsCR = false;
+            if (c == '\n') {
+                prevCharIsLF = true;
+            } else
+                line += (column = 1);
         }
-        else
-           maxNextCharInd += i;
-        return;
-     }
-     catch(java.io.IOException e) {
-        --bufpos;
-        backup(0);
-        if (tokenBegin == -1)
-           tokenBegin = bufpos;
-        throw e;
-     }
-  }
-
-/** Start. */
-  public char BeginToken() throws java.io.IOException
-  {
-     tokenBegin = -1;
-     char c = readChar();
-     tokenBegin = bufpos;
-
-     return c;
-  }
-
-  protected void UpdateLineColumn(char c)
-  {
-     column++;
-
-     if (prevCharIsLF)
-     {
-        prevCharIsLF = false;
-        line += (column = 1);
-     }
-     else if (prevCharIsCR)
-     {
-        prevCharIsCR = false;
-        if (c == '\n')
-        {
-           prevCharIsLF = true;
+
+        switch (c) {
+            case '\r':
+                prevCharIsCR = true;
+                break;
+            case '\n':
+                prevCharIsLF = true;
+                break;
+            case '\t':
+                column--;
+                column += (tabSize - (column % tabSize));
+                break;
+            default:
+                break;
+        }
+
+        bufline[bufpos] = line;
+        bufcolumn[bufpos] = column;
+    }
+
+    /**
+     * Read a character.
+     * @return character
+     * @throws java.io.IOException in case of IO errors
+     */
+    public char readChar() throws java.io.IOException {
+        if (inBuf > 0) {
+            --inBuf;
+
+            if (++bufpos == bufsize)
+                bufpos = 0;
+
+            return buffer[bufpos];
+        }
+
+        if (++bufpos >= maxNextCharInd)
+            FillBuff();
+
+        char c = buffer[bufpos];
+
+        UpdateLineColumn(c);
+        return c;
+    }
+
+    /**
+     * @return column
+     * @see #getEndColumn
+     * @deprecated
+     */
+
+    public int getColumn() {
+        return bufcolumn[bufpos];
+    }
+
+    /**
+     * @return line
+     * @see #getEndLine
+     * @deprecated
+     */
+
+    public int getLine() {
+        return bufline[bufpos];
+    }
+
+    /**
+     * @return  token end column number.
+     */
+    public int getEndColumn() {
+        return bufcolumn[bufpos];
+    }
+
+    /**
+     * @return  token end line number.
+     */
+    public int getEndLine() {
+        return bufline[bufpos];
+    }
+
+    /**
+     * @return  token beginning column number.
+     */
+    public int getBeginColumn() {
+        return bufcolumn[tokenBegin];
+    }
+
+    /**
+     * @return  token beginning line number.
+     */
+    public int getBeginLine() {
+        return bufline[tokenBegin];
+    }
+
+    /**
+     * Backup a number of characters.
+     * @param amount amount of characters
+     */
+    public void backup(int amount) {
+
+        inBuf += amount;
+        if ((bufpos -= amount) < 0)
+            bufpos += bufsize;
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     */
+    public SimpleCharStream(java.io.Reader dstream, int startline,
+                            int startcolumn, int buffersize) {
+        inputStream = dstream;
+        line = startline;
+        column = startcolumn - 1;
+
+        available = bufsize = buffersize;
+        buffer = new char[buffersize];
+        bufline = new int[buffersize];
+        bufcolumn = new int[buffersize];
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     */
+    public SimpleCharStream(java.io.Reader dstream, int startline,
+                            int startcolumn) {
+        this(dstream, startline, startcolumn, 4096);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     */
+    public SimpleCharStream(java.io.Reader dstream) {
+        this(dstream, 1, 1, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     */
+    public void ReInit(java.io.Reader dstream, int startline,
+                       int startcolumn, int buffersize) {
+        inputStream = dstream;
+        line = startline;
+        column = startcolumn - 1;
+
+        if (buffer == null || buffersize != buffer.length) {
+            available = bufsize = buffersize;
+            buffer = new char[buffersize];
+            bufline = new int[buffersize];
+            bufcolumn = new int[buffersize];
         }
+        prevCharIsLF = prevCharIsCR = false;
+        tokenBegin = inBuf = maxNextCharInd = 0;
+        bufpos = -1;
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     */
+    public void ReInit(java.io.Reader dstream, int startline,
+                       int startcolumn) {
+        ReInit(dstream, startline, startcolumn, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     */
+    public void ReInit(java.io.Reader dstream) {
+        ReInit(dstream, 1, 1, 4096);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+                            int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+        this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     */
+    public SimpleCharStream(java.io.InputStream dstream, int startline,
+                            int startcolumn, int buffersize) {
+        this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @param startline start line
+     * @param startcolumn  start column
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
+                            int startcolumn) throws java.io.UnsupportedEncodingException {
+        this(dstream, encoding, startline, startcolumn, 4096);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     */
+    public SimpleCharStream(java.io.InputStream dstream, int startline,
+                            int startcolumn) {
+        this(dstream, startline, startcolumn, 4096);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+        this(dstream, encoding, 1, 1, 4096);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param dstream stream
+     */
+    public SimpleCharStream(java.io.InputStream dstream) {
+        this(dstream, 1, 1, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                       int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException {
+        ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     * @param buffersize  buffer size
+     */
+    public void ReInit(java.io.InputStream dstream, int startline,
+                       int startcolumn, int buffersize) {
+        ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException {
+        ReInit(dstream, encoding, 1, 1, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     */
+    public void ReInit(java.io.InputStream dstream) {
+        ReInit(dstream, 1, 1, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param encoding encoding
+     * @param startline start line
+     * @param startcolumn  start column
+     * @throws java.io.UnsupportedEncodingException in case of unsupported encoding
+     */
+    public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                       int startcolumn) throws java.io.UnsupportedEncodingException {
+        ReInit(dstream, encoding, startline, startcolumn, 4096);
+    }
+
+    /**
+     * Reinitialise.
+     *
+     * @param dstream stream
+     * @param startline start line
+     * @param startcolumn  start column
+     */
+    public void ReInit(java.io.InputStream dstream, int startline,
+                       int startcolumn) {
+        ReInit(dstream, startline, startcolumn, 4096);
+    }
+
+    /**
+     * @return  token literal value.
+     */
+    public String GetImage() {
+        if (bufpos >= tokenBegin)
+            return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
         else
-           line += (column = 1);
-     }
-
-     switch (c)
-     {
-        case '\r' :
-           prevCharIsCR = true;
-           break;
-        case '\n' :
-           prevCharIsLF = true;
-           break;
-        case '\t' :
-           column--;
-           column += (tabSize - (column % tabSize));
-           break;
-        default :
-           break;
-     }
-
-     bufline[bufpos] = line;
-     bufcolumn[bufpos] = column;
-  }
-
-/** Read a character. */
-  public char readChar() throws java.io.IOException
-  {
-     if (inBuf > 0)
-     {
-        --inBuf;
-
-        if (++bufpos == bufsize)
-           bufpos = 0;
-
-        return buffer[bufpos];
-     }
-
-     if (++bufpos >= maxNextCharInd)
-        FillBuff();
-
-     char c = buffer[bufpos];
-
-     UpdateLineColumn(c);
-     return c;
-  }
-
-  /**
-   * @deprecated
-   * @see #getEndColumn
-   */
-
-  public int getColumn() {
-     return bufcolumn[bufpos];
-  }
-
-  /**
-   * @deprecated
-   * @see #getEndLine
-   */
-
-  public int getLine() {
-     return bufline[bufpos];
-  }
-
-  /** Get token end column number. */
-  public int getEndColumn() {
-     return bufcolumn[bufpos];
-  }
-
-  /** Get token end line number. */
-  public int getEndLine() {
-     return bufline[bufpos];
-  }
-
-  /** Get token beginning column number. */
-  public int getBeginColumn() {
-     return bufcolumn[tokenBegin];
-  }
-
-  /** Get token beginning line number. */
-  public int getBeginLine() {
-     return bufline[tokenBegin];
-  }
-
-/** Backup a number of characters. */
-  public void backup(int amount) {
-
-    inBuf += amount;
-    if ((bufpos -= amount) < 0)
-       bufpos += bufsize;
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.Reader dstream, int startline,
-  int startcolumn, int buffersize)
-  {
-    inputStream = dstream;
-    line = startline;
-    column = startcolumn - 1;
-
-    available = bufsize = buffersize;
-    buffer = new char[buffersize];
-    bufline = new int[buffersize];
-    bufcolumn = new int[buffersize];
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.Reader dstream, int startline,
-                          int startcolumn)
-  {
-     this(dstream, startline, startcolumn, 4096);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.Reader dstream)
-  {
-     this(dstream, 1, 1, 4096);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.Reader dstream, int startline,
-  int startcolumn, int buffersize)
-  {
-    inputStream = dstream;
-    line = startline;
-    column = startcolumn - 1;
-
-    if (buffer == null || buffersize != buffer.length)
-    {
-      available = bufsize = buffersize;
-      buffer = new char[buffersize];
-      bufline = new int[buffersize];
-      bufcolumn = new int[buffersize];
-    }
-    prevCharIsLF = prevCharIsCR = false;
-    tokenBegin = inBuf = maxNextCharInd = 0;
-    bufpos = -1;
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.Reader dstream, int startline,
-                     int startcolumn)
-  {
-     ReInit(dstream, startline, startcolumn, 4096);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.Reader dstream)
-  {
-     ReInit(dstream, 1, 1, 4096);
-  }
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
-  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
-  {
-     this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream, int startline,
-  int startcolumn, int buffersize)
-  {
-     this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream, String encoding, int startline,
-                          int startcolumn) throws java.io.UnsupportedEncodingException
-  {
-     this(dstream, encoding, startline, startcolumn, 4096);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream, int startline,
-                          int startcolumn)
-  {
-     this(dstream, startline, startcolumn, 4096);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
-  {
-     this(dstream, encoding, 1, 1, 4096);
-  }
-
-  /** Constructor. */
-  public SimpleCharStream(java.io.InputStream dstream)
-  {
-     this(dstream, 1, 1, 4096);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
-                          int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
-  {
-     ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, int startline,
-                          int startcolumn, int buffersize)
-  {
-     ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
-  {
-     ReInit(dstream, encoding, 1, 1, 4096);
-  }
-
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream)
-  {
-     ReInit(dstream, 1, 1, 4096);
-  }
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
-                     int startcolumn) throws java.io.UnsupportedEncodingException
-  {
-     ReInit(dstream, encoding, startline, startcolumn, 4096);
-  }
-  /** Reinitialise. */
-  public void ReInit(java.io.InputStream dstream, int startline,
-                     int startcolumn)
-  {
-     ReInit(dstream, startline, startcolumn, 4096);
-  }
-  /** Get token literal value. */
-  public String GetImage()
-  {
-     if (bufpos >= tokenBegin)
-        return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
-     else
-        return new String(buffer, tokenBegin, bufsize - tokenBegin) +
-                              new String(buffer, 0, bufpos + 1);
-  }
-
-  /** Get the suffix. */
-  public char[] GetSuffix(int len)
-  {
-     char[] ret = new char[len];
-
-     if ((bufpos + 1) >= len)
-        System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
-     else
-     {
-        System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
-                                                          len - bufpos - 1);
-        System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
-     }
-
-     return ret;
-  }
-
-  /** Reset buffer when finished. */
-  public void Done()
-  {
-     buffer = null;
-     bufline = null;
-     bufcolumn = null;
-  }
-
-  /**
-   * Method to adjust line and column numbers for the start of a token.
-   */
-  public void adjustBeginLineColumn(int newLine, int newCol)
-  {
-     int start = tokenBegin;
-     int len;
-
-     if (bufpos >= tokenBegin)
-     {
-        len = bufpos - tokenBegin + inBuf + 1;
-     }
-     else
-     {
-        len = bufsize - tokenBegin + bufpos + 1 + inBuf;
-     }
-
-     int i = 0, j = 0, k = 0;
-     int nextColDiff = 0, columnDiff = 0;
-
-     while (i < len &&
-            bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
-     {
-        bufline[j] = newLine;
-        nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
-        bufcolumn[j] = newCol + columnDiff;
-        columnDiff = nextColDiff;
-        i++;
-     }
-
-     if (i < len)
-     {
-        bufline[j] = newLine++;
-        bufcolumn[j] = newCol + columnDiff;
-
-        while (i++ < len)
-        {
-           if (bufline[j = start % bufsize] != bufline[++start % bufsize])
-              bufline[j] = newLine++;
-           else
-              bufline[j] = newLine;
+            return new String(buffer, tokenBegin, bufsize - tokenBegin) +
+                    new String(buffer, 0, bufpos + 1);
+    }
+
+    /**
+     * @param len length
+     * @return the suffix.
+     */
+    public char[] GetSuffix(int len) {
+        char[] ret = new char[len];
+
+        if ((bufpos + 1) >= len)
+            System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
+        else {
+            System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
+                    len - bufpos - 1);
+            System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
         }
-     }
 
-     line = bufline[j];
-     column = bufcolumn[j];
-  }
+        return ret;
+    }
+
+    /**
+     * Reset buffer when finished.
+     */
+    public void Done() {
+        buffer = null;
+        bufline = null;
+        bufcolumn = null;
+    }
+
+    /**
+     * Method to adjust line and column numbers for the start of a token.
+     * @param newLine new line
+     * @param newCol new column
+     */
+    public void adjustBeginLineColumn(int newLine, int newCol) {
+        int start = tokenBegin;
+        int len;
+
+        if (bufpos >= tokenBegin) {
+            len = bufpos - tokenBegin + inBuf + 1;
+        } else {
+            len = bufsize - tokenBegin + bufpos + 1 + inBuf;
+        }
+
+        int i = 0, j = 0, k = 0;
+        int nextColDiff = 0, columnDiff = 0;
+
+        while (i < len &&
+                bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
+            bufline[j] = newLine;
+            nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
+            bufcolumn[j] = newCol + columnDiff;
+            columnDiff = nextColDiff;
+            i++;
+        }
+
+        if (i < len) {
+            bufline[j] = newLine++;
+            bufcolumn[j] = newCol + columnDiff;
+
+            while (i++ < len) {
+                if (bufline[j = start % bufsize] != bufline[++start % bufsize])
+                    bufline[j] = newLine++;
+                else
+                    bufline[j] = newLine;
+            }
+        }
+
+        line = bufline[j];
+        column = bufcolumn[j];
+    }
 
 }
 /* JavaCC - OriginalChecksum=07e88967db3720fcfc378bbb17e7f640 (do not edit this line) */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Token.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Token.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Token.java
index 44204b8..9fcd6c3 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Token.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/Token.java
@@ -60,6 +60,8 @@ public class Token {
    * interpreter. This attribute value is often different from the image.
    * Any subclass of Token that actually wants to return a non-null value can
    * override this method as appropriate.
+   *
+   * @return null
    */
   public Object getValue() {
     return null;
@@ -72,6 +74,8 @@ public class Token {
 
   /**
    * Constructs a new token for the specified Image.
+   *
+   * @param kind kind
    */
   public Token(int kind)
   {
@@ -80,6 +84,9 @@ public class Token {
 
   /**
    * Constructs a new token for the specified Image and Kind.
+   *
+   * @param kind kind
+   * @param image image
    */
   public Token(int kind, String image)
   {
@@ -88,7 +95,7 @@ public class Token {
   }
 
   /**
-   * Returns the image.
+   * @return the image.
    */
   public String toString()
   {
@@ -106,6 +113,11 @@ public class Token {
    *
    * to the following switch statement. Then you can cast matchedToken
    * variable to the appropriate type and use sit in your lexical actions.
+   *
+   * @param ofKind ofKind
+   * @param image image
+   *
+   * @return new token
    */
   public static Token newToken(int ofKind, String image)
   {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/TokenMgrError.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/TokenMgrError.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/TokenMgrError.java
index 8982dce..f57edd6 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/TokenMgrError.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/TokenMgrError.java
@@ -39,9 +39,12 @@ public class TokenMgrError extends Error
    /**
     * Replaces unprintable characters by their escaped (or unicode escaped)
     * equivalents in the given string
+    *
+    * @param str string
+    * @return escaped string
     */
    protected static final String addEscapes(String str) {
-      StringBuffer retval = new StringBuffer();
+      StringBuilder retval = new StringBuilder();
       char ch;
       for (int i = 0; i < str.length(); i++) {
         switch (str.charAt(i))
@@ -75,27 +78,26 @@ public class TokenMgrError extends Error
            default:
               if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
                  String s = "0000" + Integer.toString(ch, 16);
-                 retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+                 retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
               } else {
                  retval.append(ch);
               }
-              continue;
         }
       }
       return retval.toString();
    }
 
    /**
-    * Returns a detailed message for the Error when it is thrown by the
-    * token manager to indicate a lexical error.
-    * Parameters :
-    *    EOFSeen     : indicates if EOF caused the lexical error
-    *    curLexState : lexical state in which this error occurred
-    *    errorLine   : line number when the error occurred
-    *    errorColumn : column number when the error occurred
-    *    errorAfter  : prefix that was seen before this error occurred
-    *    curchar     : the offending character
     * Note: You can customize the lexical error message by modifying this method.
+    *
+    * @param EOFSeen     : indicates if EOF caused the lexical error
+    * @param lexState : lexical state in which this error occurred
+    * @param errorLine   : line number when the error occurred
+    * @param errorColumn : column number when the error occurred
+    * @param errorAfter  : prefix that was seen before this error occurred
+    * @param curChar     : the offending character
+    *
+    * @return a detailed message for the Error when it is thrown by the token manager to indicate a lexical error.
     */
    protected static String LexicalError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar) {
       return("Lexical error at line " +
@@ -113,6 +115,8 @@ public class TokenMgrError extends Error
     *     "Internal Error : Please file a bug report .... "
     *
     * from this method for such cases in the release version of your parser.
+    *
+    * @return the message
     */
    public String getMessage() {
       return super.getMessage();
@@ -126,13 +130,28 @@ public class TokenMgrError extends Error
    public TokenMgrError() {
    }
 
-   /** Constructor with message and reason. */
+   /**
+    * Constructor with message and reason.
+    *
+    * @param message the error message
+    * @param reason the reason
+    */
    public TokenMgrError(String message, int reason) {
       super(message);
       errorCode = reason;
    }
 
-   /** Full Constructor. */
+   /**
+    * Full Constructor.
+    *
+    * @param EOFSeen indicates if EOF caused the lexical error
+    * @param lexState lexical state in which this error occurred
+    * @param errorLine line number when the error occurred
+    * @param errorColumn column number when the error occurred
+    * @param errorAfter prefix that was seen before this error occurred
+    * @param curChar the offending character
+    * @param reason the reason
+    */
    public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) {
       this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, errorAfter, curChar), reason);
    }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/util/ReflectionUtil.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/util/ReflectionUtil.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/util/ReflectionUtil.java
index 611d2ec..f819c61 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/util/ReflectionUtil.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/util/ReflectionUtil.java
@@ -47,9 +47,6 @@ public class ReflectionUtil {
             byte.class, char.class, double.class, float.class, int.class,
             long.class, short.class, Void.TYPE };
 
-    /**
-     * 
-     */
     private ReflectionUtil() {
         super();
     }
@@ -83,9 +80,9 @@ public class ReflectionUtil {
 
     /**
      * Converts an array of Class names to Class types
-     * @param s
-     * @return
-     * @throws ClassNotFoundException
+     * @param s array of class names
+     * @return array of class types
+     * @throws ClassNotFoundException if class was not found
      */
     public static Class[] toTypeArray(String[] s) throws ClassNotFoundException {
         if (s == null)
@@ -99,8 +96,8 @@ public class ReflectionUtil {
 
     /**
      * Converts an array of Class types to Class names
-     * @param c
-     * @return
+     * @param c array of class types
+     * @return array of class names
      */
     public static String[] toTypeNameArray(Class[] c) {
         if (c == null)
@@ -118,7 +115,7 @@ public class ReflectionUtil {
      * @param property the name of the method
      * @param paramTypes the parameter types to use
      * @return the method specified
-     * @throws MethodNotFoundException
+     * @throws MethodNotFoundException if method was not found
      */
     public static Method getMethod(Object base, Object property,
             Class[] paramTypes) throws MethodNotFoundException {
@@ -157,11 +154,11 @@ public class ReflectionUtil {
     }
 
     /**
-     * @param base
-     * @param property
-     * @return
-     * @throws ELException
-     * @throws PropertyNotFoundException
+     * @param base object
+     * @param property property
+     * @return property descriptor
+     * @throws ELException in case of EL errors
+     * @throws PropertyNotFoundException if property was not found
      */
     public static PropertyDescriptor getPropertyDescriptor(Object base,
             Object property) throws ELException, PropertyNotFoundException {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/EmbeddedServletOptions.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/EmbeddedServletOptions.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/EmbeddedServletOptions.java
index 43f4242..f8c2a5f 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/EmbeddedServletOptions.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/EmbeddedServletOptions.java
@@ -362,7 +362,7 @@ public final class EmbeddedServletOptions implements Options {
     }
 
     /**
-     * Should we include a source fragment in exception messages, which could be displayed
+     *  @return Should we include a source fragment in exception messages, which could be displayed
      * to the developer ?
      */
     public boolean getDisplaySourceFragment() {
@@ -371,7 +371,10 @@ public final class EmbeddedServletOptions implements Options {
 
     /**
      * Create an EmbeddedServletOptions object using data available from
-     * ServletConfig and ServletContext. 
+     * ServletConfig and ServletContext.
+     *
+     * @param config servlet config
+     * @param context servlet context
      */
     public EmbeddedServletOptions(ServletConfig config,
             ServletContext context) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JasperException.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JasperException.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JasperException.java
index a9a73c4..691b6fd 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JasperException.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JasperException.java
@@ -19,7 +19,7 @@ package org.apache.struts2.jasper;
 
 /**
  * Base class for all exceptions generated by the JSP engine. Makes it
- * convienient to catch just this at the top-level. 
+ * convenient to catch just this at the top-level.
  *
  * @author Anil K. Vijendran
  */
@@ -32,6 +32,9 @@ public class JasperException extends javax.servlet.ServletException {
     /**
      * Creates a JasperException with the embedded exception and the reason for
      * throwing a JasperException
+     *
+     * @param reason the reason
+     * @param exception the exception
      */
     public JasperException (String reason, Throwable exception) {
    	super(reason, exception);
@@ -39,6 +42,8 @@ public class JasperException extends javax.servlet.ServletException {
 
     /**
      * Creates a JasperException with the embedded exception
+     *
+     * @param exception the exception
      */
     public JasperException (Throwable exception) {
    	super(exception);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspC.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspC.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspC.java
index 2ac1388..d9716b1 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspC.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspC.java
@@ -424,21 +424,21 @@ public class JspC implements Options {
         return classDebugInfo;
     }
 
-     /**
+     /*
       * @see Options#isCaching()
      */
     public boolean isCaching() {
         return caching;
     }
 
-    /**
+    /*
      * @see Options#isCaching()
      */
     public void setCaching(boolean caching) {
         this.caching = caching;
     }
 
-    /**
+    /*
      * @see Options#getCache()
      */
     public Map getCache() {
@@ -446,35 +446,35 @@ public class JspC implements Options {
     }
 
     /**
-     * Background compilation check intervals in seconds
+     * @return Background compilation check intervals in seconds
      */
     public int getCheckInterval() {
         return 0;
     }
 
     /**
-     * Modification test interval.
+     * @return Modification test interval.
      */
     public int getModificationTestInterval() {
         return 0;
     }
 
     /**
-     * Is Jasper being used in development mode?
+     * @return Is Jasper being used in development mode?
      */
     public boolean getDevelopment() {
         return false;
     }
 
     /**
-     * Is the generation of SMAP info for JSR45 debuggin suppressed?
+     * @return Is the generation of SMAP info for JSR45 debuggin suppressed?
      */
     public boolean isSmapSuppressed() {
         return smapSuppressed;
     }
 
     /**
-     * Set smapSuppressed flag.
+     * @param smapSuppressed Set smapSuppressed flag.
      */
     public void setSmapSuppressed(boolean smapSuppressed) {
         this.smapSuppressed = smapSuppressed;
@@ -482,14 +482,14 @@ public class JspC implements Options {
 
     
     /**
-     * Should SMAP info for JSR45 debugging be dumped to a file?
+     * @return  Should SMAP info for JSR45 debugging be dumped to a file?
      */
     public boolean isSmapDumped() {
         return smapDumped;
     }
 
     /**
-     * Set smapSuppressed flag.
+     * @param smapDumped  Set smapDumped flag.
      */
     public void setSmapDumped(boolean smapDumped) {
         this.smapDumped = smapDumped;
@@ -519,7 +519,7 @@ public class JspC implements Options {
 
     /**
      * Sets the class-id value to be sent to Internet Explorer when using
-     * <jsp:plugin> tags.
+     * &lt;jsp:plugin&gt; tags.
      *
      * @param ieClassId Class-id value
      */
@@ -529,7 +529,7 @@ public class JspC implements Options {
 
     /**
      * Gets the class-id value that is sent to Internet Explorer when using
-     * <jsp:plugin> tags.
+     * &lt;jsp:plugin&gt; tags.
      *
      * @return Class-id value
      */
@@ -552,7 +552,7 @@ public class JspC implements Options {
     }
 
     /**
-     * Compiler to use.
+     * @return Compiler to use.
      */
     public String getCompiler() {
         return compiler;
@@ -563,13 +563,13 @@ public class JspC implements Options {
     }
 
     /**
-     * Compiler class name to use.
+     * @return Compiler class name to use.
      */
     public String getCompilerClassName() {
         return null;
     }
     
-    /**
+    /*
      * @see Options#getCompilerTargetVM
      */
     public String getCompilerTargetVM() {
@@ -580,14 +580,14 @@ public class JspC implements Options {
         compilerTargetVM = vm;
     }
 
-    /**
+    /*
      * @see Options#getCompilerSourceVM()
      */
      public String getCompilerSourceVM() {
          return compilerSourceVM;
      }
         
-    /**
+    /*
      * @see Options#getCompilerSourceVM()
      */
     public void setCompilerSourceVM(String vm) {
@@ -716,7 +716,7 @@ public class JspC implements Options {
     }
 
     /**
-     * Class name of the generated file ( without package ).
+     * @param p Class name of the generated file ( without package ).
      * Can only be used if a single file is converted.
      * XXX Do we need this feature ?
      */
@@ -729,7 +729,7 @@ public class JspC implements Options {
     }
 
     /**
-     * Set the option that throws an exception in case of a compilation error.
+     * @param b Set the option that throws an exception in case of a compilation error.
      */
     public void setFailOnError(final boolean b) {
         failOnError = b;
@@ -740,7 +740,7 @@ public class JspC implements Options {
     }
 
     /**
-     * Obtain JSP configuration informantion specified in web.xml.
+     * @return Obtain JSP configuration information specified in web.xml.
      */
     public JspConfig getJspConfig() {
         return jspConfig;
@@ -787,6 +787,8 @@ public class JspC implements Options {
 
     /**
      * Include the generated web.xml inside the webapp's web.xml.
+     *
+     * @throws IOException in case of IO errors
      */
     protected void mergeIntoWebXml() throws IOException {
 
@@ -989,9 +991,12 @@ public class JspC implements Options {
     /**
      * Locate all jsp files in the webapp. Used if no explicit
      * jsps are specified.
+     *
+     * @param base base
+     * @throws JasperException in case of Jasper errors
      */
     public void scanFiles( File base ) throws JasperException {
-        Stack<String> dirs = new Stack<String>();
+        Stack<String> dirs = new Stack<>();
         dirs.push(base.toString());
 
         // Make sure default extensions are always included
@@ -1178,6 +1183,8 @@ public class JspC implements Options {
      * Find the WEB-INF dir by looking up in the directory tree.
      * This is used if no explicit docbase is set, but only files.
      * XXX Maybe we should require the docbase.
+     *
+     * @param f start file for lookup
      */
     protected void locateUriRoot( File f ) {
         String tUriBase = uriBase;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
index 3d88718..976d3e3 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
@@ -125,7 +125,7 @@ public class JspCompilationContext {
         }
 
         this.rctxt = rctxt;
-        this.tagFileJarUrls = new HashMap<String, URL>();
+        this.tagFileJarUrls = new HashMap<>();
         this.basePackageName = Constants.JSP_PACKAGE_NAME;
         this.classLoaderInterface = classLoaderInterface;
     }
@@ -151,7 +151,7 @@ public class JspCompilationContext {
     /** ---------- Class path and loader ---------- */
 
     /**
-     * The classpath that is passed off to the Java compiler. 
+     * @return The classpath that is passed off to the Java compiler.
      */
     public String getClassPath() {
         if( classPath != null )
@@ -160,14 +160,14 @@ public class JspCompilationContext {
     }
 
     /**
-     * The classpath that is passed off to the Java compiler. 
+     * @param classPath The classpath that is passed off to the Java compiler.
      */
     public void setClassPath(String classPath) {
         this.classPath = classPath;
     }
 
     /**
-     * What class loader to use for loading classes while compiling
+     * @return What class loader to use for loading classes while compiling
      * this JSP?
      */
     public ClassLoader getClassLoader() {
@@ -194,7 +194,7 @@ public class JspCompilationContext {
     /** ---------- Input/Output  ---------- */
     
     /**
-     * The output directory to generate code into.  The output directory
+     * @return The output directory to generate code into.  The output directory
      * is make up of the scratch directory, which is provide in Options,
      * plus the directory derived from the package name.
      */
@@ -207,9 +207,11 @@ public class JspCompilationContext {
     }
 
     /**
-     * Create a "Compiler" object based on some init param data. This
+     * @return  Create a "Compiler" object based on some init param data. This
      * is not done yet. Right now we're just hardcoding the actual
-     * compilers that are created. 
+     * compilers that are created.
+     *
+     * @throws JasperException in case of Jasper errors
      */
     public Compiler createCompiler() throws JasperException {
         jspCompiler = new CustomCompiler();
@@ -246,6 +248,9 @@ public class JspCompilationContext {
     /** 
      * Get the full value of a URI relative to this compilations context
      * uses current file as the base.
+     *
+     * @param uri the URL
+     * @return full URL
      */
     public String resolveRelativeUri(String uri) {
         // sometimes we get uri's massaged from File(String), so check for
@@ -260,6 +265,8 @@ public class JspCompilationContext {
     /**
      * Gets a resource as a stream, relative to the meanings of this
      * context's implementation.
+     *
+     * @param res resource
      * @return a null if the resource cannot be found or represented 
      *         as an InputStream.
      */
@@ -282,8 +289,10 @@ public class JspCompilationContext {
         return context.getResourcePaths(canonicalURI(path));
     }
 
-    /** 
-     * Gets the actual path of a URI relative to the context of
+    /**
+     * @param path the path
+     *
+     * @return  the actual path of a URI relative to the context of
      * the compilation.
      */
     public String getRealPath(String path) {
@@ -294,11 +303,11 @@ public class JspCompilationContext {
     }
 
     /**
-     * Returns the tag-file-name-to-JAR-file map of this compilation unit,
+     * @return  the tag-file-name-to-JAR-file map of this compilation unit,
      * which maps tag file names to the JAR files in which the tag files are
      * packaged.
      *
-     * The map is populated when parsing the tag-file elements of the TLDs
+     * @param tagFile The map is populated when parsing the tag-file elements of the TLDs
      * of any imported taglibs. 
      */
     public URL getTagFileJarUrl(String tagFile) {
@@ -310,7 +319,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Returns the JAR file in which the tag file for which this
+     * @return  the JAR file in which the tag file for which this
      * JspCompilationContext was created is packaged, or null if this
      * JspCompilationContext does not correspond to a tag file, or if the
      * corresponding tag file is not packaged in a JAR.
@@ -322,7 +331,7 @@ public class JspCompilationContext {
     /* ==================== Common implementation ==================== */
 
     /**
-     * Just the class name (does not include package name) of the
+     * @return Just the class name (does not include package name) of the
      * generated class. 
      */
     public String getServletClassName() {
@@ -349,7 +358,7 @@ public class JspCompilationContext {
     }
     
     /**
-     * Path of the JSP URI. Note that this is not a file name. This is
+     * @return Path of the JSP URI. Note that this is not a file name. This is
      * the context rooted URI of the JSP file. 
      */
     public String getJspFile() {
@@ -357,7 +366,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Are we processing something that has been declared as an
+     * @return Are we processing something that has been declared as an
      * errorpage? 
      */
     public boolean isErrorPage() {
@@ -381,7 +390,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * True if we are compiling a tag file in prototype mode.
+     * @return True if we are compiling a tag file in prototype mode.
      * ie we only generate codes with class for the tag handler with empty
      * method bodies.
      */
@@ -394,7 +403,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Package name for the generated class is make up of the base package
+     * @return Package name for the generated class is make up of the base package
      * name, which is user settable, and the derived package name.  The
      * derived package name directly mirrors the file heirachy of the JSP page.
      */
@@ -426,14 +435,14 @@ public class JspCompilationContext {
     }
 	    
     /**
-     * The package name into which the servlet class is generated.
+     * @param servletPackageName The package name into which the servlet class is generated.
      */
     public void setServletPackageName(String servletPackageName) {
         this.basePackageName = servletPackageName;
     }
 
     /**
-     * Full path name of the Java file into which the servlet is being
+     * @return Full path name of the Java file into which the servlet is being
      * generated. 
      */
     public String getServletJavaFileName() {
@@ -444,7 +453,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Get hold of the Options object for this context. 
+     * @return  Get hold of the Options object for this context.
      */
     public Options getOptions() {
         return options;
@@ -459,7 +468,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Path of the Java file relative to the work directory.
+     * @return Path of the Java file relative to the work directory.
      */
     public String getJavaPath() {
 
@@ -485,7 +494,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Get the content type of this JSP.
+     * @return Get the content type of this JSP.
      *
      * Content type includes content type and encoding.
      */
@@ -498,7 +507,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Where is the servlet being generated?
+     * @return  Where is the servlet being generated?
      */
     public ServletWriter getWriter() {
         return writer;
@@ -510,12 +519,16 @@ public class JspCompilationContext {
 
     /**
      * Gets the 'location' of the TLD associated with the given taglib 'uri'.
-     * 
+     *
+     * @param uri the URL
+     *
      * @return An array of two Strings: The first element denotes the real
      * path to the TLD. If the path to the TLD points to a jar file, then the
      * second element denotes the name of the TLD entry in the jar file.
      * Returns null if the given uri is not associated with any tag library
      * 'exposed' in the web application.
+     *
+     * @throws JasperException in case of Jasper errors
      */
     public String[] getTldLocation(String uri) throws JasperException {
         String[] location = 
@@ -524,7 +537,7 @@ public class JspCompilationContext {
     }
 
     /**
-     * Are we keeping generated code around?
+     * @return  Are we keeping generated code around?
      */
     public boolean keepGenerated() {
         return getOptions().getKeepGenerated();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/Options.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/Options.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/Options.java
index e822b47..68d5d4f 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/Options.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/Options.java
@@ -34,98 +34,98 @@ import org.apache.struts2.jasper.compiler.TldLocationsCache;
 public interface Options {
 
     /**
-     * Returns true if Jasper issues a compilation error instead of a runtime
+     * @return  true if Jasper issues a compilation error instead of a runtime
      * Instantiation error if the class attribute specified in useBean action
      * is invalid.
      */
     public boolean getErrorOnUseBeanInvalidClassAttribute();
 
     /**
-     * Are we keeping generated code around?
+     *  @return Are we keeping generated code around?
      */
     public boolean getKeepGenerated();
 
     /**
-     * Returns true if tag handler pooling is enabled, false otherwise.
+     *  @return  true if tag handler pooling is enabled, false otherwise.
      */
     public boolean isPoolingEnabled();
 
     /**
-     * Are we supporting HTML mapped servlets?
+     *  @return  Are we supporting HTML mapped servlets?
      */
     public boolean getMappedFile();
 
     /**
-     * Should we include debug information in compiled class?
+     *  @return  Should we include debug information in compiled class?
      */
     public boolean getClassDebugInfo();
 
     /**
-     * Background compile thread check interval in seconds
+     * @return Background compile thread check interval in seconds
      */
     public int getCheckInterval();
 
     /**
-     * Is Jasper being used in development mode?
+     *  @return Is Jasper being used in development mode?
      */
     public boolean getDevelopment();
 
     /**
-     * Should we include a source fragment in exception messages, which could be displayed
+     *  @return Should we include a source fragment in exception messages, which could be displayed
      * to the developer ?
      */
     public boolean getDisplaySourceFragment();
 
     /**
-     * Is the generation of SMAP info for JSR45 debugging suppressed?
+     *  @return Is the generation of SMAP info for JSR45 debugging suppressed?
      */
     public boolean isSmapSuppressed();
 
     /**
-     * Indicates whether SMAP info for JSR45 debugging should be dumped to a
+     *  @return Indicates whether SMAP info for JSR45 debugging should be dumped to a
      * file.
      * Ignored is suppressSmap() is true
      */
     public boolean isSmapDumped();
 
     /**
-     * Should white spaces between directives or actions be trimmed?
+     *  @return Should white spaces between directives or actions be trimmed?
      */
     public boolean getTrimSpaces();
 
     /**
-     * Class ID for use in the plugin tag when the browser is IE. 
+     *  @return Class ID for use in the plugin tag when the browser is IE.
      */
     public String getIeClassId();
 
     /**
-     * What is my scratch dir?
+     *  @return What is my scratch dir?
      */
     public File getScratchDir();
 
     /**
-     * What classpath should I use while compiling the servlets
+     *  @return What classpath should I use while compiling the servlets
      * generated from JSP files?
      */
     public String getClassPath();
 
     /**
-     * Compiler to use.
+     *  @return Compiler to use.
      */
     public String getCompiler();
 
     /**
-     * The compiler target VM, e.g. 1.1, 1.2, 1.3, 1.4, or 1.5.
+     *  @return The compiler target VM, e.g. 1.1, 1.2, 1.3, 1.4, or 1.5.
      */
     public String getCompilerTargetVM();
 
     /**
-     * Compiler source VM, e.g. 1.3, 1.4, or 1.5.
+     * @return  Compiler source VM, e.g. 1.3, 1.4, or 1.5.
      */
     public String getCompilerSourceVM();   
 
     /**
-     * Java compiler class to use.
+     *  @return Java compiler class to use.
      */
     public String getCompilerClassName();   
 
@@ -143,43 +143,43 @@ public interface Options {
     public TldLocationsCache getTldLocationsCache();
 
     /**
-     * Java platform encoding to generate the JSP
+     *  @return Java platform encoding to generate the JSP
      * page servlet.
      */
     public String getJavaEncoding();
 
     /**
-     * boolean flag to tell Ant whether to fork JSP page compilations.
+     *  @return boolean flag to tell Ant whether to fork JSP page compilations.
      */
     public boolean getFork();
 
     /**
-     * Obtain JSP configuration informantion specified in web.xml.  
+     *  @return Obtain JSP configuration information specified in web.xml.
      */
     public JspConfig getJspConfig();
 
     /**
-     * Is generation of X-Powered-By response header enabled/disabled?
+     *  @return Is generation of X-Powered-By response header enabled/disabled?
      */
     public boolean isXpoweredBy();
 
     /**
-     * Obtain a Tag Plugin Manager
+     *  @return Obtain a Tag Plugin Manager
      */
     public TagPluginManager getTagPluginManager();
 
     /**
-     * Are Text strings to be generated as char arrays?
+     *  @return Are Text strings to be generated as char arrays?
      */
     public boolean genStringAsCharArray();
     
     /**
-     * Modification test interval.
+     *  @return  Modification test interval.
      */
     public int getModificationTestInterval();
     
     /**
-     * Is caching enabled (used for precompilation).
+     *  @return Is caching enabled (used for precompilation).
      */
     public boolean isCaching();
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/BeanRepository.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/BeanRepository.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/BeanRepository.java
index 67f97a0..6179e9b 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/BeanRepository.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/BeanRepository.java
@@ -35,11 +35,14 @@ public class BeanRepository {
 
     /**
      * Constructor.
+     *
+     * @param loader class loader
+     * @param err the error dispatcher
      */    
     public BeanRepository(ClassLoader loader, ErrorDispatcher err) {
         this.loader = loader;
         this.errDispatcher = err;
-        beanTypes = new HashMap<String, String>();
+        beanTypes = new HashMap<>();
     }
 
     public void addBean(Node.UseBean n, String s, String type, String scope)

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/Compiler.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/Compiler.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/Compiler.java
index fcd39b9..6e91dc2 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/Compiler.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/Compiler.java
@@ -76,6 +76,8 @@ public abstract class Compiler {
      * return null. Used in development mode for generating detailed error
      * messages. http://issues.apache.org/bugzilla/show_bug.cgi?id=37062.
      * </p>
+     *
+     * @return page nodes
      */
     public Node.Nodes getPageNodes() {
         return this.pageNodes;
@@ -86,6 +88,7 @@ public abstract class Compiler {
      * 
      * @return a smap for the current JSP page, if one is generated, null
      *         otherwise
+     * @throws Exception in case of any errors
      */
     protected String[] generateJava() throws Exception {
 
@@ -284,12 +287,20 @@ public abstract class Compiler {
 
     /**
      * Compile the servlet from .java file to .class file
+     *
+     * @param smap string array
+     * @throws FileNotFoundException is file was not found
+     * @throws JasperException in case of jasper errors
+     * @throws Exception in case of other errors
      */
     protected abstract void generateClass(String[] smap)
             throws FileNotFoundException, JasperException, Exception;
 
     /**
      * Compile the jsp file from the current engine context
+     * @throws FileNotFoundException is file was not found
+     * @throws JasperException in case of jasper errors
+     * @throws Exception in case of other errors
      */
     public void compile() throws FileNotFoundException, JasperException,
             Exception {
@@ -303,6 +314,9 @@ public abstract class Compiler {
      * @param compileClass
      *            If true, generate both .java and .class file If false,
      *            generate only .java file
+     * @throws FileNotFoundException is file was not found
+     * @throws JasperException in case of jasper errors
+     * @throws Exception in case of other errors
      */
     public void compile(boolean compileClass) throws FileNotFoundException,
             JasperException, Exception {
@@ -318,6 +332,9 @@ public abstract class Compiler {
      *            generate only .java file
      * @param jspcMode
      *            true if invoked from JspC, false otherwise
+     * @throws FileNotFoundException is file was not found
+     * @throws JasperException in case of jasper errors
+     * @throws Exception in case of other errors
      */
     public void compile(boolean compileClass, boolean jspcMode)
             throws FileNotFoundException, JasperException, Exception {
@@ -369,6 +386,8 @@ public abstract class Compiler {
     /**
      * This is a protected method intended to be overridden by subclasses of
      * Compiler. This is used by the compile method to do all the compilation.
+     *
+     * @return true if out dated
      */
     public boolean isOutDated() {
         return isOutDated(true);
@@ -377,12 +396,14 @@ public abstract class Compiler {
     /**
      * Determine if a compilation is necessary by checking the time stamp of the
      * JSP page with that of the corresponding .class or .java file. If the page
-     * has dependencies, the check is also extended to its dependeants, and so
-     * on. This method can by overidden by a subclasses of Compiler.
+     * has dependencies, the check is also extended to its dependants, and so
+     * on. This method can by overridden by a subclasses of Compiler.
      * 
      * @param checkClass
      *            If true, check against .class file, if false, check against
      *            .java file.
+     *
+     * @return true if out dated
      */
     public boolean isOutDated(boolean checkClass) {
 
@@ -455,9 +476,8 @@ public abstract class Compiler {
             return false;
         }
 
-        Iterator it = depends.iterator();
-        while (it.hasNext()) {
-            String include = (String) it.next();
+        for (Object depend : depends) {
+            String include = (String) depend;
             try {
                 URL includeUrl = ctxt.getResource(include);
                 if (includeUrl == null) {
@@ -468,7 +488,7 @@ public abstract class Compiler {
                 long includeLastModified = 0;
                 if (iuc instanceof JarURLConnection) {
                     includeLastModified =
-                        ((JarURLConnection) iuc).getJarEntry().getTime();
+                            ((JarURLConnection) iuc).getJarEntry().getTime();
                 } else {
                     includeLastModified = iuc.getLastModified();
                 }
@@ -487,14 +507,14 @@ public abstract class Compiler {
     }
 
     /**
-     * Gets the error dispatcher.
+     * @return  the error dispatcher.
      */
     public ErrorDispatcher getErrorDispatcher() {
         return errDispatcher;
     }
 
     /**
-     * Gets the info about the page under compilation
+     * @return  the info about the page under compilation
      */
     public PageInfo getPageInfo() {
         return pageInfo;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ELFunctionMapper.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ELFunctionMapper.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ELFunctionMapper.java
index 32fec66..f3fac02 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ELFunctionMapper.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ELFunctionMapper.java
@@ -40,6 +40,8 @@ public class ELFunctionMapper {
      *
      * @param compiler Current compiler, mainly for accessing error dispatcher.
      * @param page The current compilation unit.
+     *
+     * @throws JasperException in case of Jasper errors
      */
     public static void map(Compiler compiler, Node.Nodes page) 
                 throws JasperException {


[03/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/EncodingMap.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/EncodingMap.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/EncodingMap.java
index 20d3628..bcf5641 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/EncodingMap.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/EncodingMap.java
@@ -28,445 +28,447 @@ package org.apache.struts2.jasper.xmlparser;
 import java.util.Hashtable;
 
 /**
+ * <p>
  * EncodingMap is a convenience class which handles conversions between 
  * IANA encoding names and Java encoding names, and vice versa. The
  * encoding names used in XML instance documents <strong>must</strong>
  * be the IANA encoding names specified or one of the aliases for those names
  * which IANA defines.
- * <p>
- * <TABLE BORDER="0" WIDTH="100%">
+ * </p>
+ * 
+ * <TABLE summary="">
  *  <TR>
- *      <TD WIDTH="33%">
- *          <P ALIGN="CENTER"><B>Common Name</B>
+ *      <TD style="width: 33%;">
+ *          <P style="text-align: center;"><B>Common Name</B>
  *      </TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER"><B>Use this name in XML files</B>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;"><B>Use this name in XML files</B>
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER"><B>Name Type</B>
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;"><B>Name Type</B>
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER"><B>Xerces converts to this Java Encoder Name</B>
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;"><B>Xerces converts to this Java Encoder Name</B>
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">8 bit Unicode</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">UTF-8
+ *      <TD style="width: 33%;">8 bit Unicode</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">UTF-8
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">UTF8
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">UTF8
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin 1</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-1
+ *      <TD style="width: 33%;">ISO Latin 1</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-1
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-1
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-1
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin 2</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-2
+ *      <TD style="width: 33%;">ISO Latin 2</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-2
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-2
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-2
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin 3</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-3
+ *      <TD style="width: 33%;">ISO Latin 3</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-3
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-3
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-3
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin 4</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-4
+ *      <TD style="width: 33%;">ISO Latin 4</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-4
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-4
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-4
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin Cyrillic</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-5
+ *      <TD style="width: 33%;">ISO Latin Cyrillic</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-5
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-5
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-5
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin Arabic</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-6
+ *      <TD style="width: 33%;">ISO Latin Arabic</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-6
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-6
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-6
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin Greek</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-7
+ *      <TD style="width: 33%;">ISO Latin Greek</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-7
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-7
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-7
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin Hebrew</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-8
+ *      <TD style="width: 33%;">ISO Latin Hebrew</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-8
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-8
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-8
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">ISO Latin 5</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ISO-8859-9
+ *      <TD style="width: 33%;">ISO Latin 5</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ISO-8859-9
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">ISO-8859-9
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">ISO-8859-9
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: US</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-us
+ *      <TD style="width: 33%;">EBCDIC: US</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-us
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp037
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp037
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Canada</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-ca
+ *      <TD style="width: 33%;">EBCDIC: Canada</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-ca
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp037
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp037
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Netherlands</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-nl
+ *      <TD style="width: 33%;">EBCDIC: Netherlands</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-nl
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp037
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp037
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Denmark</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-dk
+ *      <TD style="width: 33%;">EBCDIC: Denmark</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-dk
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp277
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp277
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Norway</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-no
+ *      <TD style="width: 33%;">EBCDIC: Norway</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-no
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp277
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp277
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Finland</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-fi
+ *      <TD style="width: 33%;">EBCDIC: Finland</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-fi
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp278
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp278
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Sweden</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-se
+ *      <TD style="width: 33%;">EBCDIC: Sweden</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-se
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp278
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp278
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Italy</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-it
+ *      <TD style="width: 33%;">EBCDIC: Italy</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-it
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp280
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp280
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Spain, Latin America</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-es
+ *      <TD style="width: 33%;">EBCDIC: Spain, Latin America</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-es
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp284
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp284
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Great Britain</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-gb
+ *      <TD style="width: 33%;">EBCDIC: Great Britain</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-gb
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp285
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp285
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: France</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-fr
+ *      <TD style="width: 33%;">EBCDIC: France</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-fr
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp297
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp297
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Arabic</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-ar1
+ *      <TD style="width: 33%;">EBCDIC: Arabic</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-ar1
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp420
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp420
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Hebrew</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-he
+ *      <TD style="width: 33%;">EBCDIC: Hebrew</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-he
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp424
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp424
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Switzerland</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-ch
+ *      <TD style="width: 33%;">EBCDIC: Switzerland</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-ch
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp500
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp500
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Roece</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-roece
+ *      <TD style="width: 33%;">EBCDIC: Roece</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-roece
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp870
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp870
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Yugoslavia</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-yu
+ *      <TD style="width: 33%;">EBCDIC: Yugoslavia</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-yu
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp870
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp870
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Iceland</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-is
+ *      <TD style="width: 33%;">EBCDIC: Iceland</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-is
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp871
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp871
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">EBCDIC: Urdu</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">ebcdic-cp-ar2
+ *      <TD style="width: 33%;">EBCDIC: Urdu</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">ebcdic-cp-ar2
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">IANA
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">IANA
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">cp918
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">cp918
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Chinese for PRC, mixed 1/2 byte</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">gb2312
+ *      <TD style="width: 33%;">Chinese for PRC, mixed 1/2 byte</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">gb2312
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">GB2312
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">GB2312
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Extended Unix Code, packed for Japanese</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">euc-jp
+ *      <TD style="width: 33%;">Extended Unix Code, packed for Japanese</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">euc-jp
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">eucjis
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">eucjis
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Japanese: iso-2022-jp</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">iso-2020-jp
+ *      <TD style="width: 33%;">Japanese: iso-2022-jp</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">iso-2020-jp
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">JIS
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">JIS
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Japanese: Shift JIS</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">Shift_JIS
+ *      <TD style="width: 33%;">Japanese: Shift JIS</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">Shift_JIS
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">SJIS
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">SJIS
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Chinese: Big5</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">Big5
+ *      <TD style="width: 33%;">Chinese: Big5</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">Big5
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">Big5
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">Big5
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Extended Unix Code, packed for Korean</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">euc-kr
+ *      <TD style="width: 33%;">Extended Unix Code, packed for Korean</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">euc-kr
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">iso2022kr
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">iso2022kr
  *      </TD>
  *  </TR>
  *  <TR>
- *      <TD WIDTH="33%">Cyrillic</TD>
- *      <TD WIDTH="15%">
- *          <P ALIGN="CENTER">koi8-r
+ *      <TD style="width: 33%;">Cyrillic</TD>
+ *      <TD style="width: 15%;">
+ *          <P style="text-align: center;">koi8-r
  *      </TD>
- *      <TD WIDTH="12%">
- *          <P ALIGN="CENTER">MIME
+ *      <TD style="width: 12%;">
+ *          <P style="text-align: center;">MIME
  *      </TD>
- *      <TD WIDTH="31%">
- *          <P ALIGN="CENTER">koi8-r
+ *      <TD style="width: 31%;">
+ *          <P style="text-align: center;">koi8-r
  *      </TD>
  *  </TR>
  * </TABLE>
@@ -971,7 +973,7 @@ public class EncodingMap {
     } // putIANA2JavaMapping(String,String)
 
     /**
-     * Returns the Java encoding name for the specified IANA encoding name.
+     * @return  the Java encoding name for the specified IANA encoding name.
      * 
      * @param ianaEncoding The IANA encoding name.
      */
@@ -980,7 +982,7 @@ public class EncodingMap {
     } // getIANA2JavaMapping(String):String
 
     /**
-     * Removes an IANA to Java encoding name mapping.
+     * @return Removes an IANA to Java encoding name mapping.
      * 
      * @param ianaEncoding The IANA encoding name.
      */
@@ -1000,7 +1002,7 @@ public class EncodingMap {
     } // putJava2IANAMapping(String,String)
 
     /**
-     * Returns the IANA encoding name for the specified Java encoding name.
+     * @return  the IANA encoding name for the specified Java encoding name.
      * 
      * @param javaEncoding The Java encoding name.
      */
@@ -1009,7 +1011,7 @@ public class EncodingMap {
     } // getJava2IANAMapping(String):String
 
     /**
-     * Removes a Java to IANA encoding name mapping.
+     * @return  Removes a Java to IANA encoding name mapping.
      * 
      * @param javaEncoding The Java encoding name.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/ParserUtils.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/ParserUtils.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/ParserUtils.java
index d58ee79..633c334 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/ParserUtils.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/ParserUtils.java
@@ -76,8 +76,9 @@ public class ParserUtils {
      * @param uri URI of the XML document being parsed
      * @param is Input source containing the deployment descriptor
      *
-     * @exception JasperException if an input/output error occurs
-     * @exception JasperException if a parsing error occurs
+     * @return the tree node
+     *
+     * @throws  JasperException if an input/output error occurs or parsing error occurs
      */
     public TreeNode parseXMLDocument(String uri, InputSource is)
         throws JasperException {
@@ -124,8 +125,9 @@ public class ParserUtils {
      * @param uri URI of the XML document being parsed
      * @param is Input stream containing the deployment descriptor
      *
-     * @exception JasperException if an input/output error occurs
-     * @exception JasperException if a parsing error occurs
+     * @return the tree node
+     *
+     * @throws  JasperException if an input/output error occurs or parsing error occurs
      */
     public TreeNode parseXMLDocument(String uri, InputStream is)
             throws JasperException {
@@ -143,6 +145,8 @@ public class ParserUtils {
      *
      * @param parent The parent TreeNode (if any) for the new TreeNode
      * @param node The XML document Node to be converted
+     *
+     * @return the tree node
      */
     protected TreeNode convert(TreeNode parent, Node node) {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/SymbolTable.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/SymbolTable.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/SymbolTable.java
index 627745b..baa6021 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/SymbolTable.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/SymbolTable.java
@@ -26,13 +26,18 @@
 package org.apache.struts2.jasper.xmlparser;
 
 /**
+ * <p>
  * This class is a symbol table implementation that guarantees that
  * strings used as identifiers are unique references. Multiple calls
  * to <code>addSymbol</code> will always return the same string
  * reference.
+ * </p>
+ *
  * <p>
  * The symbol table performs the same task as <code>String.intern()</code>
  * with the following differences:
+ * </p>
+ *
  * <ul>
  *  <li>
  *   A new string object does not need to be created in order to
@@ -79,7 +84,9 @@ public class SymbolTable {
         this(TABLE_SIZE);
     }
 
-    /** Constructs a symbol table with a specified number of buckets. */
+    /** Constructs a symbol table with a specified number of buckets.
+     * @param tableSize the table size
+     */
     public SymbolTable(int tableSize) {
         fTableSize = tableSize;
         fBuckets = new Entry[fTableSize];
@@ -96,6 +103,7 @@ public class SymbolTable {
      * guarantee that symbol references remain unique.
      *
      * @param symbol The new symbol.
+     * @return reference to the unique symbol
      */
     public String addSymbol(String symbol) {
 
@@ -129,6 +137,7 @@ public class SymbolTable {
      * @param buffer The buffer containing the new symbol.
      * @param offset The offset into the buffer of the new symbol.
      * @param length The length of the new symbol in the buffer.
+     * @return reference to the unique symbol
      */
     public String addSymbol(char[] buffer, int offset, int length) {
 
@@ -153,7 +162,7 @@ public class SymbolTable {
     } // addSymbol(char[],int,int):String
 
     /**
-     * Returns a hashcode value for the specified symbol. The value
+     * @return a hashcode value for the specified symbol. The value
      * returned by this method must be identical to the value returned
      * by the <code>hash(char[],int,int)</code> method when called
      * with the character array that comprises the symbol string.
@@ -172,7 +181,7 @@ public class SymbolTable {
     } // hash(String):int
 
     /**
-     * Returns a hashcode value for the specified symbol information.
+     *  @return a hashcode value for the specified symbol information.
      * The value returned by this method must be identical to the value
      * returned by the <code>hash(String)</code> method when called
      * with the string object created from the symbol information.
@@ -193,7 +202,7 @@ public class SymbolTable {
     } // hash(char[],int,int):int
 
     /**
-     * Returns true if the symbol table already contains the specified
+     *  @return true if the symbol table already contains the specified
      * symbol.
      *
      * @param symbol The symbol to look for.
@@ -219,7 +228,7 @@ public class SymbolTable {
     } // containsSymbol(String):boolean
 
     /**
-     * Returns true if the symbol table already contains the specified
+     *  @return true if the symbol table already contains the specified
      * symbol.
      *
      * @param buffer The buffer containing the symbol to look for.
@@ -278,6 +287,9 @@ public class SymbolTable {
         /**
          * Constructs a new entry from the specified symbol and next entry
          * reference.
+         *
+         * @param symbol symbol
+         * @param next next entry
          */
         public Entry(String symbol, Entry next) {
             this.symbol = symbol.intern();
@@ -289,6 +301,11 @@ public class SymbolTable {
         /**
          * Constructs a new entry from the specified symbol information and
          * next entry reference.
+         *
+         * @param ch char array
+         * @param offset offset
+         * @param length length
+         * @param next next entry
          */
         public Entry(char[] ch, int offset, int length, Entry next) {
             characters = new char[length];

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/TreeNode.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/TreeNode.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/TreeNode.java
index 025adbb..965a18e 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/TreeNode.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/TreeNode.java
@@ -24,14 +24,18 @@ import java.util.Iterator;
 
 
 /**
+ * <p>
  * Simplified implementation of a Node from a Document Object Model (DOM)
  * parse of an XML document.  This class is used to represent a DOM tree
  * so that the XML parser's implementation of <code>org.w3c.dom</code> need
  * not be visible to the remainder of Jasper.
+ * </p>
+ *
  * <p>
  * <strong>WARNING</strong> - Construction of a new tree, or modifications
  * to an existing one, are not thread-safe and such accesses must be
  * synchronized.
+ * </p>
  *
  * @author Craig R. McClanahan
  * @version $Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (Tue, 24 Oct 2006) $
@@ -140,7 +144,7 @@ public class TreeNode {
 
 
     /**
-     * Return the value of the specified node attribute if it exists, or
+     * @return  the value of the specified node attribute if it exists, or
      * <code>null</code> otherwise.
      *
      * @param name Name of the requested attribute
@@ -156,7 +160,7 @@ public class TreeNode {
 
 
     /**
-     * Return an Iterator of the attribute names of this node.  If there are
+     * @return an Iterator of the attribute names of this node.  If there are
      * no attributes, an empty Iterator is returned.
      */
     public Iterator findAttributes() {
@@ -170,7 +174,7 @@ public class TreeNode {
 
 
     /**
-     * Return the first child node of this node with the specified name,
+     * @return the first child node of this node with the specified name,
      * if there is one; otherwise, return <code>null</code>.
      *
      * @param name Name of the desired child element
@@ -191,7 +195,7 @@ public class TreeNode {
 
 
     /**
-     * Return an Iterator of all children of this node.  If there are no
+     * @return an Iterator of all children of this node.  If there are no
      * children, an empty Iterator is returned.
      */
     public Iterator findChildren() {
@@ -205,7 +209,7 @@ public class TreeNode {
 
 
     /**
-     * Return an Iterator over all children of this node that have the
+     * @return an Iterator over all children of this node that have the
      * specified name.  If there are no such children, an empty Iterator
      * is returned.
      *
@@ -229,7 +233,7 @@ public class TreeNode {
 
 
     /**
-     * Return the body text associated with this node (if any).
+     * @return the body text associated with this node (if any).
      */
     public String getBody() {
 
@@ -239,7 +243,7 @@ public class TreeNode {
 
 
     /**
-     * Return the name of this node.
+     * @return the name of this node.
      */
     public String getName() {
 
@@ -287,7 +291,7 @@ public class TreeNode {
 
 
     /**
-     * Return a String representation of this TreeNode.
+     * @return a String representation of this TreeNode.
      */
     public String toString() {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLChar.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLChar.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLChar.java
index 1cb67ef..12464d5 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLChar.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLChar.java
@@ -28,10 +28,13 @@ package org.apache.struts2.jasper.xmlparser;
 import java.util.Arrays;
 
 /**
+ * <p>
  * This class defines the basic XML character properties. The data
  * in this class can be used to verify that a character is a valid
  * XML character or if the character is a space, name start, or name
  * character.
+ * </p>
+ *
  * <p>
  * A series of convenience methods are supplied to ease the burden
  * of the developer. Because inlining the checks can improve per
@@ -41,6 +44,7 @@ import java.util.Arrays;
  * <code>MASK_VALID</code>), yields the same results as calling the
  * convenience methods. There is one exception: check the comments
  * for the <code>isValid</code> method for details.
+ * </p>
  *
  * @author Glenn Marcy, IBM
  * @author Andy Clark, IBM
@@ -75,13 +79,16 @@ public class XMLChar {
     /** Pubid character mask. */
     public static final int MASK_PUBID = 0x10;
     
-    /** 
+    /**
+     * <p>
      * Content character mask. Special characters are those that can
      * be considered the start of markup, such as '&lt;' and '&amp;'. 
      * The various newline characters are considered special as well.
      * All other valid XML characters can be considered content.
+     * </p>
      * <p>
      * This is an optimization for the inner loop of character scanning.
+     * </p>
      */
     public static final int MASK_CONTENT = 0x20;
 
@@ -727,7 +734,7 @@ public class XMLChar {
     //
 
     /**
-     * Returns true if the specified character is a supplemental character.
+     * @return  true if the specified character is a supplemental character.
      *
      * @param c The character to check.
      */
@@ -736,7 +743,7 @@ public class XMLChar {
     }
 
     /**
-     * Returns true the supplemental character corresponding to the given
+     * @return  true the supplemental character corresponding to the given
      * surrogates.
      *
      * @param h The high surrogate.
@@ -747,7 +754,7 @@ public class XMLChar {
     }
 
     /**
-     * Returns the high surrogate of a supplemental character
+     * @return  the high surrogate of a supplemental character
      *
      * @param c The supplemental character to "split".
      */
@@ -756,7 +763,7 @@ public class XMLChar {
     }
 
     /**
-     * Returns the low surrogate of a supplemental character
+     * @return  the low surrogate of a supplemental character
      *
      * @param c The supplemental character to "split".
      */
@@ -765,7 +772,7 @@ public class XMLChar {
     }
 
     /**
-     * Returns whether the given character is a high surrogate
+     * @return  whether the given character is a high surrogate
      *
      * @param c The character to check.
      */
@@ -774,7 +781,7 @@ public class XMLChar {
     }
 
     /**
-     * Returns whether the given character is a low surrogate
+     * @return  whether the given character is a low surrogate
      *
      * @param c The character to check.
      */
@@ -784,7 +791,7 @@ public class XMLChar {
 
 
     /**
-     * Returns true if the specified character is valid. This method
+     * @return  true if the specified character is valid. This method
      * also checks the surrogate character range from 0x10000 to 0x10FFFF.
      * <p>
      * If the program chooses to apply the mask directly to the
@@ -799,7 +806,7 @@ public class XMLChar {
     } // isValid(int):boolean
 
     /**
-     * Returns true if the specified character is invalid.
+     * @return  true if the specified character is invalid.
      *
      * @param c The character to check.
      */
@@ -808,7 +815,7 @@ public class XMLChar {
     } // isInvalid(int):boolean
 
     /**
-     * Returns true if the specified character can be considered content.
+     * @return  true if the specified character can be considered content.
      *
      * @param c The character to check.
      */
@@ -818,7 +825,7 @@ public class XMLChar {
     } // isContent(int):boolean
 
     /**
-     * Returns true if the specified character can be considered markup.
+     * @return  true if the specified character can be considered markup.
      * Markup characters include '&lt;', '&amp;', and '%'.
      *
      * @param c The character to check.
@@ -828,7 +835,7 @@ public class XMLChar {
     } // isMarkup(int):boolean
 
     /**
-     * Returns true if the specified character is a space character
+     * @return  true if the specified character is a space character
      * as defined by production [3] in the XML 1.0 specification.
      *
      * @param c The character to check.
@@ -838,7 +845,7 @@ public class XMLChar {
     } // isSpace(int):boolean
 
     /**
-     * Returns true if the specified character is a valid name start
+     * @return  true if the specified character is a valid name start
      * character as defined by production [5] in the XML 1.0
      * specification.
      *
@@ -849,7 +856,7 @@ public class XMLChar {
     } // isNameStart(int):boolean
 
     /**
-     * Returns true if the specified character is a valid name
+     * @return  true if the specified character is a valid name
      * character as defined by production [4] in the XML 1.0
      * specification.
      *
@@ -860,7 +867,7 @@ public class XMLChar {
     } // isName(int):boolean
 
     /**
-     * Returns true if the specified character is a valid NCName start
+     * @return  true if the specified character is a valid NCName start
      * character as defined by production [4] in Namespaces in XML
      * recommendation.
      *
@@ -871,7 +878,7 @@ public class XMLChar {
     } // isNCNameStart(int):boolean
 
     /**
-     * Returns true if the specified character is a valid NCName
+     * @return  true if the specified character is a valid NCName
      * character as defined by production [5] in Namespaces in XML
      * recommendation.
      *
@@ -882,7 +889,7 @@ public class XMLChar {
     } // isNCName(int):boolean
 
     /**
-     * Returns true if the specified character is a valid Pubid
+     * @return  true if the specified character is a valid Pubid
      * character as defined by production [13] in the XML 1.0
      * specification.
      *
@@ -973,7 +980,7 @@ public class XMLChar {
     // encodings
 
     /**
-     * Returns true if the encoding name is a valid IANA encoding.
+     * @return  true if the encoding name is a valid IANA encoding.
      * This method does not verify that there is a decoder available
      * for this encoding, only that the characters are valid for an
      * IANA encoding name.
@@ -1002,7 +1009,7 @@ public class XMLChar {
     } // isValidIANAEncoding(String):boolean
 
     /**
-     * Returns true if the encoding name is a valid Java encoding.
+     * @return  true if the encoding name is a valid Java encoding.
      * This method does not verify that there is a decoder available
      * for this encoding, only that the characters are valid for an
      * Java encoding name.


[11/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/UrlRenderer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/UrlRenderer.java b/core/src/main/java/org/apache/struts2/components/UrlRenderer.java
index a9de852..389fb39 100644
--- a/core/src/main/java/org/apache/struts2/components/UrlRenderer.java
+++ b/core/src/main/java/org/apache/struts2/components/UrlRenderer.java
@@ -34,7 +34,7 @@ public interface UrlRenderer {
 	
 	/**
 	 * Preprocessing step
-	 * @param provider
+	 * @param provider The {@link UrlProvider} component that "owns" this renderer.
 	 */
 	void beforeRenderUrl(UrlProvider provider);
 	

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index 52b76ab..f161b24 100644
--- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@ -84,7 +84,7 @@ import java.util.StringTokenizer;
  * The following is a list of the allowed extension points:
  *
  * <!-- START SNIPPET: extensionPoints -->
- * <table border="1">
+ * <table border="1" summary="">
  *   <tr>
  *     <th>Type</th>
  *     <th>Property</th>
@@ -289,7 +289,7 @@ import java.util.StringTokenizer;
  *     <td>com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td>
  *     <td>struts.converter.file.processor</td>
  *     <td>singleton</td>
- *     <td>Process <class>-conversion.properties file create converters</class></td>
+ *     <td>Process &lt;class&gt;-conversion.properties file create converters&lt;/class&gt;</td>
  *   </tr>
  *   <tr>
  *     <td>com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td>
@@ -337,19 +337,22 @@ import java.util.StringTokenizer;
  * </table>
  *
  * <!-- END SNIPPET: extensionPoints -->
- * </p>
+ *
  * <p>
  * Implementations are selected using the value of its associated property.  That property is
  * used to determine the implementation by:
  * </p>
+ *
  * <ol>
  *   <li>Trying to find an existing bean by that name in the container</li>
  *   <li>Trying to find a class by that name, then creating a new bean factory for it</li>
  *   <li>Creating a new delegation bean factory that delegates to the configured ObjectFactory at runtime</li>
  * </ol>
+ *
  * <p>
  * Finally, this class overrides certain properties if dev mode is enabled:
  * </p>
+ *
  * <ul>
  *   <li><code>struts.i18n.reload = true</code></li>
  *   <li><code>struts.configuration.xml.reload = true</code></li>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/config/PropertiesConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/config/PropertiesConfigurationProvider.java b/core/src/main/java/org/apache/struts2/config/PropertiesConfigurationProvider.java
index 7a42232..a0e1928 100644
--- a/core/src/main/java/org/apache/struts2/config/PropertiesConfigurationProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/PropertiesConfigurationProvider.java
@@ -50,8 +50,8 @@ public class PropertiesConfigurationProvider implements ConfigurationProvider {
     }
 
     /**
-     * @param props
-     * @param settings
+     * @param props properties
+     * @param settings settings
      */
     protected void loadSettings(LocatableProperties props, final Settings settings) {
         for (Iterator i = settings.list(); i.hasNext(); ) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java b/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
index d072834..9fe3858 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/DefaultStaticContentLoader.java
@@ -274,7 +274,7 @@ public class DefaultStaticContentLoader implements StaticContentLoader {
      * @param name resource name
      * @param packagePrefix The package prefix to use to locate the resource
      * @return full path
-     * @throws UnsupportedEncodingException
+     * @throws UnsupportedEncodingException If there is a encoding problem
      */
     protected String buildPath(String name, String packagePrefix) throws UnsupportedEncodingException {
         String resourcePath;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index b56db9c..93d38a4 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -761,12 +761,16 @@ public class Dispatcher {
     }
 
     /**
+     * <p>
      * Wrap and return the given request or return the original request object.
      * </p>
+     *
+     * <p>
      * This method transparently handles multipart data as a wrapped class around the given request.
      * Override this method to handle multipart requests in a special way or to handle other types of requests.
      * Note, {@link org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper} is
      * flexible - look first to that object before overriding this method to handle multipart data.
+     * </p>
      *
      * @param request the HttpServletRequest object.
      * @return a wrapped request or original request.
@@ -797,7 +801,7 @@ public class Dispatcher {
      * On each request it must return a new instance as implementation could be not thread safe
      * and thus ensure of resource clean up
      *
-     * @return
+     * @return a multi part request object
      */
     protected MultiPartRequest getMultiPartRequest() {
         MultiPartRequest mpr = null;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/ExecuteOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ExecuteOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/ExecuteOperations.java
index 43f00f4..b7d26eb 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ExecuteOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ExecuteOperations.java
@@ -41,9 +41,12 @@ public class ExecuteOperations {
 
     /**
      * Tries to execute a request for a static resource
+     *
+     * @param request servlet request
+     * @param response servlet response
      * @return True if it was handled, false if the filter should fall through
-     * @throws IOException
-     * @throws ServletException
+     * @throws IOException on any io error
+     * @throws ServletException on any servlet related error
      */
     public boolean executeStaticResourceRequest(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
         // there is no action in this request, should we look for a static resource?
@@ -67,7 +70,12 @@ public class ExecuteOperations {
 
     /**
      * Executes an action
-     * @throws ServletException
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @param mapping action mapping
+     *
+     * @throws ServletException  on any servlet related error
      */
     public void executeAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {
         dispatcher.serviceAction(request, response, mapping);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/InitOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/InitOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/InitOperations.java
index da0f163..1b13cfc 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/InitOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/InitOperations.java
@@ -39,6 +39,7 @@ public class InitOperations {
     /**
      * Initializes the internal Struts logging
      *
+     * @param filterConfig host configuration
      * @deprecated since 2.5
      */
     @Deprecated
@@ -64,6 +65,10 @@ public class InitOperations {
 
     /**
      * Creates and initializes the dispatcher
+     *
+     * @param filterConfig host configuration
+     *
+     * @return the dispatcher
      */
     public Dispatcher initDispatcher( HostConfig filterConfig ) {
         Dispatcher dispatcher = createDispatcher(filterConfig);
@@ -73,6 +78,10 @@ public class InitOperations {
 
     /**
      * Initializes the static content loader with the filter configuration
+     *
+     * @param filterConfig host configuration
+     * @param dispatcher the dispatcher
+     * @return the static content loader
      */
     public StaticContentLoader initStaticContentLoader( HostConfig filterConfig, Dispatcher dispatcher ) {
         StaticContentLoader loader = dispatcher.getContainer().getInstance(StaticContentLoader.class);
@@ -95,6 +104,10 @@ public class InitOperations {
 
     /**
      * Create a {@link Dispatcher}
+     *
+     * @param filterConfig host configuration
+     *
+     * @return The dispatcher on the thread.
      */
     private Dispatcher createDispatcher( HostConfig filterConfig ) {
         Map<String, String> params = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/PrepareOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/PrepareOperations.java b/core/src/main/java/org/apache/struts2/dispatcher/PrepareOperations.java
index ab6861f..547997b 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/PrepareOperations.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/PrepareOperations.java
@@ -61,6 +61,11 @@ public class PrepareOperations {
 
     /**
      * Creates the action context and initializes the thread local
+     *
+     * @param request servlet request
+     * @param response servlet response
+     *
+     * @return the action context
      */
     public ActionContext createActionContext(HttpServletRequest request, HttpServletResponse response) {
         ActionContext ctx;
@@ -86,6 +91,8 @@ public class PrepareOperations {
 
     /**
      * Cleans up a request of thread locals
+     *
+     * @param request servlet request
      */
     public void cleanupRequest(HttpServletRequest request) {
         Integer counterVal = (Integer) request.getAttribute(CLEANUP_RECURSION_COUNTER);
@@ -116,6 +123,9 @@ public class PrepareOperations {
 
     /**
      * Sets the request encoding and locale on the response
+     *
+     * @param request servlet request
+     * @param response servlet response
      */
     public void setEncodingAndLocale(HttpServletRequest request, HttpServletResponse response) {
         dispatcher.prepare(request, response);
@@ -123,8 +133,11 @@ public class PrepareOperations {
 
     /**
      * Wraps the request with the Struts wrapper that handles multipart requests better
+     *
+     * @param oldRequest servlet request
+     *
      * @return The new request, if there is one
-     * @throws ServletException
+     * @throws ServletException on any servlet related error
      */
     public HttpServletRequest wrapRequest(HttpServletRequest oldRequest) throws ServletException {
         HttpServletRequest request = oldRequest;
@@ -139,9 +152,14 @@ public class PrepareOperations {
     }
 
     /**
-     *   Finds and optionally creates an {@link ActionMapping}.  It first looks in the current request to see if one
+     * Finds and optionally creates an {@link ActionMapping}.  It first looks in the current request to see if one
      * has already been found, otherwise, it creates it and stores it in the request.  No mapping will be created in the
      * case of static resource requests or unidentifiable requests for other servlets, for example.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     *
+     * @return the action mapping
      */
     public ActionMapping findActionMapping(HttpServletRequest request, HttpServletResponse response) {
         return findActionMapping(request, response, false);
@@ -153,6 +171,11 @@ public class PrepareOperations {
      * case of static resource requests or unidentifiable requests for other servlets, for example.
      * @param forceLookup if true, the action mapping will be looked up from the ActionMapper instance, ignoring if there is one
      * in the request or not 
+     *
+     * @param request servlet request
+     * @param response servlet response
+     *
+     * @return the action mapping
      */
     public ActionMapping findActionMapping(HttpServletRequest request, HttpServletResponse response, boolean forceLookup) {
         ActionMapping mapping = (ActionMapping) request.getAttribute(STRUTS_ACTION_MAPPING_KEY);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter.java b/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter.java
index c728e19..8842f12 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter.java
@@ -72,6 +72,9 @@ public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter {
 
     /**
      * Callback for post initialization
+     *
+     * @param dispatcher the dispatcher
+     * @param filterConfig the filter config
      */
     protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) {
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareFilter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareFilter.java b/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareFilter.java
index 8331c6a..2cfe7f2 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareFilter.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/filter/StrutsPrepareFilter.java
@@ -69,6 +69,9 @@ public class StrutsPrepareFilter implements StrutsStatics, Filter {
 
     /**
      * Callback for post initialization
+     *
+     * @param dispatcher the dispatcher
+     * @param filterConfig the filter config
      */
     protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) {
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index 4933765..95ab0d5 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -319,6 +319,7 @@ public class DefaultActionMapper implements ActionMapper {
      *
      * @param uri     The uri
      * @param mapping The action mapping to populate
+     * @param configManager configuration manager
      */
     protected void parseNameAndNamespace(String uri, ActionMapping mapping, ConfigurationManager configManager) {
         String namespace, name;
@@ -428,7 +429,7 @@ public class DefaultActionMapper implements ActionMapper {
     }
 
     /**
-     * Returns null if no extension is specified.
+     * @return  null if no extension is specified.
      */
     protected String getDefaultExtension() {
         if (extensions == null) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
index 2f92340..6727f3e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java
@@ -71,9 +71,7 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     private Locale defaultLocale = Locale.ENGLISH;
 
     /**
-     * Injects the Struts multiple part maximum size.
-     *
-     * @param maxSize
+     * @param maxSize Injects the Struts multiple part maximum size.
      */
     @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE)
     public void setMaxSize(String maxSize) {
@@ -81,9 +79,7 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     }
 
     /**
-     * Sets the buffer size to be used.
-     *
-     * @param bufferSize
+     * @param bufferSize Sets the buffer size to be used.
      */
     @Inject(value = StrutsConstants.STRUTS_MULTIPART_BUFFERSIZE, required = false)
     public void setBufferSize(String bufferSize) {
@@ -91,9 +87,7 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     }
 
     /**
-     * Injects the Struts locale provider.
-     *
-     * @param provider
+     * @param provider Injects the Struts locale provider.
      */
     @Inject
     public void setLocaleProvider(LocaleProvider provider) {
@@ -143,7 +137,7 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Allows interceptor to fetch non-critical messages that can be passed to the action.
      *
-     * @return
+     * @return list of string messages
      */
     public List<String> getMesssages() {
         return messages;
@@ -253,10 +247,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     }
 
     /**
-     * Inspect the servlet request and set the locale if one wasn't provided by
+      * @param request Inspect the servlet request and set the locale if one wasn't provided by
      * the Struts2 framework.
-     *
-     * @param request
      */
     protected void setLocale(HttpServletRequest request) {
         if (defaultLocale == null) {
@@ -267,8 +259,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Processes the upload.
      *
-     * @param request
-     * @param saveDir
+     * @param request the servlet request
+     * @param saveDir location of the save dir
      * @throws Exception
      */
     private void processUpload(HttpServletRequest request, String saveDir) throws Exception {
@@ -321,8 +313,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Defines whether the request allowed based on content length.
      *
-     * @param request
-     * @return
+     * @param request the servlet request
+     * @return true if request size is permitted
      */
     private boolean isRequestSizePermitted(HttpServletRequest request) {
         // if maxSize is specified as -1, there is no sanity check and it's
@@ -336,10 +328,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     }
 
     /**
-     * Get the request content length.
-     *
-     * @param request
-     * @return
+     * @param request the servlet request
+     * @return the request content length.
      */
     private long getRequestSize(HttpServletRequest request) {
         long requestSize = 0;
@@ -353,8 +343,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Add a file skipped message notification for action messages.
      *
-     * @param fileName
-     * @param request
+     * @param fileName file name
+     * @param request the servlet request
      */
     private void addFileSkippedError(String fileName, HttpServletRequest request) {
         String exceptionMessage = "Skipped file " + fileName + "; request size limit exceeded.";
@@ -368,7 +358,7 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Processes the FileItemStream as a Form Field.
      *
-     * @param itemStream
+     * @param itemStream file item stream
      */
     private void processFileItemStreamAsFormField(FileItemStream itemStream) {
         String fieldName = itemStream.getFieldName();
@@ -390,8 +380,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Processes the FileItemStream as a file field.
      *
-     * @param itemStream
-     * @param location
+     * @param itemStream file item stream
+     * @param location location
      */
     private void processFileItemStreamAsFileField(FileItemStream itemStream, String location) {
         File file = null;
@@ -416,10 +406,10 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Creates a temporary file based on the given filename and location.
      *
-     * @param fileName
-     * @param location
-     * @return
-     * @throws IOException
+     * @param fileName file name
+     * @param location location
+     * @return temporary file based on the given filename and location
+     * @throws IOException in case of IO errors
      */
     private File createTemporaryFile(String fileName, String location) throws IOException {
         String name = fileName
@@ -442,10 +432,10 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Streams the file upload stream to the specified file.
      *
-     * @param itemStream
-     * @param file
-     * @return
-     * @throws IOException
+     * @param itemStream file item stream
+     * @param file the file
+     * @return true if stream was successfully
+     * @throws IOException in case of IO errors
      */
     private boolean streamFileToDisk(FileItemStream itemStream, File file) throws IOException {
         boolean result = false;
@@ -466,8 +456,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
      * to the <code>FileUploadInterceptor</code> during the interceptor stack
      * invocation process.
      *
-     * @param itemStream
-     * @param file
+     * @param itemStream file item stream
+     * @param file the file
      */
     private void createFileInfoFromItemStream(FileItemStream itemStream, File file) {
         // gather attributes from file upload stream.
@@ -486,10 +476,8 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     }
 
     /**
-     * Get the canonical name based on the supplied filename.
-     *
-     * @param fileName
-     * @return
+     * @param fileName file name
+     * @return the canonical name based on the supplied filename
      */
     private String getCanonicalName(String fileName) {
         int forwardSlash = fileName.lastIndexOf("/");
@@ -505,9 +493,9 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Build error message.
      *
-     * @param e
-     * @param args
-     * @return
+     * @param e the Throwable/Exception
+     * @param args arguments
+     * @return error message
      */
     private String buildErrorMessage(Throwable e, Object[] args) {
         String errorKey = "struts.message.upload.error." + e.getClass().getSimpleName();
@@ -518,9 +506,9 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
     /**
      * Build action message.
      *
-     * @param e
-     * @param args
-     * @return
+     * @param e the Throwable/Exception
+     * @param args arguments
+     * @return action message
      */
     private String buildMessage(Throwable e, Object[] args) {
         String messageKey = "struts.message.upload.message." + e.getClass().getSimpleName();
@@ -532,7 +520,6 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
      * Internal data structure used to store a reference to information needed
      * to later pass post processing data to the <code>FileUploadInterceptor</code>.
      *
-     * @version $Revision$
      * @since 7.0.0
      */
     private static class FileInfo implements Serializable {
@@ -546,9 +533,9 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
         /**
          * Default constructor.
          *
-         * @param file
-         * @param contentType
-         * @param originalName
+         * @param file the file
+         * @param contentType content type
+         * @param originalName original file name
          */
         public FileInfo(File file, String contentType, String originalName) {
             this.file = file;
@@ -557,21 +544,21 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest {
         }
 
         /**
-         * @return
+         * @return the file
          */
         public File getFile() {
             return file;
         }
 
         /**
-         * @return
+         * @return content type
          */
         public String getContentType() {
             return contentType;
         }
 
         /**
-         * @return
+         * @return original file name
          */
         public String getOriginalName() {
             return originalName;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java
index 64dfccb..52e415e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequest.java
@@ -29,8 +29,7 @@ import java.util.List;
 
 
 /**
- * Abstract wrapper class HTTP requests to handle multi-part data. <p>
- *
+ * <p>Abstract wrapper class HTTP requests to handle multi-part data. </p>
  */
 public interface MultiPartRequest {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
index c74bf63..160664b 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/MultiPartRequestWrapper.java
@@ -70,7 +70,8 @@ public class MultiPartRequestWrapper extends StrutsRequestWrapper {
      * @param multiPartRequest Our MultiPartRequest object
      * @param request Our HttpServletRequest object
      * @param saveDir Target directory for any files that we save
-     * @param provider
+     * @param provider locale provider
+     * @param disableRequestAttributeValueStackLookup disable the request attribute value stack lookup
      */
     public MultiPartRequestWrapper(MultiPartRequest multiPartRequest, HttpServletRequest request,
                                    String saveDir, LocaleProvider provider,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
index 771ed63..d7f4e04 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -201,10 +201,8 @@ public class CookieInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Set the <code>cookiesName</code> which if matched will allow the cookie
+     * @param cookiesName the <code>cookiesName</code> which if matched will allow the cookie
      * to be injected into action, could be comma-separated string.
-     *
-     * @param cookiesName
      */
     public void setCookiesName(String cookiesName) {
         if (cookiesName != null) {
@@ -213,11 +211,9 @@ public class CookieInterceptor extends AbstractInterceptor {
     }
 
     /**
-     * Set the <code>cookiesValue</code> which if matched (together with matching
+     * @param cookiesValue the <code>cookiesValue</code> which if matched (together with matching
      * cookiesName) will caused the cookie to be injected into action, could be
      * comma-separated string.
-     *
-     * @param cookiesValue
      */
     public void setCookiesValue(String cookiesValue) {
         if (cookiesValue != null) {
@@ -332,10 +328,10 @@ public class CookieInterceptor extends AbstractInterceptor {
      * Hook that populate cookie value into value stack (hence the action)
      * if the criteria is satisfied (if the cookie value matches with those configured).
      *
-     * @param cookieName
-     * @param cookieValue
-     * @param cookiesMap
-     * @param stack
+     * @param cookieName cookie name
+     * @param cookieValue cookie value
+     * @param cookiesMap map of cookies
+     * @param stack value stack
      */
     protected void populateCookieValueIntoStack(String cookieName, String cookieValue, Map<String, String> cookiesMap, ValueStack stack) {
         if (cookiesValueSet.isEmpty() || cookiesValueSet.contains("*")) {
@@ -368,8 +364,8 @@ public class CookieInterceptor extends AbstractInterceptor {
      * Hook that set the <code>cookiesMap</code> into action that implements
      * {@link CookiesAware}.
      *
-     * @param action
-     * @param cookiesMap
+     * @param action action object
+     * @param cookiesMap map of cookies
      */
     protected void injectIntoCookiesAwareAction(Object action, Map<String, String> cookiesMap) {
         if (action instanceof CookiesAware) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
index 5add14a..824bd25 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
@@ -73,7 +73,7 @@ import java.util.Map;
  * server wait before the wait page is shown to the user. During the wait this interceptor will wake every 100 millis
  * to check if the background process is done premature, thus if the job for some reason doesn't take to long the wait
  * page is not shown to the user.
- * <br/> This is useful for e.g. search actions that have a wide span of execution time. Using a delay time of 2000
+ * <br> This is useful for e.g. search actions that have a wide span of execution time. Using a delay time of 2000
  * millis we ensure the user is presented fast search results immediately and for the slow results a wait page is used.
  * </p>
  *
@@ -131,7 +131,7 @@ import java.util.Map;
  *   &lt;/head&gt;
  *   &lt;body&gt;
  *     Please wait while we process your request.
- *     Click &lt;a href="&lt;s:url includeParams="all" /&gt;">&lt;/a&gt; if this page does not reload automatically.
+ *     Click &lt;a href="&lt;s:url includeParams="all" /&gt;"&gt;&lt;/a&gt; if this page does not reload automatically.
  *   &lt;/body&gt;
  * &lt;/html&gt;
  * </pre>
@@ -218,6 +218,8 @@ public class ExecuteAndWaitInterceptor extends MethodFilterInterceptor {
      * Returns the name to associate the background process.  Override to change the way background processes
      * are mapped to requests.
      *
+     * @param proxy action proxy
+     *
      * @return the name of the background thread
      */
     protected String getBackgroundProcessName(ActionProxy proxy) {
@@ -319,7 +321,7 @@ public class ExecuteAndWaitInterceptor extends MethodFilterInterceptor {
      * <p>
      * When this interceptor is executed for the first time this methods handles any provided initial delay.
      * An initial delay is a time in milliseconds we let the server wait before we continue.
-     * <br/> During the wait this interceptor will wake every 100 millis to check if the background
+     * <br> During the wait this interceptor will wake every 100 millis to check if the background
      * process is done premature, thus if the job for some reason doesn't take to long the wait
      * page is not shown to the user.
      * </p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
index 644203a..15bbabe 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
@@ -57,7 +57,7 @@ import java.util.*;
  *
  * <p>You can get access to these files by merely providing setters in your action that correspond to any of the three
  * patterns above, such as setDocument(File document), setDocumentContentType(String contentType), etc.
- * <br/>See the example code section.
+ * <br>See the example code section.
  * </p>
  *
  * <p> This interceptor will add several field errors, assuming that the action implements {@link ValidationAware}.
@@ -322,6 +322,7 @@ public class FileUploadInterceptor extends AbstractInterceptor {
      *
      * @param action      - uploading action for message retrieval.
      * @param file        - proposed upload file.
+     * @param filename    - name of the file.
      * @param contentType - contentType of the file.
      * @param inputName   - inputName of the file.
      * @param validation  - Non-null ValidationAware if the action implements ValidationAware, allowing for better

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
index a3f83db..ee78563 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/MessageStoreInterceptor.java
@@ -126,10 +126,10 @@ import java.util.Map;
  *
  * &lt;action name="submitApplication" ....&gt;
  *    &lt;interceptor-ref name="store"&gt;
- *      &lt;param name="operationMode">STORE&lt;/param&gt;
+ *      &lt;param name="operationMode"&gt;aSTORE&lt;/param&gt;
  *    &lt;/interceptor-ref&gt;
  *    &lt;interceptor-ref name="defaultStack" /&gt;
- *    &lt;result name="input" type="redirect">applicationFailed.action&lt;/result&gt;
+ *    &lt;result name="input" type="redirect"&gt;aapplicationFailed.action&lt;/result&gt;
  *    &lt;result type="dispatcher"&gt;applicationSuccess.jsp&lt;/result&gt;
  * &lt;/action&gt;
  *
@@ -208,8 +208,8 @@ public class MessageStoreInterceptor extends AbstractInterceptor {
      * Handle the retrieving of field errors / action messages / field errors, which is
      * done before action invocation, and the <code>operationMode</code> is 'RETRIEVE'.
      *
-     * @param invocation
-     * @throws Exception
+     * @param invocation the action invocation
+     * @throws Exception in case of any error
      */
     protected void before(ActionInvocation invocation) throws Exception {
         String reqOperationMode = getRequestOperationMode(invocation);
@@ -261,9 +261,9 @@ public class MessageStoreInterceptor extends AbstractInterceptor {
      * Handle the storing of field errors / action messages / field errors, which is
      * done after action invocation, and the <code>operationMode</code> is in 'STORE'.
      *
-     * @param invocation
-     * @param result
-     * @throws Exception
+     * @param invocation the action invocation
+     * @param result the result
+     * @throws Exception in case of any error
      */
     protected void after(ActionInvocation invocation, String result) throws Exception {
 
@@ -297,11 +297,12 @@ public class MessageStoreInterceptor extends AbstractInterceptor {
 
 
     /**
-     * Get the operationMode through request paramter, if <code>allowRequestParameterSwitch</code>
+     * Get the operationMode through request parameter, if <code>allowRequestParameterSwitch</code>
      * is 'true', else it simply returns 'NONE', meaning its neither in the 'STORE_MODE' nor
      * 'RETRIEVE_MODE'.
      *
-     * @return String
+     * @param invocation the action invocation
+     * @return the request operation mode
      */
     protected String getRequestOperationMode(ActionInvocation invocation) {
         String reqOperationMode = NONE;
@@ -322,9 +323,9 @@ public class MessageStoreInterceptor extends AbstractInterceptor {
      * Merge <code>col1</code> and <code>col2</code> and return the composite
      * <code>Collection</code>.
      *
-     * @param col1
-     * @param col2
-     * @return Collection
+     * @param col1 first collection
+     * @param col2 second collection
+     * @return the merged collection
      */
     protected Collection mergeCollection(Collection col1, Collection col2) {
         Collection _col1 = (col1 == null ? new ArrayList() : col1);
@@ -337,9 +338,9 @@ public class MessageStoreInterceptor extends AbstractInterceptor {
      * Merge <code>map1</code> and <code>map2</code> and return the composite
      * <code>Map</code>
      *
-     * @param map1
-     * @param map2
-     * @return Map
+     * @param map1 first map
+     * @param map2 second map
+     * @return the merged map
      */
     protected Map mergeMap(Map map1, Map map2) {
         Map _map1 = (map1 == null ? new LinkedHashMap() : map1);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
index 6518b7c..9bb0c16 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/RolesInterceptor.java
@@ -55,8 +55,8 @@ import java.util.List;
  * <p>
  * When both allowedRoles and disallowedRoles are configured, then disallowedRoles
  * takes precedence, applying the following logic: 
- *  (if ((inRole(role1) || inRole(role2) || ... inRole(roleN)) && 
- *       !inRole(roleA) && !inRole(roleB) && ... !inRole(roleZ))
+ *  (if ((inRole(role1) || inRole(role2) || ... inRole(roleN)) &amp;&amp;
+ *       !inRole(roleA) &amp;&amp; !inRole(roleB) &amp;&amp; ... !inRole(roleZ))
  *  { //permit ...
  * </p>
  * <!-- END SNIPPET: parameters -->
@@ -71,7 +71,7 @@ import java.util.List;
  *       the passed action execution with this request</li>
  *   <li>handleRejection(ActionInvocation) - handles an unauthorized
  *       request.</li>
- *   <li>areRolesValid(List<String> roles) - allows subclasses to lookup roles
+ *   <li>areRolesValid(List&lt;String&gt; roles) - allows subclasses to lookup roles
  *   to ensure they are valid.  If not valid, RolesInterceptor will log the error and 
  *   cease to function.  This helps prevent security misconfiguration flaws.
  *   
@@ -135,6 +135,8 @@ public class RolesInterceptor extends AbstractInterceptor {
 
     /**
      * Splits a string into a List
+     * @param val the string to split
+     * @return the string list
      */
     protected List<String> stringToList(String val) {
         if (val != null) {
@@ -179,8 +181,9 @@ public class RolesInterceptor extends AbstractInterceptor {
      * Handles a rejection by sending a 403 HTTP error
      *
      * @param invocation The invocation
+     * @param response the servlet response object
      * @return The result code
-     * @throws Exception
+     * @throws Exception in case of any error
      */
     protected String handleRejection(ActionInvocation invocation, HttpServletResponse response) throws Exception {
         response.sendError(HttpServletResponse.SC_FORBIDDEN);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
index 4ce9c15..fff296b 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
@@ -77,7 +77,7 @@ import java.util.Map;
  *
  * <li>application - a list of action properties to be bound to application scope</li>
  *
- * <li>key - a session/application attribute key prefix, can contain following values:</li>
+ * <li>key - a session/application attribute key prefix, can contain following values:
  *
  * <ul>
  *
@@ -88,8 +88,8 @@ import java.util.Map;
  * <li>any other value is taken literally as key prefix</li>
  *
  * </ul>
- *
- * <li>type - with one of the following</li>
+ * </li>
+ * <li>type - with one of the following
  *
  * <ul>
  *
@@ -101,6 +101,7 @@ import java.util.Map;
  * <li>any other value throws IllegalArgumentException</li>
  *
  * </ul>
+ * </li>
  *
  * <li>sessionReset - name of a parameter (defaults to 'session.reset') which if set, causes all session values to be reset to action's default values or application
  * scope values, note that it is similar to type="start" and in fact it does the same, but in our team it is sometimes

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/TokenInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/TokenInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/TokenInterceptor.java
index 7854213..86a3efd 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/TokenInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/TokenInterceptor.java
@@ -184,6 +184,7 @@ public class TokenInterceptor extends MethodFilterInterceptor {
      * interesting.
      *
      * @param invocation the action invocation
+     * @return invocation result
      * @throws Exception when any unexpected error occurs.
      */
     protected String handleValidToken(ActionInvocation invocation) throws Exception {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
index 6eed280..296d410 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/debugging/DebuggingInterceptor.java
@@ -68,9 +68,9 @@ import java.util.*;
  * <li> <code>command</code> - Tests an OGNL expression and returns the
  * string result. Only used by the OGNL console.</li>
  * <li><code>browser</code> Shows field values of an object specified in the 
- * <code>object<code> parameter (#context by default). When the <code>object<code>
+ * <code>object</code> parameter (#context by default). When the <code>object</code>
  * parameters is set, the '#' character needs to be escaped to '%23'. Like
- * debug=browser&object=%23parameters</li>
+ * debug=browser&amp;object=%23parameters</li>
  * </ul>
  * <!-- END SNIPPET: parameters -->
  * <p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/PostbackResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/PostbackResult.java b/core/src/main/java/org/apache/struts2/result/PostbackResult.java
index 95b3927..dbb0c0e 100644
--- a/core/src/main/java/org/apache/struts2/result/PostbackResult.java
+++ b/core/src/main/java/org/apache/struts2/result/PostbackResult.java
@@ -174,8 +174,7 @@ public class PostbackResult extends StrutsResultSupport {
     /**
      * Stores the option to cache the rendered intermediate page. The default
      * is {@code true}.
-     *
-     * @return {@code true} to cache; otherwise {@code false}
+     * @param cache enable/disable cache
      */
     public final void setCache(boolean cache) {
         this.cache = cache;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/ServletActionRedirectResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/ServletActionRedirectResult.java b/core/src/main/java/org/apache/struts2/result/ServletActionRedirectResult.java
index 2d12606..798e809 100644
--- a/core/src/main/java/org/apache/struts2/result/ServletActionRedirectResult.java
+++ b/core/src/main/java/org/apache/struts2/result/ServletActionRedirectResult.java
@@ -31,9 +31,9 @@ import java.util.List;
 
 /**
  * <!-- START SNIPPET: description -->
- *
+ * <p>
  * This result uses the {@link ActionMapper} provided by the
- * {@link ActionMapperFactory} to redirect the browser to a URL that invokes the
+ * ActionMapperFactory to redirect the browser to a URL that invokes the
  * specified action and (optional) namespace. This is better than the
  * {@link ServletRedirectResult} because it does not require you to encode the
  * URL patterns processed by the {@link ActionMapper} in to your struts.xml
@@ -41,39 +41,37 @@ import java.util.List;
  * and your application will still work. It is strongly recommended that if you
  * are redirecting to another action, you use this result rather than the
  * standard redirect result.
+ * </p>
  *
+ * <p>
  * See examples below for an example of how request parameters could be passed
  * in.
- *
+ * </p>
  * <!-- END SNIPPET: description -->
- *
+ * <p>
  * <b>This result type takes the following parameters:</b>
- *
+ * </p>
  * <!-- START SNIPPET: params -->
  *
  * <ul>
- *
  * <li><b>actionName (default)</b> - The name of the action that will be
  * redirected to.</li>
- *
  * <li><b>namespace</b> - Used to determine which namespace the action is in
  * that we're redirecting to.  If namespace is null, the default will be the
  * current namespace.</li>
- *
  * <li><b>suppressEmptyParameters</b> - Optional boolean (defaults to false) that
  * can prevent parameters with no values from being included in the redirect
  * URL.</li>
- *
  * <li><b>parse</b> - Boolean, true by default.  If set to false, the actionName
  * param will not be parsed for Ognl expressions.</li>
- *
  * <li><b>anchor</b> - Optional.  Also known as "fragment" or colloquially as
  * "hash".  You can specify an anchor for a result.</li>
  * </ul>
  *
  * <!-- END SNIPPET: params -->
- *
+ * <p>
  * <b>Example:</b>
+ * </p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -103,7 +101,7 @@ import java.util.List;
  *    &lt;!-- Pass parameters (reportType, width and height) --&gt;
  *    &lt;!--
  *    The redirectAction url generated will be :
- *    /genReport/generateReport.action?reportType=pie&width=100&height=100#summary
+ *    /genReport/generateReport.action?reportType=pie&amp;width=100&amp;height=100#summary
  *    --&gt;
  *    &lt;action name="gatherReportInfo" class="..."&gt;
  *       &lt;result name="showReportResult" type="redirectAction"&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/ServletRedirectResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/ServletRedirectResult.java b/core/src/main/java/org/apache/struts2/result/ServletRedirectResult.java
index 7f2e148..e804416 100644
--- a/core/src/main/java/org/apache/struts2/result/ServletRedirectResult.java
+++ b/core/src/main/java/org/apache/struts2/result/ServletRedirectResult.java
@@ -143,7 +143,7 @@ public class ServletRedirectResult extends StrutsResultSupport implements Reflec
     /**
      * Set the optional anchor value.
      * 
-     * @param anchor
+     * @param anchor the anchor value
      */
     public void setAnchor(String anchor) {
         this.anchor = anchor;
@@ -250,7 +250,7 @@ public class ServletRedirectResult extends StrutsResultSupport implements Reflec
      * 
      * @param response The response
      * @param finalLocation The location URI
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     protected void sendRedirect(HttpServletResponse response, String finalLocation) throws IOException {
         if (SC_FOUND == statusCode) {
@@ -308,6 +308,8 @@ public class ServletRedirectResult extends StrutsResultSupport implements Reflec
      * 
      * @param key The parameter name
      * @param value The parameter value
+     *
+     * @return the servlet redirect result
      */
     public ServletRedirectResult addParameter(String key, Object value) {
         requestParameters.put(key, String.valueOf(value));

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/StreamResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/StreamResult.java b/core/src/main/java/org/apache/struts2/result/StreamResult.java
index 7829e3c..0bc328d 100644
--- a/core/src/main/java/org/apache/struts2/result/StreamResult.java
+++ b/core/src/main/java/org/apache/struts2/result/StreamResult.java
@@ -293,6 +293,7 @@ public class StreamResult extends StrutsResultSupport {
      * Tries to lookup the parameters on the stack.  Will override any existing parameters
      *
      * @param stack The current value stack
+     * @param invocation the action invocation
      */
     protected void resolveParamsFromStack(ValueStack stack, ActionInvocation invocation) {
         String disposition = stack.findString("contentDisposition");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/StrutsResultSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/StrutsResultSupport.java b/core/src/main/java/org/apache/struts2/result/StrutsResultSupport.java
index 06a1f12..bba5c84 100644
--- a/core/src/main/java/org/apache/struts2/result/StrutsResultSupport.java
+++ b/core/src/main/java/org/apache/struts2/result/StrutsResultSupport.java
@@ -159,6 +159,8 @@ public abstract class StrutsResultSupport implements Result, StrutsStatics {
     
     /**
      * Gets the location it was created with, mainly for testing
+     *
+     * @return the location
      */
     public String getLocation() {
         return location;
@@ -166,6 +168,8 @@ public abstract class StrutsResultSupport implements Result, StrutsStatics {
 
     /**
      * Returns the last parsed and encoded location value
+     *
+     * @return the last final location
      */
     public String getLastFinalLocation() {
         return lastFinalLocation;
@@ -209,7 +213,7 @@ public abstract class StrutsResultSupport implements Result, StrutsStatics {
      *
      * @param param The parameter value
      * @param invocation The action invocation instance
-     * @return The resulting string
+     * @return the resulting string
      */
     protected String conditionalParse(String param, ActionInvocation invocation) {
         if (parse && param != null && invocation != null) {
@@ -227,10 +231,10 @@ public abstract class StrutsResultSupport implements Result, StrutsStatics {
      * convert found object into String. If found object is a collection it is
      * returned if found object is not a collection it is wrapped in one.
      * 
-     * @param param
-     * @param invocation
-     * @param excludeEmptyElements
-     * @return
+     * @param param parameter
+     * @param invocation action invocation
+     * @param excludeEmptyElements 'true' for excluding empty elements
+     * @return the parsed collection of strings
      */
     protected Collection<String> conditionalParseCollection(String param, ActionInvocation invocation, boolean excludeEmptyElements) {
         if (parse && param != null && invocation != null) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/result/VelocityResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/result/VelocityResult.java b/core/src/main/java/org/apache/struts2/result/VelocityResult.java
index 2720209..ebd6900 100644
--- a/core/src/main/java/org/apache/struts2/result/VelocityResult.java
+++ b/core/src/main/java/org/apache/struts2/result/VelocityResult.java
@@ -176,6 +176,7 @@ public class VelocityResult extends StrutsResultSupport {
      * People can override this method if they want to provide specific content types for specific templates (eg text/xml).
      * </p>
      *
+     * @param templateLocation location of template
      * @return The content type associated with this template (default "text/html")
      */
     protected String getContentType(String templateLocation) {
@@ -188,6 +189,7 @@ public class VelocityResult extends StrutsResultSupport {
      * People can override this method if they want to provide specific encodings for specific templates.
      * </p>
      *
+     * @param templateLocation location of template
      * @return The encoding associated with this template (defaults to the value of 'struts.i18n.encoding' property)
      */
     protected String getEncoding(String templateLocation) {
@@ -228,6 +230,8 @@ public class VelocityResult extends StrutsResultSupport {
      *
      * @param velocityManager a reference to the velocityManager to use
      * @param stack           the value stack to resolve the location against (when parse equals true)
+     * @param request         the servlet request
+     * @param response        the servlet response
      * @param location        the name of the template that is being used
      * @return the a minted Velocity context.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/ContainUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/ContainUtil.java b/core/src/main/java/org/apache/struts2/util/ContainUtil.java
index 4cefb25..f3cd324 100644
--- a/core/src/main/java/org/apache/struts2/util/ContainUtil.java
+++ b/core/src/main/java/org/apache/struts2/util/ContainUtil.java
@@ -28,15 +28,13 @@ import java.util.Map;
 /**
  * <code>ContainUtil</code> will check if object 1 contains object 2.
  * Object 1 may be an Object, array, Collection, or a Map
- *
- * @version $Date$ $Id$
  */
 public class ContainUtil {
 
     /**
      * Determine if <code>obj2</code> exists in <code>obj1</code>.
      *
-     * <table borer="1">
+     * <table border="1" summary="">
      *  <tr>
      *      <td>Type Of obj1</td>
      *      <td>Comparison type</td>
@@ -64,19 +62,17 @@ public class ContainUtil {
      * </table>
      *
      *
-     * @param obj1
-     * @param obj2
-     * @return
+     * @param obj1 first object
+     * @param obj2 second object
+     * @return true if first object contains second object or if the  are equals, otherwise false
      */
     public static boolean contains(Object obj1, Object obj2) {
         if ((obj1 == null) || (obj2 == null)) {
-            //log.debug("obj1 or obj2 are null.");
             return false;
         }
 
         if (obj1 instanceof Map) {
             if (((Map) obj1).containsKey(obj2)) {
-                //log.debug("obj1 is a map and contains obj2");
                 return true;
             }
         } if (obj1 instanceof Iterable) {
@@ -90,19 +86,15 @@ public class ContainUtil {
                 Object value = Array.get(obj1, i);
 
                 if (obj2.equals(value)) {
-                    //log.debug("obj1 is an array and contains obj2");
                     return true;
                 }
             }
         } else if (obj1.toString().equals(obj2.toString())) {
-            //log.debug("obj1 is an object and it's String representation equals obj2's String representation.");
             return true;
         } else if (obj1.equals(obj2)) {
-            //log.debug("obj1 is an object and equals obj2");
             return true;
         }
 
-        //log.debug("obj1 does not contain obj2: " + obj1 + ", " + obj2);
         return false;
     }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java b/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java
index 37d1a81..670fa4a 100644
--- a/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java
+++ b/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java
@@ -50,6 +50,7 @@ public class InvocationSessionStore {
      * ActionContext and the ActionInvocation is returned.
      *
      * @param key the name the DefaultActionInvocation and ActionContext were saved as
+     * @param token token for check
      * @return the DefaultActionInvocation saved using the key, or null if none was found
      */
     public static ActionInvocation loadInvocation(String key, String token) {
@@ -69,8 +70,9 @@ public class InvocationSessionStore {
      * Stores the DefaultActionInvocation and ActionContext into the Session using the provided key for loading later using
      * {@link #loadInvocation}
      *
-     * @param key
-     * @param invocation
+     * @param key the name the DefaultActionInvocation and ActionContext were saved as
+     * @param token token for check
+     * @param invocation the action invocation
      */
     public static void storeInvocation(String key, String token, ActionInvocation invocation) {
         InvocationContext invocationContext = new InvocationContext(invocation.serialize(), token);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java b/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java
index f550b68..59153cb 100644
--- a/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java
+++ b/core/src/main/java/org/apache/struts2/util/RegexPatternMatcher.java
@@ -29,16 +29,21 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
+ * <p>
  * Allows regular expressions to be used in action names. The regular expressions
  * can be in the form {FIELD_NAME} or {FIELD_NAME:REGULAR_EXPRESSION}. For example:
- * <br/>
+ * </p>
+ *
  * <pre>
  *  &lt;action name="/{bio:.+}/test/{name}" class="org.apache.struts2.showcase.UITagExample"&gt;
- *       &lt;result>/tags/ui/example.jsp&lt;/result&gt;
+ *       &lt;result&gt;/tags/ui/example.jsp&lt;/result&gt;
  *  &lt;/action&gt;
  * </pre>
  *
+ * <p>
  * For this to work it is important to set the following:
+ * </p>
+ *
  * <pre>
  * &lt;constant name="struts.enable.SlashesInActionNames" value="true"/&gt;
  * &lt;constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java b/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
index 0d2e7c6..f778e4c 100644
--- a/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
+++ b/core/src/main/java/org/apache/struts2/util/StrutsTestCaseHelper.java
@@ -43,6 +43,8 @@ public class StrutsTestCaseHelper {
     /**
      * Sets up the configuration settings, XWork configuration, and
      * message resources
+     *
+     * @throws Exception in case of any error
      */
     public static void setUp() throws Exception {
         LocalizedTextUtil.clearDefaultResourceBundles();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/StrutsTypeConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/StrutsTypeConverter.java b/core/src/main/java/org/apache/struts2/util/StrutsTypeConverter.java
index d37c79f..8f31f08 100644
--- a/core/src/main/java/org/apache/struts2/util/StrutsTypeConverter.java
+++ b/core/src/main/java/org/apache/struts2/util/StrutsTypeConverter.java
@@ -65,9 +65,9 @@ public abstract class StrutsTypeConverter extends DefaultTypeConverter {
      * this will ask Ognl's DefaultTypeConverter (of which this class extends) to
      * perform the conversion.
      *
-     * @param context
-     * @param o
-     * @param toClass
+     * @param context the action context
+     * @param o object to be converted
+     * @param toClass the class to convert to
      * @return The fallback conversion
      */
     protected Object performFallbackConversion(Map context, Object o, Class toClass) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java b/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
index 5b876cc..fb55520 100644
--- a/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
+++ b/core/src/main/java/org/apache/struts2/util/fs/JBossFileManager.java
@@ -109,8 +109,9 @@ public class JBossFileManager extends DefaultFileManager {
 
     /**
      * Check if given URL is pointing to JBoss 5 VFS resource
-     * @param fileUrl
-     * @return
+     *
+     * @param fileUrl file URL to check
+     * @return if given URL is pointing to JBoss 5 VFS resource
      */
     protected boolean isJBossUrl(URL fileUrl) {
         final String protocol = fileUrl.getProtocol();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index c4fde80..ddc7669 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -70,17 +70,17 @@ import java.util.*;
  * </ul>
  *
  * <p>
- * <b> createConfiguration method </b><br/>
+ * <b> createConfiguration method </b><br>
  * Create a freemarker Configuration.
  * </p>
  *
  * <p>
- * <b> loadSettings method </b><br/>
+ * <b> loadSettings method </b><br>
  * Load freemarker settings, default to freemarker.properties (if found in classpath)
  * </p>
  *
  * <p>
- * <b> createTemplateLoader method</b><br/>
+ * <b> createTemplateLoader method</b><br>
  * create a freemarker TemplateLoader that loads freemarker template in the following order:
  * </p>
  *
@@ -91,13 +91,13 @@ import java.util.*;
  * </ol>
  *
  * <p>
- * <b> populateContext method</b><br/>
+ * <b> populateContext method</b><br>
  * populate the created model.
  * </p>
  */
 public class FreemarkerManager {
 
-    // coppied from freemarker servlet - so that there is no dependency on it
+    // copied from freemarker servlet - so that there is no dependency on it
      public static final String INITPARAM_TEMPLATE_PATH = "TemplatePath";
      public static final String INITPARAM_NOCACHE = "NoCache";
      public static final String INITPARAM_CONTENT_TYPE = "ContentType";
@@ -285,7 +285,9 @@ public class FreemarkerManager {
     /** 
      * Sets the Freemarker Configuration's template loader with the FreemarkerThemeTemplateLoader 
      * at the top.
-     * 
+     *
+     * @param templateLoader the template loader
+     *
      * @see org.apache.struts2.views.freemarker.FreemarkerThemeTemplateLoader
      */
     protected void configureTemplateLoader(TemplateLoader templateLoader) {
@@ -306,7 +308,9 @@ public class FreemarkerManager {
      * <li>loads settings from the classpath file /freemarker.properties
      * </ul>
      *
-     * @param servletContext
+     * @param servletContext the servlet context
+     * @return a instance of the freemarker configuration object
+     * @throws TemplateException in case of errors during creating the configuration
      */
     protected Configuration createConfiguration(ServletContext servletContext) throws TemplateException {
         Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
@@ -394,9 +398,10 @@ public class FreemarkerManager {
      * {@link ClassTemplateLoader} if the template path starts with "class://",
      * a {@link FileTemplateLoader} if the template path starts with "file://",
      * and a {@link WebappTemplateLoader} otherwise.
+     *
+     * @param servletContext the servlet path
      * @param templatePath the template path to create a loader for
      * @return a newly created template loader
-     * @throws IOException
      */
     protected TemplateLoader createTemplateLoader(ServletContext servletContext, String templatePath) {
         TemplateLoader templatePathLoader = null;
@@ -432,6 +437,8 @@ public class FreemarkerManager {
     /**
      * Load the settings from the /freemarker.properties file on the classpath
      *
+     * @param servletContext the servlet context
+     *
      * @see freemarker.template.Configuration#setSettings for the definition of valid settings
      */
     protected void loadSettings(ServletContext servletContext) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
index b052da0..52ad637 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerResult.java
@@ -115,7 +115,7 @@ public class FreemarkerResult extends StrutsResultSupport {
     /*
      * Struts results are constructed for each result execution
      *
-     * the current context is availible to subclasses via these protected fields
+     * the current context is available to subclasses via these protected fields
      */
     protected String location;
     private String pContentType = "text/html";
@@ -141,6 +141,8 @@ public class FreemarkerResult extends StrutsResultSupport {
     /**
      * allow parameterization of the contentType
      * the default being text/html
+     *
+     * @return the content type
      */
     public String getContentType() {
         return pContentType;
@@ -156,6 +158,12 @@ public class FreemarkerResult extends StrutsResultSupport {
      * It them implements the template processing workflow by calling the hooks for
      * preTemplateProcess and postTemplateProcess
      * </p>
+     *
+     * @param locationArg location argument
+     * @param invocation the action invocation
+     *
+     * @throws IOException in case of IO errors
+     * @throws TemplateException in case of freemarker template errors
      */
     public void doExecute(String locationArg, ActionInvocation invocation) throws IOException, TemplateException {
         this.location = locationArg;
@@ -244,6 +252,9 @@ public class FreemarkerResult extends StrutsResultSupport {
      * The default implementation obtains the configuration from the ConfigurationManager instance.
      * </b>
      * </p>
+     *
+     * @return the freemarker configuration object
+     * @throws TemplateException in case of freemarker configuration errors
      */
     protected Configuration getConfiguration() throws TemplateException {
         return freemarkerManager.getConfiguration(ServletActionContext.getServletContext());
@@ -261,6 +272,8 @@ public class FreemarkerResult extends StrutsResultSupport {
      * The default implementation returns {@link Configuration#getObjectWrapper()}
      * </b>
      * </p>
+     *
+     * @return the object wrapper from configuration
      */
     protected ObjectWrapper getObjectWrapper() {
         return configuration.getObjectWrapper();
@@ -273,6 +286,9 @@ public class FreemarkerResult extends StrutsResultSupport {
 
     /**
      * The default writer writes directly to the response writer.
+     *
+     * @return Writer the response writer
+     * @throws IOException in case of IO errors
      */
     protected Writer getWriter() throws IOException {
         if(writer != null) {
@@ -300,6 +316,9 @@ public class FreemarkerResult extends StrutsResultSupport {
      * <li>exception - optional : the JSP or Servlet exception as per the servlet spec (for JSP Exception pages)
      * <li>struts - instance of the StrutsUtil class
      * </ul>
+     *
+     * @return TemplateModel returns the created template model
+     * @throws TemplateModelException in case of errors during creating the model
      */
     protected TemplateModel createModel() throws TemplateModelException {
         ServletContext servletContext = ServletActionContext.getServletContext();
@@ -316,6 +335,8 @@ public class FreemarkerResult extends StrutsResultSupport {
      * Returns the locale used for the {@link Configuration#getTemplate(String, Locale)} call. The base implementation
      * simply returns the locale setting of the action (assuming the action implements {@link LocaleProvider}) or, if
      * the action does not the configuration's locale is returned. Override this method to provide different behaviour,
+     *
+     * @return the locale from action if action implements the {@link LocaleProvider}) or local from configuration
      */
     protected Locale deduceLocale() {
         if (invocation.getAction() instanceof LocaleProvider) {
@@ -327,8 +348,13 @@ public class FreemarkerResult extends StrutsResultSupport {
 
     /**
      * the default implementation of postTemplateProcess applies the contentType parameter
+     *
+     * @param template the freemarker template
+     * @param model the template model
+     *
+     * @throws IOException in case of IO errors
      */
-    protected void postTemplateProcess(Template template, TemplateModel data) throws IOException {
+    protected void postTemplateProcess(Template template, TemplateModel model) throws IOException {
     }
 
     /**
@@ -338,7 +364,10 @@ public class FreemarkerResult extends StrutsResultSupport {
      * A typical action to perform here is to inject application-specific
      * objects into the model root
      *
+     * @param template the freemarker template
+     * @param model the template model
      * @return true to process the template, false to suppress template processing.
+     * @throws IOException in case of IO errors
      */
     protected boolean preTemplateProcess(Template template, TemplateModel model) throws IOException {
         Object attrContentType = template.getCustomAttribute("content_type");
@@ -383,7 +412,7 @@ public class FreemarkerResult extends StrutsResultSupport {
     }
 
     /**
-     * Writes to the stream only when template processing completed successfully
+     * @param writeIfCompleted Writes to the stream only when template processing completed successfully
      */
     public void setWriteIfCompleted(boolean writeIfCompleted) {
         this.writeIfCompleted = writeIfCompleted;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java
index 5c56463..f19118c 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerThemeTemplateLoader.java
@@ -25,6 +25,8 @@ public class FreemarkerThemeTemplateLoader implements TemplateLoader{
 
     /**
      * Initialize the loader for the given parent.
+     *
+     * @param parent the parent template loader
      */
     public void init(TemplateLoader parent) {
         this.parentTemplateLoader = parent;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java b/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
index 2d83a8d..7b85a82 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/IteratorStatus.java
@@ -38,7 +38,7 @@ package org.apache.struts2.views.jsp;
  *   &lt;s:iterator status="status" value='{0, 1}'&gt;
  *      Index: &lt;s:property value="%{#status.index}" /&gt; &lt;br /&gt;
  *      Count: &lt;s:property value="%{#status.count}" /&gt; &lt;br /&gt;  
- *   &lt;/s:iterator>
+ *   &lt;/s:iterator&gt;
  * </pre>
  * 
  * <p>will print</p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
index e9d229a..0789417 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
@@ -84,7 +84,7 @@ import javax.servlet.jsp.JspException;
  * &lt;%
  *  Iterator i = (Iterator) pageContext.getAttribute("myAtt");
  *  while(i.hasNext()) {
- *      String s = (String) i.next(); %>
+ *      String s = (String) i.next(); %&gt;
  *      &lt;%=s%&gt; &lt;br/&gt;
  * &lt;%    }
  * %&gt;
@@ -148,8 +148,10 @@ public class IteratorGeneratorTag extends StrutsBodyTagSupport {
     }
 
     /**
-     * @s.tagattribute required="true" type="String"
+     * {@literal @}s.tagattribute required="true" type="String"
      * description="the separator to be used in separating the <i>val</i> into entries of the iterator"
+     *
+     * @param separator the seperator
      */
     @StrutsTagAttribute(required=true, description="The separator to be used in separating the <i>val</i> into entries of the iterator")
     public void setSeparator(String separator) {
@@ -157,8 +159,10 @@ public class IteratorGeneratorTag extends StrutsBodyTagSupport {
     }
 
     /**
-     * @s.tagattribute required="true"
+     * {@literal @}s.tagattribute required="true"
      * description="the source to be parsed into an iterator"
+     *
+     * @param val the value
      */
     @StrutsTagAttribute(required=true, description="The source to be parsed into an iterator")
     public void setVal(String val) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/jsp/iterator/SortIteratorTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SortIteratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SortIteratorTag.java
index 4ae8054..7e6f853 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SortIteratorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SortIteratorTag.java
@@ -84,7 +84,7 @@ import org.apache.struts2.views.jsp.StrutsBodyTagSupport;
  *
  * @see org.apache.struts2.util.SortIteratorFilter
  *
- * @s.tag name="sort" tld-body-content="JSP"
+ * {@literal @}s.tag name="sort" tld-body-content="JSP"
  * description="Sort a List using a Comparator both passed in as the tag attribute."
  */
 @StrutsTag(name="sort", tldTagClass="org.apache.struts2.views.jsp.iterator.SortIteratorTag", 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
index aa702da..daa062f 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
@@ -111,7 +111,7 @@ import javax.servlet.jsp.JspException;
  *
  * <pre>
  * <!-- START SNIPPET: example3 -->
- * &lt;!--  C: List with start -->
+ * &lt;!--  C: List with start --&gt;
  *      &lt;s:subset source="myList" count="13" start="3"&gt;
  *         &lt;s:iterator&gt;
  *           &lt;s:property /&gt;
@@ -145,7 +145,7 @@ import javax.servlet.jsp.JspException;
  * </pre>
  *
  *
- * @s.tag name="subset" tld-body-content="JSP"
+ * {@literal @}s.tag name="subset" tld-body-content="JSP"
  * description="Takes an iterator and outputs a subset of it"
  */
 @StrutsTag(name="subset", tldTagClass="org.apache.struts2.views.jsp.iterator.SubsetIteratorTag",
@@ -175,8 +175,10 @@ public class SubsetIteratorTag extends StrutsBodyTagSupport {
     }
 
     /**
-     * @s.tagattribute required="false" type="Integer"
+     * {@literal @}s.tagattribute required="false" type="Integer"
      * description="Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator"
+     *
+     * @param start start
      */
     @StrutsTagAttribute(type="Integer",
             description="Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator")

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
index 9828eaf..31a3658 100644
--- a/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
@@ -55,7 +55,6 @@ import java.util.*;
 
 /**
  * Manages the environment for Velocity result types
- *
  */
 public class VelocityManager {
     private static final Logger LOG = LogManager.getLogger(VelocityManager.class);
@@ -132,6 +131,9 @@ public class VelocityManager {
      * <li><strong>action</strong> - the current Struts action</li>
      * </ul>
      *
+     * @param stack the current {@link ValueStack}
+     * @param req the current HttpServletRequest
+     * @param res the current HttpServletResponse
      * @return a new StrutsVelocityContext
      */
     public Context createContext(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
@@ -171,9 +173,9 @@ public class VelocityManager {
      * perform any initialization of the contexts.  All that must be done in the
      * context itself.
      *
-     * @param servletRequest
-     * @param servletResponse
-     * @param extraContext
+     * @param servletRequest the servlet request object
+     * @param servletResponse the servlet response object
+     * @param extraContext map with extra context
      * @return an VelocityContext[] of contexts to chain
      */
     protected VelocityContext[] prepareChainedContexts(HttpServletRequest servletRequest, HttpServletResponse servletResponse, Map extraContext) {
@@ -361,6 +363,8 @@ public class VelocityManager {
      * the StrutsVelocityContext.  The intent is to allow these contexts to store helper objects that the ui
      * developer may want access to.  Examples of reasonable VelocityContexts would be an IoCVelocityContext, a
      * SpringReferenceVelocityContext, and a ToolboxVelocityContext
+     *
+     * @param contexts comma separated velocity context's
      */
     @Inject(StrutsConstants.STRUTS_VELOCITY_CONTEXTS)
     public void setChainedContexts(String contexts) {
@@ -382,6 +386,8 @@ public class VelocityManager {
     /**
      * Initializes the ServletToolboxManager for this servlet's
      * toolbox (if any).
+     *
+     * @param context the servlet context
      */
     protected void initToolbox(ServletContext context) {
         /* if we have a toolbox, get a manager for it */
@@ -420,7 +426,9 @@ public class VelocityManager {
      * <li>on the classpath</li>
      * </ul>
      *
-     * @param context the current ServletContext.  may <b>not</b> be null
+     * @param context the current ServletContext. may <b>not</b> be null
+     *
+     * @return the new velocity engine
      */
     protected VelocityEngine newVelocityEngine(ServletContext context) {
         if (context == null) {
@@ -455,18 +463,18 @@ public class VelocityManager {
      * <li>we need to define the various Struts custom user directives such as #param, #tag, and #bodytag</li>
      * </ul>
      *
-     * @param context
-     * @param p
+     * @param context the servlet context
+     * @param properties velocity properties
      */
-    private void applyDefaultConfiguration(ServletContext context, Properties p) {
+    private void applyDefaultConfiguration(ServletContext context, Properties properties) {
         // ensure that caching isn't overly aggressive
 
         /**
          * Load a default resource loader definition if there isn't one present.
          * Ben Hall (22/08/2003)
          */
-        if (p.getProperty(Velocity.RESOURCE_LOADER) == null) {
-            p.setProperty(Velocity.RESOURCE_LOADER, "strutsfile, strutsclass");
+        if (properties.getProperty(Velocity.RESOURCE_LOADER) == null) {
+            properties.setProperty(Velocity.RESOURCE_LOADER, "strutsfile, strutsclass");
         }
 
         /**
@@ -476,14 +484,14 @@ public class VelocityManager {
          * Ben Hall (22/08/2003)
          */
         if (context.getRealPath("") != null) {
-            p.setProperty("strutsfile.resource.loader.description", "Velocity File Resource Loader");
-            p.setProperty("strutsfile.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
-            p.setProperty("strutsfile.resource.loader.path", context.getRealPath(""));
-            p.setProperty("strutsfile.resource.loader.modificationCheckInterval", "2");
-            p.setProperty("strutsfile.resource.loader.cache", "true");
+            properties.setProperty("strutsfile.resource.loader.description", "Velocity File Resource Loader");
+            properties.setProperty("strutsfile.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");
+            properties.setProperty("strutsfile.resource.loader.path", context.getRealPath(""));
+            properties.setProperty("strutsfile.resource.loader.modificationCheckInterval", "2");
+            properties.setProperty("strutsfile.resource.loader.cache", "true");
         } else {
             // remove strutsfile from resource loader property
-            String prop = p.getProperty(Velocity.RESOURCE_LOADER);
+            String prop = properties.getProperty(Velocity.RESOURCE_LOADER);
             if (prop.indexOf("strutsfile,") != -1) {
                 prop = replace(prop, "strutsfile,", "");
             } else if (prop.indexOf(", strutsfile") != -1) {
@@ -492,7 +500,7 @@ public class VelocityManager {
                 prop = replace(prop, "strutsfile", "");
             }
 
-            p.setProperty(Velocity.RESOURCE_LOADER, prop);
+            properties.setProperty(Velocity.RESOURCE_LOADER, prop);
         }
 
         /**
@@ -501,10 +509,10 @@ public class VelocityManager {
          * Unfortunately, there does not appear to be a macro for the class loader keywords
          * Matt Ho - Mon Mar 17 00:21:46 PST 2003
          */
-        p.setProperty("strutsclass.resource.loader.description", "Velocity Classpath Resource Loader");
-        p.setProperty("strutsclass.resource.loader.class", "org.apache.struts2.views.velocity.StrutsResourceLoader");
-        p.setProperty("strutsclass.resource.loader.modificationCheckInterval", "2");
-        p.setProperty("strutsclass.resource.loader.cache", "true");
+        properties.setProperty("strutsclass.resource.loader.description", "Velocity Classpath Resource Loader");
+        properties.setProperty("strutsclass.resource.loader.class", "org.apache.struts2.views.velocity.StrutsResourceLoader");
+        properties.setProperty("strutsclass.resource.loader.modificationCheckInterval", "2");
+        properties.setProperty("strutsclass.resource.loader.cache", "true");
 
         // components
         StringBuilder sb = new StringBuilder();
@@ -518,14 +526,14 @@ public class VelocityManager {
 
         String directives = sb.toString();
 
-        String userdirective = p.getProperty("userdirective");
+        String userdirective = properties.getProperty("userdirective");
         if ((userdirective == null) || userdirective.trim().equals("")) {
             userdirective = directives;
         } else {
             userdirective = userdirective.trim() + "," + directives;
         }
 
-        p.setProperty("userdirective", userdirective);
+        properties.setProperty("userdirective", userdirective);
     }
 
     private void addDirective(StringBuilder sb, Class clazz) {


[05/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java
index 1b4e21c..aa5b4c3 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspUtil.java
@@ -17,19 +17,7 @@
 
 package org.apache.struts2.jasper.compiler;
 
-import java.io.CharArrayWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.util.Vector;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import javax.el.FunctionMapper;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-
-
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.struts2.el.ExpressionFactoryImpl;
 import org.apache.struts2.jasper.Constants;
 import org.apache.struts2.jasper.JasperException;
@@ -37,7 +25,14 @@ import org.apache.struts2.jasper.JspCompilationContext;
 import org.apache.struts2.jasper.el.ExpressionEvaluatorImpl;
 import org.xml.sax.Attributes;
 
-/** 
+import javax.el.FunctionMapper;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import java.io.*;
+import java.util.Vector;
+import java.util.jar.JarFile;
+import java.util.zip.ZipEntry;
+
+/**
  * This class has all the utility method(s).
  * Ideally should move all the bean containers here.
  *
@@ -54,39 +49,39 @@ public class JspUtil {
     private static final String META_INF_TAGS = "/META-INF/tags/";
 
     // Delimiters for request-time expressions (JSP and XML syntax)
-    private static final String OPEN_EXPR  = "<%=";
+    private static final String OPEN_EXPR = "<%=";
     private static final String CLOSE_EXPR = "%>";
-    private static final String OPEN_EXPR_XML  = "%=";
+    private static final String OPEN_EXPR_XML = "%=";
     private static final String CLOSE_EXPR_XML = "%";
 
     private static int tempSequenceNumber = 0;
-    
+
     //private static ExpressionEvaluatorImpl expressionEvaluator
     //= new ExpressionEvaluatorImpl();
-    
+
     //tc6
     private final static ExpressionEvaluator expressionEvaluator =
-        new ExpressionEvaluatorImpl(new ExpressionFactoryImpl());
+            new ExpressionEvaluatorImpl(new ExpressionFactoryImpl());
 
     private static final String javaKeywords[] = {
-        "abstract", "assert", "boolean", "break", "byte", "case",
-        "catch", "char", "class", "const", "continue",
-        "default", "do", "double", "else", "enum", "extends",
-        "final", "finally", "float", "for", "goto",
-        "if", "implements", "import", "instanceof", "int",
-        "interface", "long", "native", "new", "package",
-        "private", "protected", "public", "return", "short",
-        "static", "strictfp", "super", "switch", "synchronized",
-        "this", "throws", "transient", "try", "void",
-        "volatile", "while" };
+            "abstract", "assert", "boolean", "break", "byte", "case",
+            "catch", "char", "class", "const", "continue",
+            "default", "do", "double", "else", "enum", "extends",
+            "final", "finally", "float", "for", "goto",
+            "if", "implements", "import", "instanceof", "int",
+            "interface", "long", "native", "new", "package",
+            "private", "protected", "public", "return", "short",
+            "static", "strictfp", "super", "switch", "synchronized",
+            "this", "throws", "transient", "try", "void",
+            "volatile", "while"};
 
     public static final int CHUNKSIZE = 1024;
-        
-    public static char[] removeQuotes(char []chars) {
+
+    public static char[] removeQuotes(char[] chars) {
         CharArrayWriter caw = new CharArrayWriter();
         for (int i = 0; i < chars.length; i++) {
-            if (chars[i] == '%' && chars[i+1] == '\\' &&
-                chars[i+2] == '>') {
+            if (chars[i] == '%' && chars[i + 1] == '\\' &&
+                    chars[i + 2] == '>') {
                 caw.write('%');
                 caw.write('>');
                 i = i + 2;
@@ -97,7 +92,7 @@ public class JspUtil {
         return caw.toCharArray();
     }
 
-    public static char[] escapeQuotes (char []chars) {
+    public static char[] escapeQuotes(char[] chars) {
         // Prescan to convert %\> to %>
         String s = new String(chars);
         while (true) {
@@ -129,66 +124,72 @@ public class JspUtil {
 
     /**
      * Checks if the token is a runtime expression.
-     * In standard JSP syntax, a runtime expression starts with '<%' and
-     * ends with '%>'. When the JSP document is in XML syntax, a runtime
+     * In standard JSP syntax, a runtime expression starts with '&lt;%' and
+     * ends with '%&gt;'. When the JSP document is in XML syntax, a runtime
      * expression starts with '%=' and ends with '%'.
      *
      * @param token The token to be checked
-     * return whether the token is a runtime expression or not.
+     * @param isXml is xml syntax
+     * @return whether the token is a runtime expression or not.
      */
     public static boolean isExpression(String token, boolean isXml) {
-    String openExpr;
-    String closeExpr;
-    if (isXml) {
-        openExpr = OPEN_EXPR_XML;
-        closeExpr = CLOSE_EXPR_XML;
-    } else {
-        openExpr = OPEN_EXPR;
-        closeExpr = CLOSE_EXPR;
-    }
-    if (token.startsWith(openExpr) && token.endsWith(closeExpr)) {
-        return true;
-    } else {
-        return false;
-    }
+        String openExpr;
+        String closeExpr;
+        if (isXml) {
+            openExpr = OPEN_EXPR_XML;
+            closeExpr = CLOSE_EXPR_XML;
+        } else {
+            openExpr = OPEN_EXPR;
+            closeExpr = CLOSE_EXPR;
+        }
+        if (token.startsWith(openExpr) && token.endsWith(closeExpr)) {
+            return true;
+        } else {
+            return false;
+        }
     }
 
     /**
-     * @return the "expression" part of a runtime expression, 
+     * @param expression expression string
+     * @param isXml      is xml
+     * @return the "expression" part of a runtime expression,
      * taking the delimiters out.
      */
-    public static String getExpr (String expression, boolean isXml) {
-    String returnString;
-    String openExpr;
-    String closeExpr;
-    if (isXml) {
-        openExpr = OPEN_EXPR_XML;
-        closeExpr = CLOSE_EXPR_XML;
-    } else {
-        openExpr = OPEN_EXPR;
-        closeExpr = CLOSE_EXPR;
-    }
-    int length = expression.length();
-    if (expression.startsWith(openExpr) && 
+    public static String getExpr(String expression, boolean isXml) {
+        String returnString;
+        String openExpr;
+        String closeExpr;
+        if (isXml) {
+            openExpr = OPEN_EXPR_XML;
+            closeExpr = CLOSE_EXPR_XML;
+        } else {
+            openExpr = OPEN_EXPR;
+            closeExpr = CLOSE_EXPR;
+        }
+        int length = expression.length();
+        if (expression.startsWith(openExpr) &&
                 expression.endsWith(closeExpr)) {
-        returnString = expression.substring(
-                               openExpr.length(), length - closeExpr.length());
-    } else {
-        returnString = "";
-    }
-    return returnString;
+            returnString = expression.substring(
+                    openExpr.length(), length - closeExpr.length());
+        } else {
+            returnString = "";
+        }
+        return returnString;
     }
 
     /**
      * Takes a potential expression and converts it into XML form
+     *
+     * @param expression expression string
+     * @return expressions as xml
      */
     public static String getExprInXml(String expression) {
         String returnString;
         int length = expression.length();
 
-        if (expression.startsWith(OPEN_EXPR) 
+        if (expression.startsWith(OPEN_EXPR)
                 && expression.endsWith(CLOSE_EXPR)) {
-            returnString = expression.substring (1, length - 1);
+            returnString = expression.substring(1, length - 1);
         } else {
             returnString = expression;
         }
@@ -200,40 +201,45 @@ public class JspUtil {
      * Checks to see if the given scope is valid.
      *
      * @param scope The scope to be checked
-     * @param n The Node containing the 'scope' attribute whose value is to be
-     * checked
-     * @param err error dispatcher
-     *
+     * @param n     The Node containing the 'scope' attribute whose value is to be
+     *              checked
+     * @param err   error dispatcher
      * @throws JasperException if scope is not null and different from
-     * &quot;page&quot;, &quot;request&quot;, &quot;session&quot;, and
-     * &quot;application&quot;
+     *                         &quot;page&quot;, &quot;request&quot;, &quot;session&quot;, and
+     *                         &quot;application&quot;
      */
     public static void checkScope(String scope, Node n, ErrorDispatcher err)
             throws JasperException {
-    if (scope != null && !scope.equals("page") && !scope.equals("request")
-        && !scope.equals("session") && !scope.equals("application")) {
-        err.jspError(n, "jsp.error.invalid.scope", scope);
-    }
+        if (scope != null && !scope.equals("page") && !scope.equals("request")
+                && !scope.equals("session") && !scope.equals("application")) {
+            err.jspError(n, "jsp.error.invalid.scope", scope);
+        }
     }
 
     /**
      * Checks if all mandatory attributes are present and if all attributes
      * present have valid names.  Checks attributes specified as XML-style
      * attributes as well as attributes specified using the jsp:attribute
-     * standard action. 
+     * standard action.
+     *
+     * @param typeOfTag       type of tag
+     * @param n               node
+     * @param validAttributes valid attributes
+     * @param err             error dispatcher
+     * @throws JasperException in case of Jasper errors
      */
     public static void checkAttributes(String typeOfTag,
-                       Node n,
-                       ValidAttribute[] validAttributes,
-                       ErrorDispatcher err)
-                throws JasperException {
+                                       Node n,
+                                       ValidAttribute[] validAttributes,
+                                       ErrorDispatcher err)
+            throws JasperException {
         Attributes attrs = n.getAttributes();
         Mark start = n.getStart();
-    boolean valid = true;
+        boolean valid = true;
 
         // AttributesImpl.removeAttribute is broken, so we do this...
         int tempLength = (attrs == null) ? 0 : attrs.getLength();
-    Vector temp = new Vector(tempLength, 1);
+        Vector temp = new Vector(tempLength, 1);
         for (int i = 0; i < tempLength; i++) {
             String qName = attrs.getQName(i);
             if ((!qName.equals("xmlns")) && (!qName.startsWith("xmlns:")))
@@ -242,20 +248,19 @@ public class JspUtil {
 
         // Add names of attributes specified using jsp:attribute
         Node.Nodes tagBody = n.getBody();
-        if( tagBody != null ) {
+        if (tagBody != null) {
             int numSubElements = tagBody.size();
-            for( int i = 0; i < numSubElements; i++ ) {
-                Node node = tagBody.getNode( i );
-                if( node instanceof Node.NamedAttribute ) {
-                    String attrName = node.getAttributeValue( "name" );
-                    temp.addElement( attrName );
-            // Check if this value appear in the attribute of the node
-            if (n.getAttributeValue(attrName) != null) {
-            err.jspError(n, "jsp.error.duplicate.name.jspattribute",
-                    attrName);
-            }
-                }
-                else {
+            for (int i = 0; i < numSubElements; i++) {
+                Node node = tagBody.getNode(i);
+                if (node instanceof Node.NamedAttribute) {
+                    String attrName = node.getAttributeValue("name");
+                    temp.addElement(attrName);
+                    // Check if this value appear in the attribute of the node
+                    if (n.getAttributeValue(attrName) != null) {
+                        err.jspError(n, "jsp.error.duplicate.name.jspattribute",
+                                attrName);
+                    }
+                } else {
                     // Nothing can come before jsp:attribute, and only
                     // jsp:body can come after it.
                     break;
@@ -268,77 +273,80 @@ public class JspUtil {
      * If so only then proceed to see if the other attributes are valid
      * for the particular tag.
      */
-    String missingAttribute = null;
-
-    for (int i = 0; i < validAttributes.length; i++) {
-        int attrPos;    
-        if (validAttributes[i].mandatory) {
-                attrPos = temp.indexOf(validAttributes[i].name);
-        if (attrPos != -1) {
-            temp.remove(attrPos);
-            valid = true;
-        } else {
-            valid = false;
-            missingAttribute = validAttributes[i].name;
-            break;
-        }
+        String missingAttribute = null;
+
+        for (ValidAttribute validAttribute : validAttributes) {
+            int attrPos;
+            if (validAttribute.mandatory) {
+                attrPos = temp.indexOf(validAttribute.name);
+                if (attrPos != -1) {
+                    temp.remove(attrPos);
+                    valid = true;
+                } else {
+                    valid = false;
+                    missingAttribute = validAttribute.name;
+                    break;
+                }
+            }
         }
-    }
 
-    // If mandatory attribute is missing then the exception is thrown
-    if (!valid)
-        err.jspError(start, "jsp.error.mandatory.attribute", typeOfTag,
-             missingAttribute);
+        // If mandatory attribute is missing then the exception is thrown
+        if (!valid)
+            err.jspError(start, "jsp.error.mandatory.attribute", typeOfTag,
+                    missingAttribute);
 
-    // Check to see if there are any more attributes for the specified tag.
+        // Check to see if there are any more attributes for the specified tag.
         int attrLeftLength = temp.size();
-    if (attrLeftLength == 0)
-        return;
-
-    // Now check to see if the rest of the attributes are valid too.
-    String attribute = null;
-
-    for (int j = 0; j < attrLeftLength; j++) {
-        valid = false;
-        attribute = (String) temp.elementAt(j);
-        for (int i = 0; i < validAttributes.length; i++) {
-        if (attribute.equals(validAttributes[i].name)) {
-            valid = true;
-            break;
-        }
+        if (attrLeftLength == 0)
+            return;
+
+        // Now check to see if the rest of the attributes are valid too.
+        String attribute = null;
+
+        for (int j = 0; j < attrLeftLength; j++) {
+            valid = false;
+            attribute = (String) temp.elementAt(j);
+            for (ValidAttribute validAttribute : validAttributes) {
+                if (attribute.equals(validAttribute.name)) {
+                    valid = true;
+                    break;
+                }
+            }
+            if (!valid)
+                err.jspError(start, "jsp.error.invalid.attribute", typeOfTag,
+                        attribute);
         }
-        if (!valid)
-        err.jspError(start, "jsp.error.invalid.attribute", typeOfTag,
-                 attribute);
-    }
-    // XXX *could* move EL-syntax validation here... (sb)
+        // XXX *could* move EL-syntax validation here... (sb)
     }
-    
+
     public static String escapeQueryString(String unescString) {
-    if ( unescString == null )
-        return null;
-    
-    String escString    = "";
-    String shellSpChars = "\\\"";
-    
-    for(int index=0; index<unescString.length(); index++) {
-        char nextChar = unescString.charAt(index);
-        
-        if( shellSpChars.indexOf(nextChar) != -1 )
-        escString += "\\";
-        
-        escString += nextChar;
-    }
-    return escString;
+        if (unescString == null)
+            return null;
+
+        String escString = "";
+        String shellSpChars = "\\\"";
+
+        for (int index = 0; index < unescString.length(); index++) {
+            char nextChar = unescString.charAt(index);
+
+            if (shellSpChars.indexOf(nextChar) != -1)
+                escString += "\\";
+
+            escString += nextChar;
+        }
+        return escString;
     }
- 
+
     /**
-     *  Escape the 5 entities defined by XML.
+     * Escape the 5 entities defined by XML.
+     *
+     * @param s xml string to escape
+     * @return escaped xml string
      */
     public static String escapeXml(String s) {
         if (s == null) return null;
         StringBuffer sb = new StringBuffer();
-        for(int i=0; i<s.length(); i++) {
+        for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
             if (c == '<') {
                 sb.append("&lt;");
@@ -360,187 +368,190 @@ public class JspUtil {
     /**
      * Replaces any occurrences of the character <tt>replace</tt> with the
      * string <tt>with</tt>.
+     *
+     * @param name  string
+     * @param replace char to replace
+     * @param with replace with
+     *
+     * @return replaced string
      */
     public static String replace(String name, char replace, String with) {
-    StringBuffer buf = new StringBuffer();
-    int begin = 0;
-    int end;
-    int last = name.length();
-
-    while (true) {
-        end = name.indexOf(replace, begin);
-        if (end < 0) {
-        end = last;
-        }
-        buf.append(name.substring(begin, end));
-        if (end == last) {
-        break;
+        StringBuilder buf = new StringBuilder();
+        int begin = 0;
+        int end;
+        int last = name.length();
+
+        while (true) {
+            end = name.indexOf(replace, begin);
+            if (end < 0) {
+                end = last;
+            }
+            buf.append(name.substring(begin, end));
+            if (end == last) {
+                break;
+            }
+            buf.append(with);
+            begin = end + 1;
         }
-        buf.append(with);
-        begin = end + 1;
-    }
-    
-    return buf.toString();
+
+        return buf.toString();
     }
 
     public static class ValidAttribute {
-    String name;
-    boolean mandatory;
-    boolean rtexprvalue;    // not used now
-
-    public ValidAttribute (String name, boolean mandatory,
-            boolean rtexprvalue )
-        {
-        this.name = name;
-        this.mandatory = mandatory;
+        String name;
+        boolean mandatory;
+        boolean rtexprvalue;    // not used now
+
+        public ValidAttribute(String name, boolean mandatory,
+                              boolean rtexprvalue) {
+            this.name = name;
+            this.mandatory = mandatory;
             this.rtexprvalue = rtexprvalue;
         }
 
-       public ValidAttribute (String name, boolean mandatory) {
-            this( name, mandatory, false );
-    }
+        public ValidAttribute(String name, boolean mandatory) {
+            this(name, mandatory, false);
+        }
 
-    public ValidAttribute (String name) {
-        this (name, false);
-    }
+        public ValidAttribute(String name) {
+            this(name, false);
+        }
     }
-    
+
     /**
      * Convert a String value to 'boolean'.
      * Besides the standard conversions done by
      * Boolean.valueOf(s).booleanValue(), the value "yes"
-     * (ignore case) is also converted to 'true'. 
+     * (ignore case) is also converted to 'true'.
      * If 's' is null, then 'false' is returned.
      *
      * @param s the string to be converted
      * @return the boolean value associated with the string s
      */
     public static boolean booleanValue(String s) {
-    boolean b = false;
-    if (s != null) {
-        if (s.equalsIgnoreCase("yes")) {
-        b = true;
-        } else {
-        b = Boolean.valueOf(s).booleanValue();
-        }
-    }
-    return b;
+        return BooleanUtils.toBoolean(s);
     }
 
     /**
-     * Returns the <tt>Class</tt> object associated with the class or
-     * interface with the given string name.
-     *
      * <p> The <tt>Class</tt> object is determined by passing the given string
      * name to the <tt>Class.forName()</tt> method, unless the given string
      * name represents a primitive type, in which case it is converted to a
      * <tt>Class</tt> object by appending ".class" to it (e.g., "int.class").
+     *
+     * @param type   type
+     * @param loader class loader
+     *
+     * @return the <tt>Class</tt> object associated with the class or
+     * interface with the given string name.
+     *
+     * @throws ClassNotFoundException if call was not found
      */
     public static Class toClass(String type, ClassLoader loader)
-        throws ClassNotFoundException {
-
-    Class c = null;
-    int i0 = type.indexOf('[');
-    int dims = 0;
-    if (i0 > 0) {
-        // This is an array.  Count the dimensions
-        for (int i = 0; i < type.length(); i++) {
-        if (type.charAt(i) == '[')
-            dims++;
+            throws ClassNotFoundException {
+
+        Class c = null;
+        int i0 = type.indexOf('[');
+        int dims = 0;
+        if (i0 > 0) {
+            // This is an array.  Count the dimensions
+            for (int i = 0; i < type.length(); i++) {
+                if (type.charAt(i) == '[')
+                    dims++;
+            }
+            type = type.substring(0, i0);
         }
-        type = type.substring(0, i0);
-    }
 
-    if ("boolean".equals(type))
-        c = boolean.class;
-    else if ("char".equals(type))
-        c = char.class;
-    else if ("byte".equals(type))
-        c =  byte.class;
-    else if ("short".equals(type))
-        c = short.class;
-    else if ("int".equals(type))
-        c = int.class;
-    else if ("long".equals(type))
-        c = long.class;
-    else if ("float".equals(type))
-        c = float.class;
-    else if ("double".equals(type))
-        c = double.class;
-    else if (type.indexOf('[') < 0)
-        c = loader.loadClass(type);
-
-    if (dims == 0)
-        return c;
-
-    if (dims == 1)
-        return java.lang.reflect.Array.newInstance(c, 1).getClass();
-
-    // Array of more than i dimension
-    return java.lang.reflect.Array.newInstance(c, new int[dims]).getClass();
+        if ("boolean".equals(type))
+            c = boolean.class;
+        else if ("char".equals(type))
+            c = char.class;
+        else if ("byte".equals(type))
+            c = byte.class;
+        else if ("short".equals(type))
+            c = short.class;
+        else if ("int".equals(type))
+            c = int.class;
+        else if ("long".equals(type))
+            c = long.class;
+        else if ("float".equals(type))
+            c = float.class;
+        else if ("double".equals(type))
+            c = double.class;
+        else if (type.indexOf('[') < 0)
+            c = loader.loadClass(type);
+
+        if (dims == 0)
+            return c;
+
+        if (dims == 1)
+            return java.lang.reflect.Array.newInstance(c, 1).getClass();
+
+        // Array of more than i dimension
+        return java.lang.reflect.Array.newInstance(c, new int[dims]).getClass();
     }
-    
+
     /**
      * Produces a String representing a call to the EL interpreter.
-     * @param expression a String containing zero or more "${}" expressions
+     *
+     * @param isTagFile    is a tag file
+     * @param expression   a String containing zero or more "${}" expressions
      * @param expectedType the expected type of the interpreted result
-     * @param fnmapvar Variable pointing to a function map.
-     * @param XmlEscape True if the result should do XML escaping
+     * @param fnmapvar     Variable pointing to a function map.
+     * @param XmlEscape    True if the result should do XML escaping
      * @return a String representing a call to the EL interpreter.
      */
     public static String interpreterCall(boolean isTagFile,
-                     String expression,
+                                         String expression,
                                          Class expectedType,
                                          String fnmapvar,
-                                         boolean XmlEscape ) 
-    {
+                                         boolean XmlEscape) {
         /*
          * Determine which context object to use.
          */
-    String jspCtxt = null;
-    if (isTagFile)
-        jspCtxt = "this.getJspContext()";
-    else
-        jspCtxt = "_jspx_page_context";
+        String jspCtxt = null;
+        if (isTagFile)
+            jspCtxt = "this.getJspContext()";
+        else
+            jspCtxt = "_jspx_page_context";
 
     /*
          * Determine whether to use the expected type's textual name
      * or, if it's a primitive, the name of its correspondent boxed
      * type.
          */
-    String targetType = expectedType.getName();
-    String primitiveConverterMethod = null;
-    if (expectedType.isPrimitive()) {
-        if (expectedType.equals(Boolean.TYPE)) {
-        targetType = Boolean.class.getName();
-        primitiveConverterMethod = "booleanValue";
-        } else if (expectedType.equals(Byte.TYPE)) {
-        targetType = Byte.class.getName();
-        primitiveConverterMethod = "byteValue";
-        } else if (expectedType.equals(Character.TYPE)) {
-        targetType = Character.class.getName();
-        primitiveConverterMethod = "charValue";
-        } else if (expectedType.equals(Short.TYPE)) {
-        targetType = Short.class.getName();
-        primitiveConverterMethod = "shortValue";
-        } else if (expectedType.equals(Integer.TYPE)) {
-        targetType = Integer.class.getName();
-        primitiveConverterMethod = "intValue";
-        } else if (expectedType.equals(Long.TYPE)) {
-        targetType = Long.class.getName();
-        primitiveConverterMethod = "longValue";
-        } else if (expectedType.equals(Float.TYPE)) {
-        targetType = Float.class.getName();
-        primitiveConverterMethod = "floatValue";
-        } else if (expectedType.equals(Double.TYPE)) { 
-        targetType = Double.class.getName();
-        primitiveConverterMethod = "doubleValue";
+        String targetType = expectedType.getName();
+        String primitiveConverterMethod = null;
+        if (expectedType.isPrimitive()) {
+            if (expectedType.equals(Boolean.TYPE)) {
+                targetType = Boolean.class.getName();
+                primitiveConverterMethod = "booleanValue";
+            } else if (expectedType.equals(Byte.TYPE)) {
+                targetType = Byte.class.getName();
+                primitiveConverterMethod = "byteValue";
+            } else if (expectedType.equals(Character.TYPE)) {
+                targetType = Character.class.getName();
+                primitiveConverterMethod = "charValue";
+            } else if (expectedType.equals(Short.TYPE)) {
+                targetType = Short.class.getName();
+                primitiveConverterMethod = "shortValue";
+            } else if (expectedType.equals(Integer.TYPE)) {
+                targetType = Integer.class.getName();
+                primitiveConverterMethod = "intValue";
+            } else if (expectedType.equals(Long.TYPE)) {
+                targetType = Long.class.getName();
+                primitiveConverterMethod = "longValue";
+            } else if (expectedType.equals(Float.TYPE)) {
+                targetType = Float.class.getName();
+                primitiveConverterMethod = "floatValue";
+            } else if (expectedType.equals(Double.TYPE)) {
+                targetType = Double.class.getName();
+                primitiveConverterMethod = "doubleValue";
+            }
+        }
+
+        if (primitiveConverterMethod != null) {
+            XmlEscape = false;
         }
-    }
- 
-    if (primitiveConverterMethod != null) {
-        XmlEscape = false;
-    }
 
     /*
          * Build up the base call to the interpreter.
@@ -556,33 +567,37 @@ public class JspUtil {
         // Note that PageContextImpl implements VariableResolver and
         // the generated Servlet/SimpleTag implements FunctionMapper, so
         // that machinery is already in place (mroth).
-    targetType = toJavaSourceType(targetType);
-    StringBuffer call = new StringBuffer(
-             "(" + targetType + ") "
-               + "org.apache.struts2.jasper.runtime.PageContextImpl.proprietaryEvaluate"
-               + "(" + Generator.quote(expression) + ", "
-               +       targetType + ".class, "
-           +       "(PageContext)" + jspCtxt 
-               +       ", " + fnmapvar
-           + ", " + XmlEscape
-               + ")");
+        targetType = toJavaSourceType(targetType);
+        StringBuilder call = new StringBuilder(
+                "(" + targetType + ") "
+                        + "org.apache.struts2.jasper.runtime.PageContextImpl.proprietaryEvaluate"
+                        + "(" + Generator.quote(expression) + ", "
+                        + targetType + ".class, "
+                        + "(PageContext)" + jspCtxt
+                        + ", " + fnmapvar
+                        + ", " + XmlEscape
+                        + ")");
  
     /*
          * Add the primitive converter method if we need to.
          */
-    if (primitiveConverterMethod != null) {
-        call.insert(0, "(");
-        call.append(")." + primitiveConverterMethod + "()");
-    }
- 
-    return call.toString();
+        if (primitiveConverterMethod != null) {
+            call.insert(0, "(");
+            call.append(")." + primitiveConverterMethod + "()");
+        }
+
+        return call.toString();
     }
 
     /**
      * Validates the syntax of all ${} expressions within the given string.
-     * @param where the approximate location of the expressions in the JSP page
+     *
+     * @param where       the approximate location of the expressions in the JSP page
      * @param expressions a string containing zero or more "${}" expressions
-     * @param err an error dispatcher to use
+     * @param expectedType expected class type
+     * @param functionMapper function mapper
+     * @param err         an error dispatcher to use
+     * @throws JasperException in case of Jasper errors
      * @deprecated now delegated to the org.apache.el Package
      */
     public static void validateExpressions(Mark where,
@@ -592,24 +607,12 @@ public class JspUtil {
                                            ErrorDispatcher err)
             throws JasperException {
 
-//        try {
-//            
-//            JspUtil.expressionEvaluator.parseExpression( expressions, 
-//                expectedType, functionMapper );
-//        }
-//        catch( ELParseException e ) {
-//            err.jspError(where, "jsp.error.invalid.expression", expressions,
-//                e.toString() );
-//        }
-//        catch( ELException e ) {
-//            err.jspError(where, "jsp.error.invalid.expression", expressions,
-//                e.toString() );
-//        }
     }
 
     /**
      * Resets the temporary variable name.
      * (not thread-safe)
+     *
      * @deprecated
      */
     public static void resetTemporaryVariableName() {
@@ -617,7 +620,7 @@ public class JspUtil {
     }
 
     /**
-     * Generates a new temporary variable name.
+     * @return Generates a new temporary variable name.
      * (not thread-safe)
      * @deprecated
      */
@@ -626,206 +629,206 @@ public class JspUtil {
     }
 
     public static String coerceToPrimitiveBoolean(String s,
-                          boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToBoolean(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "false";
-        else
-        return Boolean.valueOf(s).toString();
-    }
+                                                  boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToBoolean(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "false";
+            else
+                return Boolean.valueOf(s).toString();
+        }
     }
 
     public static String coerceToBoolean(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Boolean) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Boolean.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Boolean(false)";
+        if (isNamedAttribute) {
+            return "(Boolean) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Boolean.class)";
         } else {
-        // Detect format error at translation time
-        return "new Boolean(" + Boolean.valueOf(s).toString() + ")";
+            if (s == null || s.length() == 0) {
+                return "new Boolean(false)";
+            } else {
+                // Detect format error at translation time
+                return "new Boolean(" + Boolean.valueOf(s).toString() + ")";
+            }
         }
     }
-    }
 
     public static String coerceToPrimitiveByte(String s,
-                           boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToByte(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "(byte) 0";
-        else
-        return "((byte)" + Byte.valueOf(s).toString() + ")";
-    }
+                                               boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToByte(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "(byte) 0";
+            else
+                return "((byte)" + Byte.valueOf(s).toString() + ")";
+        }
     }
 
     public static String coerceToByte(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Byte) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Byte.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Byte((byte) 0)";
+        if (isNamedAttribute) {
+            return "(Byte) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Byte.class)";
         } else {
-        // Detect format error at translation time
-        return "new Byte((byte)" + Byte.valueOf(s).toString() + ")";
+            if (s == null || s.length() == 0) {
+                return "new Byte((byte) 0)";
+            } else {
+                // Detect format error at translation time
+                return "new Byte((byte)" + Byte.valueOf(s).toString() + ")";
+            }
         }
     }
-    }
 
     public static String coerceToChar(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToChar(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "(char) 0";
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToChar(" + s + ")";
         } else {
-        char ch = s.charAt(0);
-        // this trick avoids escaping issues
-        return "((char) " + (int) ch + ")";
+            if (s == null || s.length() == 0) {
+                return "(char) 0";
+            } else {
+                char ch = s.charAt(0);
+                // this trick avoids escaping issues
+                return "((char) " + (int) ch + ")";
+            }
         }
     }
-    }
 
     public static String coerceToCharacter(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Character) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Character.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Character((char) 0)";
+        if (isNamedAttribute) {
+            return "(Character) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Character.class)";
         } else {
-        char ch = s.charAt(0);
-        // this trick avoids escaping issues
-        return "new Character((char) " + (int) ch + ")";
+            if (s == null || s.length() == 0) {
+                return "new Character((char) 0)";
+            } else {
+                char ch = s.charAt(0);
+                // this trick avoids escaping issues
+                return "new Character((char) " + (int) ch + ")";
+            }
         }
     }
-    }
 
     public static String coerceToPrimitiveDouble(String s,
-                         boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToDouble(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "(double) 0";
-        else
-        return Double.valueOf(s).toString();
-    }
+                                                 boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToDouble(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "(double) 0";
+            else
+                return Double.valueOf(s).toString();
+        }
     }
 
     public static String coerceToDouble(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Double) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Double.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Double(0)";
+        if (isNamedAttribute) {
+            return "(Double) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Double.class)";
         } else {
-        // Detect format error at translation time
-        return "new Double(" + Double.valueOf(s).toString() + ")";
+            if (s == null || s.length() == 0) {
+                return "new Double(0)";
+            } else {
+                // Detect format error at translation time
+                return "new Double(" + Double.valueOf(s).toString() + ")";
+            }
         }
     }
-    }
 
     public static String coerceToPrimitiveFloat(String s,
-                        boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToFloat(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "(float) 0";
-        else
-        return Float.valueOf(s).toString() + "f";
-    }
+                                                boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToFloat(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "(float) 0";
+            else
+                return Float.valueOf(s).toString() + "f";
+        }
     }
 
     public static String coerceToFloat(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Float) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Float.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Float(0)";
+        if (isNamedAttribute) {
+            return "(Float) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Float.class)";
         } else {
-        // Detect format error at translation time
-        return "new Float(" + Float.valueOf(s).toString() + "f)";
+            if (s == null || s.length() == 0) {
+                return "new Float(0)";
+            } else {
+                // Detect format error at translation time
+                return "new Float(" + Float.valueOf(s).toString() + "f)";
+            }
         }
     }
-    }
 
     public static String coerceToInt(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToInt(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "0";
-        else
-        return Integer.valueOf(s).toString();
-    }
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToInt(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "0";
+            else
+                return Integer.valueOf(s).toString();
+        }
     }
 
     public static String coerceToInteger(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Integer) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Integer.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Integer(0)";
+        if (isNamedAttribute) {
+            return "(Integer) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Integer.class)";
         } else {
-        // Detect format error at translation time
-        return "new Integer(" + Integer.valueOf(s).toString() + ")";
+            if (s == null || s.length() == 0) {
+                return "new Integer(0)";
+            } else {
+                // Detect format error at translation time
+                return "new Integer(" + Integer.valueOf(s).toString() + ")";
+            }
         }
     }
-    }
 
     public static String coerceToPrimitiveShort(String s,
-                        boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToShort(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "(short) 0";
-        else
-        return "((short) " + Short.valueOf(s).toString() + ")";
-    }
+                                                boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToShort(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "(short) 0";
+            else
+                return "((short) " + Short.valueOf(s).toString() + ")";
+        }
     }
-    
+
     public static String coerceToShort(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Short) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Short.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Short((short) 0)";
+        if (isNamedAttribute) {
+            return "(Short) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Short.class)";
         } else {
-        // Detect format error at translation time
-        return "new Short(\"" + Short.valueOf(s).toString() + "\")";
+            if (s == null || s.length() == 0) {
+                return "new Short((short) 0)";
+            } else {
+                // Detect format error at translation time
+                return "new Short(\"" + Short.valueOf(s).toString() + "\")";
+            }
         }
     }
-    }
-    
+
     public static String coerceToPrimitiveLong(String s,
-                           boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToLong(" + s + ")";
-    } else {
-        if (s == null || s.length() == 0)
-        return "(long) 0";
-        else
-        return Long.valueOf(s).toString() + "l";
-    }
+                                               boolean isNamedAttribute) {
+        if (isNamedAttribute) {
+            return "org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerceToLong(" + s + ")";
+        } else {
+            if (s == null || s.length() == 0)
+                return "(long) 0";
+            else
+                return Long.valueOf(s).toString() + "l";
+        }
     }
 
     public static String coerceToLong(String s, boolean isNamedAttribute) {
-    if (isNamedAttribute) {
-        return "(Long) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Long.class)";
-    } else {
-        if (s == null || s.length() == 0) {
-        return "new Long(0)";
+        if (isNamedAttribute) {
+            return "(Long) org.apache.struts2.jasper.runtime.JspRuntimeLibrary.coerce(" + s + ", Long.class)";
         } else {
-        // Detect format error at translation time
-        return "new Long(" + Long.valueOf(s).toString() + "l)";
+            if (s == null || s.length() == 0) {
+                return "new Long(0)";
+            } else {
+                // Detect format error at translation time
+                return "new Long(" + Long.valueOf(s).toString() + "l)";
+            }
         }
     }
-    }
 
     public static InputStream getInputStream(String fname, JarFile jarFile,
                                              JspCompilationContext ctxt,
@@ -858,40 +861,37 @@ public class JspUtil {
      * the given tag file path.
      *
      * @param path Tag file path
-     * @param err Error dispatcher
-     *
-     * @return Fully-qualified class name of the tag handler corresponding to 
+     * @param err  Error dispatcher
+     * @return Fully-qualified class name of the tag handler corresponding to
      * the given tag file path
-     * 
-     * @deprecated Use {@link #getTagHandlerClassName(String, String,
-     *             ErrorDispatcher)
-     *             See https://issues.apache.org/bugzilla/show_bug.cgi?id=46471
+     * @throws JasperException in case of Jasper errors
+     * @deprecated Use {@link #getTagHandlerClassName(String, String, ErrorDispatcher)}
+     * See https://issues.apache.org/bugzilla/show_bug.cgi?id=46471
      */
     public static String getTagHandlerClassName(String path,
-                        ErrorDispatcher err)
-                throws JasperException {
+                                                ErrorDispatcher err)
+            throws JasperException {
         return getTagHandlerClassName(path, null, err);
     }
-    
+
     /**
      * Gets the fully-qualified class name of the tag handler corresponding to
      * the given tag file path.
-     * 
-     * @param path
-     *            Tag file path
-     * @param err
-     *            Error dispatcher
-     * 
+     *
+     * @param path Tag file path
+     * @param urn urn
+     * @param err  Error dispatcher
      * @return Fully-qualified class name of the tag handler corresponding to
-     *         the given tag file path
+     * the given tag file path
+     * @throws JasperException in case of Jasper errors
      */
     public static String getTagHandlerClassName(String path, String urn,
-            ErrorDispatcher err) throws JasperException {
+                                                ErrorDispatcher err) throws JasperException {
 
         String className = null;
         int begin = 0;
         int index;
-        
+
         index = path.lastIndexOf(".tag");
         if (index == -1) {
             err.jspError("jsp.error.tagfile.badSuffix", path);
@@ -922,8 +922,8 @@ public class JspUtil {
         }
 
         className += makeJavaPackage(path.substring(begin));
-  
-       return className;
+
+        return className;
     }
 
     private static String getClassNameBase(String urn) {
@@ -939,11 +939,10 @@ public class JspUtil {
      * Converts the given path to a Java package or fully-qualified class name
      *
      * @param path Path to convert
-     *
      * @return Java package corresponding to the given path
      */
     public static final String makeJavaPackage(String path) {
-        String classNameComponents[] = split(path,"/");
+        String classNameComponents[] = split(path, "/");
         StringBuffer legalClassNames = new StringBuffer();
         for (int i = 0; i < classNameComponents.length; i++) {
             legalClassNames.append(makeJavaIdentifier(classNameComponents[i]));
@@ -956,42 +955,42 @@ public class JspUtil {
 
     /**
      * Splits a string into it's components.
+     *
      * @param path String to split
-     * @param pat Pattern to split at
+     * @param pat  Pattern to split at
      * @return the components of the path
      */
-    private static final String [] split(String path, String pat) {
+    private static final String[] split(String path, String pat) {
         Vector comps = new Vector();
         int pos = path.indexOf(pat);
         int start = 0;
-        while( pos >= 0 ) {
-            if(pos > start ) {
-                String comp = path.substring(start,pos);
+        while (pos >= 0) {
+            if (pos > start) {
+                String comp = path.substring(start, pos);
                 comps.add(comp);
             }
             start = pos + pat.length();
-            pos = path.indexOf(pat,start);
+            pos = path.indexOf(pat, start);
         }
-        if( start < path.length()) {
+        if (start < path.length()) {
             comps.add(path.substring(start));
         }
-        String [] result = new String[comps.size()];
-        for(int i=0; i < comps.size(); i++) {
-            result[i] = (String)comps.elementAt(i);
+        String[] result = new String[comps.size()];
+        for (int i = 0; i < comps.size(); i++) {
+            result[i] = (String) comps.elementAt(i);
         }
         return result;
     }
-            
+
     /**
      * Converts the given identifier to a legal Java identifier
      *
      * @param identifier Identifier to convert
-     *
      * @return Legal Java identifier corresponding to the given identifier
      */
     public static final String makeJavaIdentifier(String identifier) {
-        StringBuffer modifiedIdentifier = 
-            new StringBuffer(identifier.length());
+        StringBuffer modifiedIdentifier =
+                new StringBuffer(identifier.length());
         if (!Character.isJavaIdentifierStart(identifier.charAt(0))) {
             modifiedIdentifier.append('_');
         }
@@ -1010,9 +1009,11 @@ public class JspUtil {
         }
         return modifiedIdentifier.toString();
     }
-    
+
     /**
      * Mangle the specified character to create a legal Java class name.
+     * @param ch character
+     * @return new string
      */
     public static final String mangleChar(char ch) {
         char[] result = new char[5];
@@ -1025,19 +1026,21 @@ public class JspUtil {
     }
 
     /**
-     * Test whether the argument is a Java keyword
+     * @param key string to check
+     *
+     * @return Test whether the argument is a Java keyword
      */
     public static boolean isJavaKeyword(String key) {
         int i = 0;
         int j = javaKeywords.length;
         while (i < j) {
-            int k = (i+j)/2;
+            int k = (i + j) / 2;
             int result = javaKeywords[k].compareTo(key);
             if (result == 0) {
                 return true;
             }
             if (result < 0) {
-                i = k+1;
+                i = k + 1;
             } else {
                 j = k;
             }
@@ -1053,7 +1056,6 @@ public class JspUtil {
      * so that we don't have to worry about it being a Java key word.
      *
      * @param name Identifier to convert
-     *
      * @return Legal Java identifier corresponding to the given identifier
      */
     public static final String makeXmlJavaIdentifier(String name) {
@@ -1067,19 +1069,19 @@ public class JspUtil {
     }
 
     static InputStreamReader getReader(String fname, String encoding,
-            JarFile jarFile,
-            JspCompilationContext ctxt,
-            ErrorDispatcher err)
-    throws JasperException, IOException {
+                                       JarFile jarFile,
+                                       JspCompilationContext ctxt,
+                                       ErrorDispatcher err)
+            throws JasperException, IOException {
 
         return getReader(fname, encoding, jarFile, ctxt, err, 0);
     }
 
     static InputStreamReader getReader(String fname, String encoding,
-            JarFile jarFile,
-            JspCompilationContext ctxt,
-            ErrorDispatcher err, int skip)
-    throws JasperException, IOException {
+                                       JarFile jarFile,
+                                       JspCompilationContext ctxt,
+                                       ErrorDispatcher err, int skip)
+            throws JasperException, IOException {
 
         InputStreamReader reader = null;
         InputStream in = getInputStream(fname, jarFile, ctxt, err);
@@ -1094,16 +1096,16 @@ public class JspUtil {
 
         return reader;
     }
-    
+
     /**
      * Handles taking input from TLDs
-     * 'java.lang.Object' -> 'java.lang.Object.class'
-     * 'int' -> 'int.class'
-     * 'void' -> 'Void.TYPE'
-     * 'int[]' -> 'int[].class'
-     * 
-     * @param type
-     * @return
+     * 'java.lang.Object' -&gt; 'java.lang.Object.class'
+     * 'int' -&gt; 'int.class'
+     * 'void' -&gt; 'Void.TYPE'
+     * 'int[]' -&gt; 'int[].class'
+     *
+     * @param type java source type
+     * @return type
      */
     public static String toJavaSourceTypeFromTld(String type) {
         if (type == null || "void".equals(type)) {
@@ -1113,49 +1115,71 @@ public class JspUtil {
     }
 
     /**
-     * Class.getName() return arrays in the form "[[[<et>", where et,
-     * the element type can be one of ZBCDFIJS or L<classname>;
+     * Class.getName() return arrays in the form "[[[&lt;et&gt;", where et,
+     * the element type can be one of ZBCDFIJS or L&lt;classname&gt;;
      * It is converted into forms that can be understood by javac.
+     *
+     * @param type source type
+     * @return java source type
      */
     public static String toJavaSourceType(String type) {
 
-    if (type.charAt(0) != '[') {
-        return type;
-    }
+        if (type.charAt(0) != '[') {
+            return type;
+        }
 
-    int dims = 1;
-    String t = null;
-    for (int i = 1; i < type.length(); i++) {
-        if (type.charAt(i) == '[') {
-        dims++;
-        } else {
-        switch (type.charAt(i)) {
-        case 'Z': t = "boolean"; break;
-        case 'B': t = "byte"; break;
-        case 'C': t = "char"; break;
-        case 'D': t = "double"; break;
-        case 'F': t = "float"; break;
-        case 'I': t = "int"; break;
-        case 'J': t = "long"; break;
-        case 'S': t = "short"; break;
-        case 'L': t = type.substring(i+1, type.indexOf(';')); break;
+        int dims = 1;
+        String t = null;
+        for (int i = 1; i < type.length(); i++) {
+            if (type.charAt(i) == '[') {
+                dims++;
+            } else {
+                switch (type.charAt(i)) {
+                    case 'Z':
+                        t = "boolean";
+                        break;
+                    case 'B':
+                        t = "byte";
+                        break;
+                    case 'C':
+                        t = "char";
+                        break;
+                    case 'D':
+                        t = "double";
+                        break;
+                    case 'F':
+                        t = "float";
+                        break;
+                    case 'I':
+                        t = "int";
+                        break;
+                    case 'J':
+                        t = "long";
+                        break;
+                    case 'S':
+                        t = "short";
+                        break;
+                    case 'L':
+                        t = type.substring(i + 1, type.indexOf(';'));
+                        break;
+                }
+                break;
+            }
         }
-        break;
+        StringBuilder resultType = new StringBuilder(t);
+        for (; dims > 0; dims--) {
+            resultType.append("[]");
         }
-    }
-    StringBuffer resultType = new StringBuffer(t);
-    for (; dims > 0; dims--) {
-        resultType.append("[]");
-    }
-    return resultType.toString();
+        return resultType.toString();
     }
 
     /**
      * Compute the canonical name from a Class instance.  Note that a
-     * simple replacment of '$' with '.' of a binary name would not work,
+     * simple replacement of '$' with '.' of a binary name would not work,
      * as '$' is a legal Java Identifier character.
+     *
      * @param c A instance of java.lang.Class
-     * @return  The canonical name of c.
+     * @return The canonical name of c.
      */
     public static String getCanonicalName(Class c) {
 
@@ -1166,11 +1190,11 @@ public class JspUtil {
             return binaryName;
         }
 
-        StringBuffer buf = new StringBuffer(binaryName);
+        StringBuilder buf = new StringBuilder(binaryName);
         do {
             buf.setCharAt(c.getName().length(), '.');
             c = c.getDeclaringClass();
-        } while ( c != null);
+        } while (c != null);
 
         return buf.toString();
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ServletWriter.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ServletWriter.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ServletWriter.java
index 91f6191..7507018 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ServletWriter.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ServletWriter.java
@@ -20,7 +20,7 @@ import java.io.IOException;
 import java.io.PrintWriter;
 
 /**
- * This is what is used to generate servlets. 
+ * This is what is used to generate servlets.
  *
  * @author Anil K. Vijendran
  * @author Kin-man Chung
@@ -35,20 +35,20 @@ public class ServletWriter {
 
     // The sink writer:
     PrintWriter writer;
-    
+
     // servlet line numbers start from 1
     private int javaLine = 1;
 
 
     public ServletWriter(PrintWriter writer) {
-	this.writer = writer;
+        this.writer = writer;
     }
 
     public void close() throws IOException {
-	writer.close();
+        writer.close();
     }
 
-    
+
     // -------------------- Access informations --------------------
 
     public int getJavaLine() {
@@ -59,30 +59,32 @@ public class ServletWriter {
     // -------------------- Formatting --------------------
 
     public void pushIndent() {
-	virtual_indent += TAB_WIDTH;
-	if (virtual_indent >= 0 && virtual_indent <= SPACES.length())
-	    indent = virtual_indent;
+        virtual_indent += TAB_WIDTH;
+        if (virtual_indent >= 0 && virtual_indent <= SPACES.length())
+            indent = virtual_indent;
     }
 
     public void popIndent() {
-	virtual_indent -= TAB_WIDTH;
-	if (virtual_indent >= 0 && virtual_indent <= SPACES.length())
-	    indent = virtual_indent;
+        virtual_indent -= TAB_WIDTH;
+        if (virtual_indent >= 0 && virtual_indent <= SPACES.length())
+            indent = virtual_indent;
     }
 
     /**
      * Print a standard comment for echo outputed chunk.
-     * @param start The starting position of the JSP chunk being processed. 
-     * @param stop  The ending position of the JSP chunk being processed. 
+     *
+     * @param start The starting position of the JSP chunk being processed.
+     * @param stop  The ending position of the JSP chunk being processed.
+     * @param chars characters as array
      */
     public void printComment(Mark start, Mark stop, char[] chars) {
         if (start != null && stop != null) {
-            println("// from="+start);
-            println("//   to="+stop);
+            println("// from=" + start);
+            println("//   to=" + stop);
         }
-        
+
         if (chars != null)
-            for(int i = 0; i < chars.length;) {
+            for (int i = 0; i < chars.length; ) {
                 printin();
                 print("// ");
                 while (chars[i] != '\n' && i < chars.length)
@@ -92,10 +94,12 @@ public class ServletWriter {
 
     /**
      * Prints the given string followed by '\n'
+     *
+     * @param s string to print
      */
     public void println(String s) {
         javaLine++;
-	writer.println(s);
+        writer.println(s);
     }
 
     /**
@@ -103,74 +107,96 @@ public class ServletWriter {
      */
     public void println() {
         javaLine++;
-	writer.println("");
+        writer.println("");
     }
 
     /**
      * Prints the current indention
      */
     public void printin() {
-	writer.print(SPACES.substring(0, indent));
+        writer.print(SPACES.substring(0, indent));
     }
 
     /**
      * Prints the current indention, followed by the given string
+     *
+     * @param s string to print
      */
     public void printin(String s) {
-	writer.print(SPACES.substring(0, indent));
-	writer.print(s);
+        writer.print(SPACES.substring(0, indent));
+        writer.print(s);
     }
 
     /**
      * Prints the current indention, and then the string, and a '\n'.
+     *
+     * @param s string to print
      */
     public void printil(String s) {
         javaLine++;
-	writer.print(SPACES.substring(0, indent));
-	writer.println(s);
+        writer.print(SPACES.substring(0, indent));
+        writer.println(s);
     }
 
     /**
+     * <p>
      * Prints the given char.
+     * </p>
      *
      * Use println() to print a '\n'.
+     *
+     * @param c char to print
      */
     public void print(char c) {
-	writer.print(c);
+        writer.print(c);
     }
 
     /**
      * Prints the given int.
+     *
+     * @param i int to print
      */
     public void print(int i) {
-	writer.print(i);
+        writer.print(i);
     }
 
     /**
+     * <p>
      * Prints the given string.
+     * </p>
      *
+     * <p>
      * The string must not contain any '\n', otherwise the line count will be
      * off.
+     * </p>
+     *
+     * @param s string to print
      */
     public void print(String s) {
-	writer.print(s);
+        writer.print(s);
     }
 
     /**
+     * <p>
      * Prints the given string.
+     * </p>
      *
+     * <p>
      * If the string spans multiple lines, the line count will be adjusted
      * accordingly.
+     * </p>
+     *
+     * @param s string to print
      */
     public void printMultiLn(String s) {
         int index = 0;
 
         // look for hidden newlines inside strings
-        while ((index=s.indexOf('\n',index)) > -1 ) {
+        while ((index = s.indexOf('\n', index)) > -1) {
             javaLine++;
             index++;
         }
 
-	writer.print(s);
+        writer.print(s);
     }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapGenerator.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapGenerator.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapGenerator.java
index 12cf227..4bbccf6 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapGenerator.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapGenerator.java
@@ -55,7 +55,7 @@ public class SmapGenerator {
     // Methods for adding mapping data
 
     /**
-     * Sets the filename (without path information) for the generated
+     * @param x Sets the filename (without path information) for the generated
      * source file.  E.g., "foo$jsp.java".
      */
     public synchronized void setOutputFileName(String x) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapStratum.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapStratum.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapStratum.java
index 801a02e..a1982c6 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapStratum.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapStratum.java
@@ -44,14 +44,16 @@ public class SmapStratum {
         private int outputLineIncrement = 1;
         private boolean lineFileIDSet = false;
 
-        /** Sets InputStartLine. */
+        /**
+         * @param inputStartLine  Sets InputStartLine.
+         */
         public void setInputStartLine(int inputStartLine) {
             if (inputStartLine < 0)
                 throw new IllegalArgumentException("" + inputStartLine);
             this.inputStartLine = inputStartLine;
         }
 
-        /** Sets OutputStartLine. */
+        /** @param outputStartLine Sets OutputStartLine. */
         public void setOutputStartLine(int outputStartLine) {
             if (outputStartLine < 0)
                 throw new IllegalArgumentException("" + outputStartLine);
@@ -59,7 +61,7 @@ public class SmapStratum {
         }
 
         /**
-             * Sets lineFileID.  Should be called only when different from
+             * @param lineFileID  Sets lineFileID.  Should be called only when different from
              * that of prior LineInfo object (in any given context) or 0
              * if the current LineInfo has no (logical) predecessor.
              * <tt>LineInfo</tt> will print this file number no matter what.
@@ -71,14 +73,14 @@ public class SmapStratum {
             this.lineFileIDSet = true;
         }
 
-        /** Sets InputLineCount. */
+        /** @param inputLineCount  Sets InputLineCount. */
         public void setInputLineCount(int inputLineCount) {
             if (inputLineCount < 0)
                 throw new IllegalArgumentException("" + inputLineCount);
             this.inputLineCount = inputLineCount;
         }
 
-        /** Sets OutputLineIncrement. */
+        /** @param outputLineIncrement Sets OutputLineIncrement. */
         public void setOutputLineIncrement(int outputLineIncrement) {
             if (outputLineIncrement < 0)
                 throw new IllegalArgumentException("" + outputLineIncrement);
@@ -86,7 +88,7 @@ public class SmapStratum {
         }
 
         /**
-         * Retrieves the current LineInfo as a String, print all values
+         * @return Retrieves the current LineInfo as a String, print all values
          * only when appropriate (but LineInfoID if and only if it's been
          * specified, as its necessity is sensitive to context).
          */
@@ -170,13 +172,7 @@ public class SmapStratum {
      */
     public void optimizeLineSection() {
 
-/* Some debugging code
-        for (int i = 0; i < lineData.size(); i++) {
-            LineInfo li = (LineInfo)lineData.get(i);
-            System.out.print(li.toString());
-        }
-*/
-        //Incorporate each LineInfo into the previous LineInfo's 
+        //Incorporate each LineInfo into the previous LineInfo's
         //outputLineIncrement, if possible
         int i = 0;
         while (i < lineData.size() - 1) {
@@ -280,14 +276,14 @@ public class SmapStratum {
     // Methods to retrieve information
 
     /**
-     * Returns the name of the stratum.
+     * @return  the name of the stratum.
      */
     public String getStratumName() {
         return stratumName;
     }
 
     /**
-     * Returns the given stratum as a String:  a StratumSection,
+     * @return  the given stratum as a String:  a StratumSection,
      * followed by at least one FileSection and at least one LineSection.
      */
     public String getString() {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapUtil.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapUtil.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapUtil.java
index ea18fa9..f49139e 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapUtil.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/SmapUtil.java
@@ -62,6 +62,7 @@ public class SmapUtil {
      * @param ctxt Current compilation context
      * @param pageNodes The current JSP page
      * @return a SMAP for the page
+     * @throws IOException in case of IO errors
      */
     public static String[] generateSmap(
         JspCompilationContext ctxt,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/TldLocationsCache.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/TldLocationsCache.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/TldLocationsCache.java
index 4c9b0f4..239fcdf 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/TldLocationsCache.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/TldLocationsCache.java
@@ -45,18 +45,26 @@ import org.apache.juli.logging.LogFactory;
 import org.apache.commons.io.FileUtils;
 
 /**
+ * <p>
  * A container for all tag libraries that are defined "globally"
  * for the web application.
- * 
+ * </p>
+ *
+ * <p>
  * Tag Libraries can be defined globally in one of two ways:
- *   1. Via <taglib> elements in web.xml:
+ * </p>
+ *
+ * <ol>
+ *   <li>Via &lt;taglib&gt; elements in web.xml:
  *      the uri and location of the tag-library are specified in
- *      the <taglib> element.
- *   2. Via packaged jar files that contain .tld files
+ *      the &lt;taglib&gt; element.</li>
+ *   <li>Via packaged jar files that contain .tld files
  *      within the META-INF directory, or some subdirectory
- *      of it. The taglib is 'global' if it has the <uri>
- *      element defined.
+ *      of it. The taglib is 'global' if it has the &lt;uri&gt;
+ *      element defined.</li>
+ * </ol>
  *
+ * <p>
  * A mapping between the taglib URI and its associated TaglibraryInfoImpl
  * is maintained in this container.
  * Actually, that's what we'd like to do. However, because of the
@@ -65,13 +73,16 @@ import org.apache.commons.io.FileUtils;
  * across page invocations. A bug has been submitted to the spec lead.
  * In the mean time, all we do is save the 'location' where the
  * TLD associated with a taglib URI can be found.
+ * </p>
  *
+ * <p>
  * When a JSP page has a taglib directive, the mappings in this container
  * are first searched (see method getLocation()).
  * If a mapping is found, then the location of the TLD is returned.
  * If no mapping is found, then the uri specified
  * in the taglib directive is to be interpreted as the location for
  * the TLD of this tag library.
+ * </p>
  *
  * @author Pierre Delisle
  * @author Jan Luehe
@@ -116,7 +127,7 @@ public class TldLocationsCache {
      * Initializes the set of JARs that are known not to contain any TLDs
      */
     static {
-        noTldJars = new HashSet<String>();
+        noTldJars = new HashSet<>();
         // Bootstrap JARs
         noTldJars.add("bootstrap.jar");
         noTldJars.add("commons-daemon.jar");
@@ -215,6 +226,8 @@ public class TldLocationsCache {
      * second element denotes the name of the TLD entry in the jar file.
      * Returns null if the uri is not associated with any tag library 'exposed'
      * in the web application.
+     *
+     * @throws JasperException in case of Jasper errors
      */
     public String[] getLocation(String uri) throws JasperException {
         if (!initialized) {
@@ -223,8 +236,10 @@ public class TldLocationsCache {
         return (String[]) mappings.get(uri);
     }
 
-    /** 
-     * Returns the type of a URI:
+    /**
+     * @param uri the URI
+     *
+     * @return  the type of a URI:
      *     ABS_URI
      *     ROOT_REL_URI
      *     NOROOT_REL_URI
@@ -342,6 +357,7 @@ public class TldLocationsCache {
      * @param conn The JarURLConnection to the JAR file to scan
      * @param ignore true if any exceptions raised when processing the given
      * JAR should be ignored, false otherwise
+     * @throws JasperException in case of Jasper errors
      */
     private void scanJar(JarURLConnection conn, boolean ignore)
                 throws JasperException {
@@ -545,7 +561,7 @@ public class TldLocationsCache {
     }
 
     /**
-     * Returns a list of absolute paths of the locations in the cache
+     * @return  a list of absolute paths of the locations in the cache
      */
     public Set<String> getAbsolutePathsOfLocations() {
         Set<String> paths = new HashSet<String>(mappings.size());

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/tagplugin/TagPluginContext.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/tagplugin/TagPluginContext.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/tagplugin/TagPluginContext.java
index 1194572..8b0a122 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/tagplugin/TagPluginContext.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/tagplugin/TagPluginContext.java
@@ -61,16 +61,21 @@ public interface TagPluginContext {
 
     /**
      * Generate Java source codes
+     *
+     * @param s string
      */
     void generateJavaSource(String s);
 
     /**
+     * @param attribute the attribute to check
      * @return true if the attribute is specified and its value is a
      *         translation-time constant.
      */
     boolean isConstantAttribute(String attribute);
 
     /**
+     * @param attribute The specified attribute
+     *
      * @return A string that is the value of a constant attribute.  Undefined
      *         if the attribute is not a (translation-time) constant.
      *         null if the attribute is not specified.
@@ -112,12 +117,16 @@ public interface TagPluginContext {
     /**
      * Associate the attribute with a value in the current tagplugin context.
      * The plugin attributes can be used for communication among tags that
-     * must work together as a group.  See <c:when> for an example.
+     * must work together as a group.  See &lt;c:when&gt; for an example.
+     *
+     * @param attr The specified attribute
+     * @param value the value
      */
     void setPluginAttribute(String attr, Object value);
 
     /**
-     * Get the value of an attribute in the current tagplugin context.
+     * @param attr The specified attribute
+     * @return  the value of an attribute in the current tagplugin context.
      */
     Object getPluginAttribute(String attr);
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/AnnotationHelper.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/AnnotationHelper.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/AnnotationHelper.java
index 36a9c56..339d443 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/AnnotationHelper.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/AnnotationHelper.java
@@ -37,6 +37,13 @@ public class AnnotationHelper {
     /**
      * Call postConstruct method on the specified instance. Note: In Jasper, this
      * calls naming resources injection as well.
+     *
+     * @param processor annotation processor
+     * @param instance object instance
+     *
+     * @throws IllegalAccessException on error
+     * @throws InvocationTargetException on error
+     * @throws NamingException on error
      */
     public static void postConstruct(AnnotationProcessor processor, Object instance)
         throws IllegalAccessException, InvocationTargetException, NamingException {
@@ -49,6 +56,12 @@ public class AnnotationHelper {
     
     /**
      * Call preDestroy method on the specified instance.
+     *
+     * @param processor annotation processor
+     * @param instance object instance
+     *
+     * @throws IllegalAccessException  on error
+     * @throws InvocationTargetException on error
      */
     public static void preDestroy(AnnotationProcessor processor, Object instance)
         throws IllegalAccessException, InvocationTargetException {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/BodyContentImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/BodyContentImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/BodyContentImpl.java
index 8752d57..6561d97 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/BodyContentImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/BodyContentImpl.java
@@ -39,10 +39,8 @@ import org.apache.struts2.jasper.Constants;
  */
 public class BodyContentImpl extends BodyContent {
     
-    private static final String LINE_SEPARATOR = 
-        System.getProperty("line.separator");
-    private static final boolean LIMIT_BUFFER = 
-        Boolean.valueOf(System.getProperty("org.apache.struts2.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "false")).booleanValue();
+    private static final String LINE_SEPARATOR = System.getProperty("line.separator");
+    private static final boolean LIMIT_BUFFER = Boolean.valueOf(System.getProperty("org.apache.struts2.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "false"));
     
     private char[] cb;
     private int nextChar;
@@ -53,6 +51,8 @@ public class BodyContentImpl extends BodyContent {
     
     /**
      * Constructor.
+     *
+     * @param enclosingWriter jsp writer
      */
     public BodyContentImpl(JspWriter enclosingWriter) {
         super(enclosingWriter);
@@ -87,10 +87,13 @@ public class BodyContentImpl extends BodyContent {
      * directly to the underlying stream.  Thus redundant
      * <code>DiscardableBufferedWriter</code>s will not copy data
      * unnecessarily.
+     * </p>
      *
      * @param cbuf A character array
      * @param off Offset from which to start reading characters
      * @param len Number of characters to write
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(char[] cbuf, int off, int len) throws IOException {
         if (writer != null) {
@@ -116,6 +119,10 @@ public class BodyContentImpl extends BodyContent {
     /**
      * Write an array of characters.  This method cannot be inherited from the
      * Writer class because it must suppress I/O exceptions.
+     *
+     * @param buf array of characters
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(char[] buf) throws IOException {
         if (writer != null) {
@@ -131,6 +138,8 @@ public class BodyContentImpl extends BodyContent {
      * @param s String to be written
      * @param off Offset from which to start reading characters
      * @param len Number of characters to be written
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(String s, int off, int len) throws IOException {
         if (writer != null) {
@@ -148,6 +157,10 @@ public class BodyContentImpl extends BodyContent {
     /**
      * Write a string.  This method cannot be inherited from the Writer class
      * because it must suppress I/O exceptions.
+     *
+     * @param s string to write
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(String s) throws IOException {
         if (writer != null) {
@@ -180,7 +193,7 @@ public class BodyContentImpl extends BodyContent {
      * #write(int)}</code> method.
      *
      * @param b The <code>boolean</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(boolean b) throws IOException {
         if (writer != null) {
@@ -197,7 +210,7 @@ public class BodyContentImpl extends BodyContent {
      * #write(int)}</code> method.
      *
      * @param c The <code>char</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(char c) throws IOException {
         if (writer != null) {
@@ -215,7 +228,7 @@ public class BodyContentImpl extends BodyContent {
      * method.
      *
      * @param i The <code>int</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(int i) throws IOException {
         if (writer != null) {
@@ -233,7 +246,7 @@ public class BodyContentImpl extends BodyContent {
      * <code>{@link #write(int)}</code> method.
      *
      * @param l The <code>long</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(long l) throws IOException {
         if (writer != null) {
@@ -251,7 +264,7 @@ public class BodyContentImpl extends BodyContent {
      * <code>{@link #write(int)}</code> method.
      *
      * @param f The <code>float</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(float f) throws IOException {
         if (writer != null) {
@@ -269,7 +282,7 @@ public class BodyContentImpl extends BodyContent {
      * #write(int)}</code> method.
      *
      * @param d The <code>double</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(double d) throws IOException {
         if (writer != null) {
@@ -288,7 +301,7 @@ public class BodyContentImpl extends BodyContent {
      * @param s The array of chars to be printed
      *
      * @throws NullPointerException If <code>s</code> is <code>null</code>
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(char[] s) throws IOException {
         if (writer != null) {
@@ -306,7 +319,7 @@ public class BodyContentImpl extends BodyContent {
      * <code>{@link #write(int)}</code> method.
      *
      * @param s The <code>String</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(String s) throws IOException {
         if (s == null) s = "null";
@@ -325,7 +338,7 @@ public class BodyContentImpl extends BodyContent {
      * <code>{@link #write(int)}</code> method.
      *
      * @param obj The <code>Object</code> to be printed
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void print(Object obj) throws IOException {
         if (writer != null) {
@@ -341,7 +354,7 @@ public class BodyContentImpl extends BodyContent {
      * <code>line.separator</code>, and is not necessarily a single newline
      * character (<code>'\n'</code>).
      *
-     * @throws IOException
+     * @throws IOException in case of IO errors
      */
     public void println() throws IOException {
         newLine();
@@ -352,7 +365,9 @@ public class BodyContentImpl extends BodyContent {
      * as though it invokes <code>{@link #print(boolean)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write boolean
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(boolean x) throws IOException {
         print(x);
@@ -364,7 +379,9 @@ public class BodyContentImpl extends BodyContent {
      * though it invokes <code>{@link #print(char)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write char
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(char x) throws IOException {
         print(x);
@@ -376,7 +393,9 @@ public class BodyContentImpl extends BodyContent {
      * though it invokes <code>{@link #print(int)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write int
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(int x) throws IOException {
         print(x);
@@ -388,7 +407,8 @@ public class BodyContentImpl extends BodyContent {
      * as though it invokes <code>{@link #print(long)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write long
+     * @throws IOException in case of IO errors
      */
     public void println(long x) throws IOException {
         print(x);
@@ -400,7 +420,9 @@ public class BodyContentImpl extends BodyContent {
      * behaves as though it invokes <code>{@link #print(float)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write float
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(float x) throws IOException {
         print(x);
@@ -412,7 +434,9 @@ public class BodyContentImpl extends BodyContent {
      * line.  This method behaves as though it invokes <code>{@link
      * #print(double)}</code> and then <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write double
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(double x) throws IOException{
         print(x);
@@ -424,7 +448,8 @@ public class BodyContentImpl extends BodyContent {
      * behaves as though it invokes <code>{@link #print(char[])}</code> and
      * then <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write char array
+     * @throws IOException in case of IO errors
      */
     public void println(char x[]) throws IOException {
         print(x);
@@ -436,7 +461,8 @@ public class BodyContentImpl extends BodyContent {
      * though it invokes <code>{@link #print(String)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write string
+     * @throws IOException in case of IO errors
      */
     public void println(String x) throws IOException {
         print(x);
@@ -448,7 +474,8 @@ public class BodyContentImpl extends BodyContent {
      * though it invokes <code>{@link #print(Object)}</code> and then
      * <code>{@link #println()}</code>.
      *
-     * @throws IOException
+     * @param x write object
+     * @throws IOException in case of IO errors
      */
     public void println(Object x) throws IOException {
         print(x);
@@ -563,7 +590,7 @@ public class BodyContentImpl extends BodyContent {
     }
     
     /**
-     * Sets the writer to which all output is written.
+     * @param writer Sets the writer to which all output is written.
      */
     void setWriter(Writer writer) {
         this.writer = writer;
@@ -577,7 +604,7 @@ public class BodyContentImpl extends BodyContent {
         if (closed) throw new IOException("Stream closed");
     }
     
-    /**
+    /*
      * Reallocates buffer since the spec requires it to be unbounded.
      */
     private void reAllocBuff(int len) {


[02/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLEncodingDetector.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLEncodingDetector.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLEncodingDetector.java
index b251db8..01ecba3 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLEncodingDetector.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLEncodingDetector.java
@@ -25,21 +25,17 @@
 
 package org.apache.struts2.jasper.xmlparser;
 
-import java.io.EOFException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Locale;
-import java.util.jar.JarFile;
-
 import org.apache.struts2.jasper.JasperException;
 import org.apache.struts2.jasper.JspCompilationContext;
 import org.apache.struts2.jasper.compiler.ErrorDispatcher;
 import org.apache.struts2.jasper.compiler.JspUtil;
 
+import java.io.*;
+import java.util.Locale;
+import java.util.jar.JarFile;
+
 public class XMLEncodingDetector {
-    
+
     private InputStream stream;
     private String encoding;
     private boolean isEncodingSetInProlog;
@@ -47,7 +43,7 @@ public class XMLEncodingDetector {
     private int skip;
     private Boolean isBigEndian;
     private Reader reader;
-    
+
     // org.apache.xerces.impl.XMLEntityManager fields
     public static final int DEFAULT_BUFFER_SIZE = 2048;
     public static final int DEFAULT_XMLDECL_BUFFER_SIZE = 64;
@@ -55,7 +51,7 @@ public class XMLEncodingDetector {
     private SymbolTable fSymbolTable;
     private XMLEncodingDetector fCurrentEntity;
     private int fBufferSize = DEFAULT_BUFFER_SIZE;
-    
+
     // org.apache.xerces.impl.XMLEntityManager.ScannedEntity fields
     private int lineNumber = 1;
     private int columnNumber = 1;
@@ -64,15 +60,15 @@ public class XMLEncodingDetector {
     private int position;
     private int count;
     private boolean mayReadChunks = false;
-    
+
     // org.apache.xerces.impl.XMLScanner fields
-    private XMLString fString = new XMLString();    
+    private XMLString fString = new XMLString();
     private XMLStringBuffer fStringBuffer = new XMLStringBuffer();
     private XMLStringBuffer fStringBuffer2 = new XMLStringBuffer();
     private final static String fVersionSymbol = "version";
     private final static String fEncodingSymbol = "encoding";
     private final static String fStandaloneSymbol = "standalone";
-    
+
     // org.apache.xerces.impl.XMLDocumentFragmentScannerImpl fields
     private int fMarkupDepth = 0;
     private String[] fStrings = new String[3];
@@ -88,25 +84,34 @@ public class XMLEncodingDetector {
     }
 
     /**
+     * <p>
      * Autodetects the encoding of the XML document supplied by the given
      * input stream.
+     * </p>
      *
+     * <p>
      * Encoding autodetection is done according to the XML 1.0 specification,
      * Appendix F.1: Detection Without External Encoding Information.
+     * </p>
      *
+     * @param fname   file name
+     * @param jarFile jar file
+     * @param ctxt    compilation context
+     * @param err     error dispatcher
      * @return Two-element array, where the first element (of type
      * java.lang.String) contains the name of the (auto)detected encoding, and
-     * the second element (of type java.lang.Boolean) specifies whether the 
+     * the second element (of type java.lang.Boolean) specifies whether the
      * encoding was specified using the 'encoding' attribute of an XML prolog
      * (TRUE) or autodetected (FALSE).
+     * @throws IOException     in case of IO errors
+     * @throws JasperException in case of Jasper errors
      */
     public static Object[] getEncoding(String fname, JarFile jarFile,
                                        JspCompilationContext ctxt,
                                        ErrorDispatcher err)
-        throws IOException, JasperException
-    {
+            throws IOException, JasperException {
         InputStream inStream = JspUtil.getInputStream(fname, jarFile, ctxt,
-                                                      err);
+                err);
         XMLEncodingDetector detector = new XMLEncodingDetector();
         Object[] ret = detector.getEncoding(inStream, err);
         inStream.close();
@@ -115,92 +120,93 @@ public class XMLEncodingDetector {
     }
 
     private Object[] getEncoding(InputStream in, ErrorDispatcher err)
-        throws IOException, JasperException
-    {
+            throws IOException, JasperException {
         this.stream = in;
-        this.err=err;
+        this.err = err;
         createInitialReader();
         scanXMLDecl();
-	
-        return new Object[] { this.encoding,
-                              Boolean.valueOf(this.isEncodingSetInProlog),
-                              Boolean.valueOf(this.isBomPresent),
-                              Integer.valueOf(this.skip) };
+
+        return new Object[]{this.encoding,
+                Boolean.valueOf(this.isEncodingSetInProlog),
+                Boolean.valueOf(this.isBomPresent),
+                Integer.valueOf(this.skip)};
     }
-    
+
     // stub method
     void endEntity() {
     }
-    
+
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.startEntity()
     private void createInitialReader() throws IOException, JasperException {
 
-	// wrap this stream in RewindableInputStream
-	stream = new RewindableInputStream(stream);
-
-	// perform auto-detect of encoding if necessary
-	if (encoding == null) {
-	    // read first four bytes and determine encoding
-	    final byte[] b4 = new byte[4];
-	    int count = 0;
-	    for (; count<4; count++ ) {
-		b4[count] = (byte)stream.read();
-	    }
-	    if (count == 4) {
-		Object [] encodingDesc = getEncodingName(b4, count);
-		encoding = (String)(encodingDesc[0]);
-		isBigEndian = (Boolean)(encodingDesc[1]);
-        
-        if (encodingDesc.length > 3) {
-            isBomPresent = (Boolean)(encodingDesc[2]);
-            skip = (Integer)(encodingDesc[3]);
-        } else {
-            isBomPresent = true;
-            skip = (Integer)(encodingDesc[2]);
-        }
-
-		stream.reset();
-		// Special case UTF-8 files with BOM created by Microsoft
-		// tools. It's more efficient to consume the BOM than make
-		// the reader perform extra checks. -Ac
-		if (count > 2 && encoding.equals("UTF-8")) {
-		    int b0 = b4[0] & 0xFF;
-		    int b1 = b4[1] & 0xFF;
-		    int b2 = b4[2] & 0xFF;
-		    if (b0 == 0xEF && b1 == 0xBB && b2 == 0xBF) {
-			// ignore first three bytes...
-			stream.skip(3);
-		    }
-		}
-		reader = createReader(stream, encoding, isBigEndian);
-	    } else {
-		reader = createReader(stream, encoding, isBigEndian);
-	    }
-	}
+        // wrap this stream in RewindableInputStream
+        stream = new RewindableInputStream(stream);
+
+        // perform auto-detect of encoding if necessary
+        if (encoding == null) {
+            // read first four bytes and determine encoding
+            final byte[] b4 = new byte[4];
+            int count = 0;
+            for (; count < 4; count++) {
+                b4[count] = (byte) stream.read();
+            }
+            if (count == 4) {
+                Object[] encodingDesc = getEncodingName(b4, count);
+                encoding = (String) (encodingDesc[0]);
+                isBigEndian = (Boolean) (encodingDesc[1]);
+
+                if (encodingDesc.length > 3) {
+                    isBomPresent = (Boolean) (encodingDesc[2]);
+                    skip = (Integer) (encodingDesc[3]);
+                } else {
+                    isBomPresent = true;
+                    skip = (Integer) (encodingDesc[2]);
+                }
+
+                stream.reset();
+                // Special case UTF-8 files with BOM created by Microsoft
+                // tools. It's more efficient to consume the BOM than make
+                // the reader perform extra checks. -Ac
+                if (count > 2 && encoding.equals("UTF-8")) {
+                    int b0 = b4[0] & 0xFF;
+                    int b1 = b4[1] & 0xFF;
+                    int b2 = b4[2] & 0xFF;
+                    if (b0 == 0xEF && b1 == 0xBB && b2 == 0xBF) {
+                        // ignore first three bytes...
+                        stream.skip(3);
+                    }
+                }
+                reader = createReader(stream, encoding, isBigEndian);
+            } else {
+                reader = createReader(stream, encoding, isBigEndian);
+            }
+        }
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.createReader
+
     /**
      * Creates a reader capable of reading the given input stream in
      * the specified encoding.
      *
-     * @param inputStream  The input stream.
-     * @param encoding     The encoding name that the input stream is
-     *                     encoded using. If the user has specified that
-     *                     Java encoding names are allowed, then the
-     *                     encoding name may be a Java encoding name;
-     *                     otherwise, it is an ianaEncoding name.
-     * @param isBigEndian   For encodings (like uCS-4), whose names cannot
-     *                      specify a byte order, this tells whether the order
-     *                      is bigEndian. null means unknown or not relevant.
-     *
+     * @param inputStream The input stream.
+     * @param encoding    The encoding name that the input stream is
+     *                    encoded using. If the user has specified that
+     *                    Java encoding names are allowed, then the
+     *                    encoding name may be a Java encoding name;
+     *                    otherwise, it is an ianaEncoding name.
+     * @param isBigEndian For encodings (like uCS-4), whose names cannot
+     *                    specify a byte order, this tells whether the order
+     *                    is bigEndian. null means unknown or not relevant.
      * @return Returns a reader.
+     * @throws IOException     in case of IO errors
+     * @throws JasperException in case of Jasper errors
      */
     private Reader createReader(InputStream inputStream, String encoding,
-				Boolean isBigEndian)
-                throws IOException, JasperException {
+                                Boolean isBigEndian)
+            throws IOException, JasperException {
 
         // normalize encoding name
         if (encoding == null) {
@@ -225,7 +231,7 @@ public class XMLEncodingDetector {
                 }
             } else {
                 err.jspError("jsp.error.xml.encodingByteOrderUnsupported",
-			     encoding);
+                        encoding);
             }
         }
         if (ENCODING.equals("ISO-10646-UCS-2")) {
@@ -238,7 +244,7 @@ public class XMLEncodingDetector {
                 }
             } else {
                 err.jspError("jsp.error.xml.encodingByteOrderUnsupported",
-			     encoding);
+                        encoding);
             }
         }
 
@@ -262,7 +268,7 @@ public class XMLEncodingDetector {
         String javaEncoding = EncodingMap.getIANA2JavaMapping(ENCODING);
         if (javaEncoding == null) {
             if (fAllowJavaEncodings) {
-		javaEncoding = encoding;
+                javaEncoding = encoding;
             } else {
                 err.jspError("jsp.error.xml.encodingDeclInvalid", encoding);
                 // see comment above.
@@ -275,6 +281,7 @@ public class XMLEncodingDetector {
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.getEncodingName
+
     /**
      * Returns the IANA encoding name that is auto-detected from
      * the bytes specified, with the endian-ness of that encoding where
@@ -283,9 +290,9 @@ public class XMLEncodingDetector {
      * @param b4    The first four bytes of the input.
      * @param count The number of bytes actually read.
      * @return a 2-element array:  the first element, an IANA-encoding string,
-     *  the second element a Boolean which is true iff the document is big
-     *  endian, false if it's little-endian, and null if the distinction isn't
-     *  relevant.
+     * the second element a Boolean which is true iff the document is big
+     * endian, false if it's little-endian, and null if the distinction isn't
+     * relevant.
      */
     private Object[] getEncodingName(byte[] b4, int count) {
 
@@ -298,356 +305,361 @@ public class XMLEncodingDetector {
         int b1 = b4[1] & 0xFF;
         if (b0 == 0xFE && b1 == 0xFF) {
             // UTF-16, big-endian
-            return new Object [] {"UTF-16BE", Boolean.TRUE, Integer.valueOf(2)};
+            return new Object[]{"UTF-16BE", Boolean.TRUE, Integer.valueOf(2)};
         }
         if (b0 == 0xFF && b1 == 0xFE) {
             // UTF-16, little-endian
-            return new Object [] {"UTF-16LE", Boolean.FALSE, Integer.valueOf(2)};
+            return new Object[]{"UTF-16LE", Boolean.FALSE, Integer.valueOf(2)};
         }
 
         // default to UTF-8 if we don't have enough bytes to make a
         // good determination of the encoding
         if (count < 3) {
-            return new Object [] {"UTF-8", null, Boolean.FALSE, Integer.valueOf(0)};
+            return new Object[]{"UTF-8", null, Boolean.FALSE, Integer.valueOf(0)};
         }
 
         // UTF-8 with a BOM
         int b2 = b4[2] & 0xFF;
         if (b0 == 0xEF && b1 == 0xBB && b2 == 0xBF) {
-            return new Object [] {"UTF-8", null, Integer.valueOf(3)};
+            return new Object[]{"UTF-8", null, Integer.valueOf(3)};
         }
 
         // default to UTF-8 if we don't have enough bytes to make a
         // good determination of the encoding
         if (count < 4) {
-            return new Object [] {"UTF-8", null, Integer.valueOf(0)};
+            return new Object[]{"UTF-8", null, Integer.valueOf(0)};
         }
 
         // other encodings
         int b3 = b4[3] & 0xFF;
         if (b0 == 0x00 && b1 == 0x00 && b2 == 0x00 && b3 == 0x3C) {
             // UCS-4, big endian (1234)
-            return new Object [] {"ISO-10646-UCS-4", new Boolean(true), Integer.valueOf(4)};
+            return new Object[]{"ISO-10646-UCS-4", new Boolean(true), Integer.valueOf(4)};
         }
         if (b0 == 0x3C && b1 == 0x00 && b2 == 0x00 && b3 == 0x00) {
             // UCS-4, little endian (4321)
-            return new Object [] {"ISO-10646-UCS-4", new Boolean(false), Integer.valueOf(4)};
+            return new Object[]{"ISO-10646-UCS-4", new Boolean(false), Integer.valueOf(4)};
         }
         if (b0 == 0x00 && b1 == 0x00 && b2 == 0x3C && b3 == 0x00) {
             // UCS-4, unusual octet order (2143)
             // REVISIT: What should this be?
-            return new Object [] {"ISO-10646-UCS-4", null, Integer.valueOf(4)};
+            return new Object[]{"ISO-10646-UCS-4", null, Integer.valueOf(4)};
         }
         if (b0 == 0x00 && b1 == 0x3C && b2 == 0x00 && b3 == 0x00) {
             // UCS-4, unusual octect order (3412)
             // REVISIT: What should this be?
-            return new Object [] {"ISO-10646-UCS-4", null, Integer.valueOf(4)};
+            return new Object[]{"ISO-10646-UCS-4", null, Integer.valueOf(4)};
         }
         if (b0 == 0x00 && b1 == 0x3C && b2 == 0x00 && b3 == 0x3F) {
             // UTF-16, big-endian, no BOM
             // (or could turn out to be UCS-2...
             // REVISIT: What should this be?
-            return new Object [] {"UTF-16BE", new Boolean(true), Integer.valueOf(4)};
+            return new Object[]{"UTF-16BE", new Boolean(true), Integer.valueOf(4)};
         }
         if (b0 == 0x3C && b1 == 0x00 && b2 == 0x3F && b3 == 0x00) {
             // UTF-16, little-endian, no BOM
             // (or could turn out to be UCS-2...
-            return new Object [] {"UTF-16LE", new Boolean(false), Integer.valueOf(4)};
+            return new Object[]{"UTF-16LE", new Boolean(false), Integer.valueOf(4)};
         }
         if (b0 == 0x4C && b1 == 0x6F && b2 == 0xA7 && b3 == 0x94) {
             // EBCDIC
             // a la xerces1, return CP037 instead of EBCDIC here
-            return new Object [] {"CP037", null, Integer.valueOf(4)};
+            return new Object[]{"CP037", null, Integer.valueOf(4)};
         }
 
         // default encoding
-        return new Object [] {"UTF-8", null, Boolean.FALSE, Integer.valueOf(0)};
+        return new Object[]{"UTF-8", null, Boolean.FALSE, Integer.valueOf(0)};
 
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.isExternal
-    /** Returns true if the current entity being scanned is external. */
+
+    /**
+     * @return true if the current entity being scanned is external.
+     */
     public boolean isExternal() {
-	return true;
+        return true;
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.peekChar
+
     /**
-     * Returns the next character on the input.
+     * @return the next character on the input.
      * <p>
      * <strong>Note:</strong> The character is <em>not</em> consumed.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * </p>
+     * @throws IOException Thrown if i/o error occurs.
      */
     public int peekChar() throws IOException {
-	
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-	
-	// peek at character
-	int c = fCurrentEntity.ch[fCurrentEntity.position];
-
-	// return peeked character
-	if (fCurrentEntity.isExternal()) {
-	    return c != '\r' ? c : '\n';
-	}
-	else {
-	    return c;
-	}
-	
+
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // peek at character
+        int c = fCurrentEntity.ch[fCurrentEntity.position];
+
+        // return peeked character
+        if (fCurrentEntity.isExternal()) {
+            return c != '\r' ? c : '\n';
+        } else {
+            return c;
+        }
+
     } // peekChar():int
-    
+
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.scanChar
+
     /**
-     * Returns the next character on the input.
+     * @return the next character on the input.
      * <p>
      * <strong>Note:</strong> The character is consumed.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * </p>
+     * @throws IOException Thrown if i/o error occurs.
      */
     public int scanChar() throws IOException {
 
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-
-	// scan character
-	int c = fCurrentEntity.ch[fCurrentEntity.position++];
-	boolean external = false;
-	if (c == '\n' ||
-	    (c == '\r' && (external = fCurrentEntity.isExternal()))) {
-	    fCurrentEntity.lineNumber++;
-	    fCurrentEntity.columnNumber = 1;
-	    if (fCurrentEntity.position == fCurrentEntity.count) {
-		fCurrentEntity.ch[0] = (char)c;
-		load(1, false);
-	    }
-	    if (c == '\r' && external) {
-		if (fCurrentEntity.ch[fCurrentEntity.position++] != '\n') {
-		    fCurrentEntity.position--;
-		}
-		c = '\n';
-	    }
-	}
-
-	// return character that was scanned
-	fCurrentEntity.columnNumber++;
-	return c;
-	
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // scan character
+        int c = fCurrentEntity.ch[fCurrentEntity.position++];
+        boolean external = false;
+        if (c == '\n' ||
+                (c == '\r' && (external = fCurrentEntity.isExternal()))) {
+            fCurrentEntity.lineNumber++;
+            fCurrentEntity.columnNumber = 1;
+            if (fCurrentEntity.position == fCurrentEntity.count) {
+                fCurrentEntity.ch[0] = (char) c;
+                load(1, false);
+            }
+            if (c == '\r' && external) {
+                if (fCurrentEntity.ch[fCurrentEntity.position++] != '\n') {
+                    fCurrentEntity.position--;
+                }
+                c = '\n';
+            }
+        }
+
+        // return character that was scanned
+        fCurrentEntity.columnNumber++;
+        return c;
+
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.scanName
+
     /**
-     * Returns a string matching the Name production appearing immediately
+     * @return a string matching the Name production appearing immediately
      * on the input as a symbol, or null if no Name string is present.
      * <p>
      * <strong>Note:</strong> The Name characters are consumed.
+     * </p>
      * <p>
      * <strong>Note:</strong> The string returned must be a symbol. The
      * SymbolTable can be used for this purpose.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
-     *
+     * </p>
+     * @throws IOException Thrown if i/o error occurs.
      * @see SymbolTable
      * @see XMLChar#isName
      * @see XMLChar#isNameStart
      */
     public String scanName() throws IOException {
-	
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-	
-	// scan name
-	int offset = fCurrentEntity.position;
-	if (XMLChar.isNameStart(fCurrentEntity.ch[offset])) {
-	    if (++fCurrentEntity.position == fCurrentEntity.count) {
-		fCurrentEntity.ch[0] = fCurrentEntity.ch[offset];
-		offset = 0;
-		if (load(1, false)) {
-		    fCurrentEntity.columnNumber++;
-		    String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch,
-							   0, 1);
-		    return symbol;
-		}
-	    }
-	    while (XMLChar.isName(fCurrentEntity.ch[fCurrentEntity.position])) {
-		if (++fCurrentEntity.position == fCurrentEntity.count) {
-		    int length = fCurrentEntity.position - offset;
-		    if (length == fBufferSize) {
-			// bad luck we have to resize our buffer
-			char[] tmp = new char[fBufferSize * 2];
-			System.arraycopy(fCurrentEntity.ch, offset,
-					 tmp, 0, length);
-			fCurrentEntity.ch = tmp;
-			fBufferSize *= 2;
-		    } else {
-			System.arraycopy(fCurrentEntity.ch, offset,
-					 fCurrentEntity.ch, 0, length);
-		    }
-		    offset = 0;
-		    if (load(length, false)) {
-			break;
-		    }
-		}
-	    }
-	}
-	int length = fCurrentEntity.position - offset;
-	fCurrentEntity.columnNumber += length;
-
-	// return name
-	String symbol = null;
-	if (length > 0) {
-	    symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, offset, length);
-	}
-	return symbol;
-	
+
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // scan name
+        int offset = fCurrentEntity.position;
+        if (XMLChar.isNameStart(fCurrentEntity.ch[offset])) {
+            if (++fCurrentEntity.position == fCurrentEntity.count) {
+                fCurrentEntity.ch[0] = fCurrentEntity.ch[offset];
+                offset = 0;
+                if (load(1, false)) {
+                    fCurrentEntity.columnNumber++;
+                    String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch,
+                            0, 1);
+                    return symbol;
+                }
+            }
+            while (XMLChar.isName(fCurrentEntity.ch[fCurrentEntity.position])) {
+                if (++fCurrentEntity.position == fCurrentEntity.count) {
+                    int length = fCurrentEntity.position - offset;
+                    if (length == fBufferSize) {
+                        // bad luck we have to resize our buffer
+                        char[] tmp = new char[fBufferSize * 2];
+                        System.arraycopy(fCurrentEntity.ch, offset,
+                                tmp, 0, length);
+                        fCurrentEntity.ch = tmp;
+                        fBufferSize *= 2;
+                    } else {
+                        System.arraycopy(fCurrentEntity.ch, offset,
+                                fCurrentEntity.ch, 0, length);
+                    }
+                    offset = 0;
+                    if (load(length, false)) {
+                        break;
+                    }
+                }
+            }
+        }
+        int length = fCurrentEntity.position - offset;
+        fCurrentEntity.columnNumber += length;
+
+        // return name
+        String symbol = null;
+        if (length > 0) {
+            symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, offset, length);
+        }
+        return symbol;
+
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.scanLiteral
+
     /**
+     * <p>
      * Scans a range of attribute value data, setting the fields of the
      * XMLString structure, appropriately.
+     * </p>
+     *
      * <p>
      * <strong>Note:</strong> The characters are consumed.
+     * </p>
+     *
      * <p>
      * <strong>Note:</strong> This method does not guarantee to return
      * the longest run of attribute value data. This method may return
      * before the quote character due to reaching the end of the input
      * buffer or any other reason.
+     * </p>
+     *
      * <p>
      * <strong>Note:</strong> The fields contained in the XMLString
      * structure are not guaranteed to remain valid upon subsequent calls
      * to the entity scanner. Therefore, the caller is responsible for
      * immediately using the returned character data or making a copy of
      * the character data.
+     * </p>
      *
      * @param quote   The quote character that signifies the end of the
      *                attribute value data.
      * @param content The content structure to fill.
-     *
      * @return Returns the next character on the input, if known. This
-     *         value may be -1 but this does <em>note</em> designate
-     *         end of file.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * value may be -1 but this does <em>note</em> designate
+     * end of file.
+     * @throws IOException Thrown if i/o error occurs.
      */
     public int scanLiteral(int quote, XMLString content)
-	throws IOException {
-
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	} else if (fCurrentEntity.position == fCurrentEntity.count - 1) {
-	    fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1];
-	    load(1, false);
-	    fCurrentEntity.position = 0;
-	}
-
-	// normalize newlines
-	int offset = fCurrentEntity.position;
-	int c = fCurrentEntity.ch[offset];
-	int newlines = 0;
-	boolean external = fCurrentEntity.isExternal();
-	if (c == '\n' || (c == '\r' && external)) {
-	    do {
-		c = fCurrentEntity.ch[fCurrentEntity.position++];
-		if (c == '\r' && external) {
-		    newlines++;
-		    fCurrentEntity.lineNumber++;
-		    fCurrentEntity.columnNumber = 1;
-		    if (fCurrentEntity.position == fCurrentEntity.count) {
-			offset = 0;
-			fCurrentEntity.position = newlines;
-			if (load(newlines, false)) {
-			    break;
-			}
-		    }
-		    if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
-			fCurrentEntity.position++;
-			offset++;
-		    }
-		    /*** NEWLINE NORMALIZATION ***/
-		    else {
-			newlines++;
-		    }
-		    /***/
-		}
-		else if (c == '\n') {
-		    newlines++;
-		    fCurrentEntity.lineNumber++;
-		    fCurrentEntity.columnNumber = 1;
-		    if (fCurrentEntity.position == fCurrentEntity.count) {
-			offset = 0;
-			fCurrentEntity.position = newlines;
-			if (load(newlines, false)) {
-			    break;
-			}
-		    }
-		    /*** NEWLINE NORMALIZATION ***
-			 if (fCurrentEntity.ch[fCurrentEntity.position] == '\r'
-			 && external) {
-			 fCurrentEntity.position++;
-			 offset++;
-			 }
-			 /***/
-		}
-		else {
-		    fCurrentEntity.position--;
-		    break;
-		}
-	    } while (fCurrentEntity.position < fCurrentEntity.count - 1);
-	    for (int i = offset; i < fCurrentEntity.position; i++) {
-		fCurrentEntity.ch[i] = '\n';
-	    }
-	    int length = fCurrentEntity.position - offset;
-	    if (fCurrentEntity.position == fCurrentEntity.count - 1) {
-		content.setValues(fCurrentEntity.ch, offset, length);
-		return -1;
-	    }
-	}
-
-	// scan literal value
-	while (fCurrentEntity.position < fCurrentEntity.count) {
-	    c = fCurrentEntity.ch[fCurrentEntity.position++];
-	    if ((c == quote &&
-		 (!fCurrentEntity.literal || external))
-		|| c == '%' || !XMLChar.isContent(c)) {
-		fCurrentEntity.position--;
-		break;
-	    }
-	}
-	int length = fCurrentEntity.position - offset;
-	fCurrentEntity.columnNumber += length - newlines;
-	content.setValues(fCurrentEntity.ch, offset, length);
-
-	// return next character
-	if (fCurrentEntity.position != fCurrentEntity.count) {
-	    c = fCurrentEntity.ch[fCurrentEntity.position];
-	    // NOTE: We don't want to accidentally signal the
-	    //       end of the literal if we're expanding an
-	    //       entity appearing in the literal. -Ac
-	    if (c == quote && fCurrentEntity.literal) {
-		c = -1;
-	    }
-	}
-	else {
-	    c = -1;
-	}
-	return c;
+            throws IOException {
+
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        } else if (fCurrentEntity.position == fCurrentEntity.count - 1) {
+            fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1];
+            load(1, false);
+            fCurrentEntity.position = 0;
+        }
+
+        // normalize newlines
+        int offset = fCurrentEntity.position;
+        int c = fCurrentEntity.ch[offset];
+        int newlines = 0;
+        boolean external = fCurrentEntity.isExternal();
+        if (c == '\n' || (c == '\r' && external)) {
+            do {
+                c = fCurrentEntity.ch[fCurrentEntity.position++];
+                if (c == '\r' && external) {
+                    newlines++;
+                    fCurrentEntity.lineNumber++;
+                    fCurrentEntity.columnNumber = 1;
+                    if (fCurrentEntity.position == fCurrentEntity.count) {
+                        offset = 0;
+                        fCurrentEntity.position = newlines;
+                        if (load(newlines, false)) {
+                            break;
+                        }
+                    }
+                    if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
+                        fCurrentEntity.position++;
+                        offset++;
+                    }
+                    /*** NEWLINE NORMALIZATION ***/
+                    else {
+                        newlines++;
+                    }
+                    /***/
+                } else if (c == '\n') {
+                    newlines++;
+                    fCurrentEntity.lineNumber++;
+                    fCurrentEntity.columnNumber = 1;
+                    if (fCurrentEntity.position == fCurrentEntity.count) {
+                        offset = 0;
+                        fCurrentEntity.position = newlines;
+                        if (load(newlines, false)) {
+                            break;
+                        }
+                    }
+                    /*** NEWLINE NORMALIZATION ***
+                     if (fCurrentEntity.ch[fCurrentEntity.position] == '\r'
+                     && external) {
+                     fCurrentEntity.position++;
+                     offset++;
+                     }
+                     /***/
+                } else {
+                    fCurrentEntity.position--;
+                    break;
+                }
+            } while (fCurrentEntity.position < fCurrentEntity.count - 1);
+            for (int i = offset; i < fCurrentEntity.position; i++) {
+                fCurrentEntity.ch[i] = '\n';
+            }
+            int length = fCurrentEntity.position - offset;
+            if (fCurrentEntity.position == fCurrentEntity.count - 1) {
+                content.setValues(fCurrentEntity.ch, offset, length);
+                return -1;
+            }
+        }
+
+        // scan literal value
+        while (fCurrentEntity.position < fCurrentEntity.count) {
+            c = fCurrentEntity.ch[fCurrentEntity.position++];
+            if ((c == quote &&
+                    (!fCurrentEntity.literal || external))
+                    || c == '%' || !XMLChar.isContent(c)) {
+                fCurrentEntity.position--;
+                break;
+            }
+        }
+        int length = fCurrentEntity.position - offset;
+        fCurrentEntity.columnNumber += length - newlines;
+        content.setValues(fCurrentEntity.ch, offset, length);
+
+        // return next character
+        if (fCurrentEntity.position != fCurrentEntity.count) {
+            c = fCurrentEntity.ch[fCurrentEntity.position];
+            // NOTE: We don't want to accidentally signal the
+            //       end of the literal if we're expanding an
+            //       entity appearing in the literal. -Ac
+            if (c == quote && fCurrentEntity.literal) {
+                c = -1;
+            }
+        } else {
+            c = -1;
+        }
+        return c;
 
     }
 
@@ -656,290 +668,284 @@ public class XMLEncodingDetector {
      * setting the fields of the XMLString structure, appropriately.
      * <p>
      * <strong>Note:</strong> The characters are consumed.
+     * </p>
      * <p>
      * <strong>Note:</strong> This assumes that the internal buffer is
      * at least the same size, or bigger, than the length of the delimiter
      * and that the delimiter contains at least one character.
+     * </p>
      * <p>
      * <strong>Note:</strong> This method does not guarantee to return
      * the longest run of character data. This method may return before
      * the delimiter due to reaching the end of the input buffer or any
      * other reason.
+     * </p>
      * <p>
      * <strong>Note:</strong> The fields contained in the XMLString
      * structure are not guaranteed to remain valid upon subsequent calls
      * to the entity scanner. Therefore, the caller is responsible for
      * immediately using the returned character data or making a copy of
      * the character data.
+     * </p>
      *
      * @param delimiter The string that signifies the end of the character
      *                  data to be scanned.
      * @param buffer    The data structure to fill.
-     *
      * @return Returns true if there is more data to scan, false otherwise.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * @throws IOException Thrown if i/o error occurs.
      */
     public boolean scanData(String delimiter, XMLStringBuffer buffer)
-	throws IOException {
-
-	boolean done = false;
-	int delimLen = delimiter.length();
-	char charAt0 = delimiter.charAt(0);
-	boolean external = fCurrentEntity.isExternal();
-	do {
-    
-	    // load more characters, if needed
-    
-	    if (fCurrentEntity.position == fCurrentEntity.count) {
-		load(0, true);
-	    }
-	    else if (fCurrentEntity.position >= fCurrentEntity.count - delimLen) {
-		System.arraycopy(fCurrentEntity.ch, fCurrentEntity.position,
-				 fCurrentEntity.ch, 0, fCurrentEntity.count - fCurrentEntity.position);
-		load(fCurrentEntity.count - fCurrentEntity.position, false);
-		fCurrentEntity.position = 0;
-	    } 
-	    if (fCurrentEntity.position >= fCurrentEntity.count - delimLen) {
-		// something must be wrong with the input: e.g., file ends an
-		// unterminated comment
-		int length = fCurrentEntity.count - fCurrentEntity.position;
-		buffer.append (fCurrentEntity.ch, fCurrentEntity.position,
-			       length); 
-		fCurrentEntity.columnNumber += fCurrentEntity.count;
-		fCurrentEntity.position = fCurrentEntity.count;
-		load(0,true);
-		return false;
-	    }
-    
-	    // normalize newlines
-	    int offset = fCurrentEntity.position;
-	    int c = fCurrentEntity.ch[offset];
-	    int newlines = 0;
-	    if (c == '\n' || (c == '\r' && external)) {
-		do {
-		    c = fCurrentEntity.ch[fCurrentEntity.position++];
-		    if (c == '\r' && external) {
-			newlines++;
-			fCurrentEntity.lineNumber++;
-			fCurrentEntity.columnNumber = 1;
-			if (fCurrentEntity.position == fCurrentEntity.count) {
-			    offset = 0;
-			    fCurrentEntity.position = newlines;
-			    if (load(newlines, false)) {
-				break;
-			    }
-			}
-			if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
-			    fCurrentEntity.position++;
-			    offset++;
-			}
-			/*** NEWLINE NORMALIZATION ***/
-			else {
-			    newlines++;
-			}
-		    }
-		    else if (c == '\n') {
-			newlines++;
-			fCurrentEntity.lineNumber++;
-			fCurrentEntity.columnNumber = 1;
-			if (fCurrentEntity.position == fCurrentEntity.count) {
-			    offset = 0;
-			    fCurrentEntity.position = newlines;
-			    fCurrentEntity.count = newlines;
-			    if (load(newlines, false)) {
-				break;
-			    }
-			}
-		    }
-		    else {
-			fCurrentEntity.position--;
-			break;
-		    }
-		} while (fCurrentEntity.position < fCurrentEntity.count - 1);
-		for (int i = offset; i < fCurrentEntity.position; i++) {
-		    fCurrentEntity.ch[i] = '\n';
-		}
-		int length = fCurrentEntity.position - offset;
-		if (fCurrentEntity.position == fCurrentEntity.count - 1) {
-		    buffer.append(fCurrentEntity.ch, offset, length);
-		    return true;
-		}
-	    }
-    
-	    // iterate over buffer looking for delimiter
-	OUTER: while (fCurrentEntity.position < fCurrentEntity.count) {
-	    c = fCurrentEntity.ch[fCurrentEntity.position++];
-	    if (c == charAt0) {
-		// looks like we just hit the delimiter
-		int delimOffset = fCurrentEntity.position - 1;
-		for (int i = 1; i < delimLen; i++) {
-		    if (fCurrentEntity.position == fCurrentEntity.count) {
-			fCurrentEntity.position -= i;
-			break OUTER;
-		    }
-		    c = fCurrentEntity.ch[fCurrentEntity.position++];
-		    if (delimiter.charAt(i) != c) {
-			fCurrentEntity.position--;
-			break;
-		    }
-		}
-		if (fCurrentEntity.position == delimOffset + delimLen) {
-		    done = true;
-		    break;
-		}
-	    }
-	    else if (c == '\n' || (external && c == '\r')) {
-		fCurrentEntity.position--;
-		break;
-	    }
-	    else if (XMLChar.isInvalid(c)) {
-		fCurrentEntity.position--;
-		int length = fCurrentEntity.position - offset;
-		fCurrentEntity.columnNumber += length - newlines;
-		buffer.append(fCurrentEntity.ch, offset, length); 
-		return true;
-	    }
-	}
-	    int length = fCurrentEntity.position - offset;
-	    fCurrentEntity.columnNumber += length - newlines;
-	    if (done) {
-		length -= delimLen;
-	    }
-	    buffer.append (fCurrentEntity.ch, offset, length);
-    
-	    // return true if string was skipped
-	} while (!done);
-	return !done;
+            throws IOException {
+
+        boolean done = false;
+        int delimLen = delimiter.length();
+        char charAt0 = delimiter.charAt(0);
+        boolean external = fCurrentEntity.isExternal();
+        do {
+
+            // load more characters, if needed
+
+            if (fCurrentEntity.position == fCurrentEntity.count) {
+                load(0, true);
+            } else if (fCurrentEntity.position >= fCurrentEntity.count - delimLen) {
+                System.arraycopy(fCurrentEntity.ch, fCurrentEntity.position,
+                        fCurrentEntity.ch, 0, fCurrentEntity.count - fCurrentEntity.position);
+                load(fCurrentEntity.count - fCurrentEntity.position, false);
+                fCurrentEntity.position = 0;
+            }
+            if (fCurrentEntity.position >= fCurrentEntity.count - delimLen) {
+                // something must be wrong with the input: e.g., file ends an
+                // unterminated comment
+                int length = fCurrentEntity.count - fCurrentEntity.position;
+                buffer.append(fCurrentEntity.ch, fCurrentEntity.position,
+                        length);
+                fCurrentEntity.columnNumber += fCurrentEntity.count;
+                fCurrentEntity.position = fCurrentEntity.count;
+                load(0, true);
+                return false;
+            }
+
+            // normalize newlines
+            int offset = fCurrentEntity.position;
+            int c = fCurrentEntity.ch[offset];
+            int newlines = 0;
+            if (c == '\n' || (c == '\r' && external)) {
+                do {
+                    c = fCurrentEntity.ch[fCurrentEntity.position++];
+                    if (c == '\r' && external) {
+                        newlines++;
+                        fCurrentEntity.lineNumber++;
+                        fCurrentEntity.columnNumber = 1;
+                        if (fCurrentEntity.position == fCurrentEntity.count) {
+                            offset = 0;
+                            fCurrentEntity.position = newlines;
+                            if (load(newlines, false)) {
+                                break;
+                            }
+                        }
+                        if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
+                            fCurrentEntity.position++;
+                            offset++;
+                        }
+                        /*** NEWLINE NORMALIZATION ***/
+                        else {
+                            newlines++;
+                        }
+                    } else if (c == '\n') {
+                        newlines++;
+                        fCurrentEntity.lineNumber++;
+                        fCurrentEntity.columnNumber = 1;
+                        if (fCurrentEntity.position == fCurrentEntity.count) {
+                            offset = 0;
+                            fCurrentEntity.position = newlines;
+                            fCurrentEntity.count = newlines;
+                            if (load(newlines, false)) {
+                                break;
+                            }
+                        }
+                    } else {
+                        fCurrentEntity.position--;
+                        break;
+                    }
+                } while (fCurrentEntity.position < fCurrentEntity.count - 1);
+                for (int i = offset; i < fCurrentEntity.position; i++) {
+                    fCurrentEntity.ch[i] = '\n';
+                }
+                int length = fCurrentEntity.position - offset;
+                if (fCurrentEntity.position == fCurrentEntity.count - 1) {
+                    buffer.append(fCurrentEntity.ch, offset, length);
+                    return true;
+                }
+            }
+
+            // iterate over buffer looking for delimiter
+            OUTER:
+            while (fCurrentEntity.position < fCurrentEntity.count) {
+                c = fCurrentEntity.ch[fCurrentEntity.position++];
+                if (c == charAt0) {
+                    // looks like we just hit the delimiter
+                    int delimOffset = fCurrentEntity.position - 1;
+                    for (int i = 1; i < delimLen; i++) {
+                        if (fCurrentEntity.position == fCurrentEntity.count) {
+                            fCurrentEntity.position -= i;
+                            break OUTER;
+                        }
+                        c = fCurrentEntity.ch[fCurrentEntity.position++];
+                        if (delimiter.charAt(i) != c) {
+                            fCurrentEntity.position--;
+                            break;
+                        }
+                    }
+                    if (fCurrentEntity.position == delimOffset + delimLen) {
+                        done = true;
+                        break;
+                    }
+                } else if (c == '\n' || (external && c == '\r')) {
+                    fCurrentEntity.position--;
+                    break;
+                } else if (XMLChar.isInvalid(c)) {
+                    fCurrentEntity.position--;
+                    int length = fCurrentEntity.position - offset;
+                    fCurrentEntity.columnNumber += length - newlines;
+                    buffer.append(fCurrentEntity.ch, offset, length);
+                    return true;
+                }
+            }
+            int length = fCurrentEntity.position - offset;
+            fCurrentEntity.columnNumber += length - newlines;
+            if (done) {
+                length -= delimLen;
+            }
+            buffer.append(fCurrentEntity.ch, offset, length);
+
+            // return true if string was skipped
+        } while (!done);
+        return !done;
 
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.skipChar
+
     /**
      * Skips a character appearing immediately on the input.
      * <p>
      * <strong>Note:</strong> The character is consumed only if it matches
      * the specified character.
+     * </p>
      *
      * @param c The character to skip.
-     *
      * @return Returns true if the character was skipped.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * @throws IOException Thrown if i/o error occurs.
      */
     public boolean skipChar(int c) throws IOException {
 
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-
-	// skip character
-	int cc = fCurrentEntity.ch[fCurrentEntity.position];
-	if (cc == c) {
-	    fCurrentEntity.position++;
-	    if (c == '\n') {
-		fCurrentEntity.lineNumber++;
-		fCurrentEntity.columnNumber = 1;
-	    }
-	    else {
-		fCurrentEntity.columnNumber++;
-	    }
-	    return true;
-	} else if (c == '\n' && cc == '\r' && fCurrentEntity.isExternal()) {
-	    // handle newlines
-	    if (fCurrentEntity.position == fCurrentEntity.count) {
-		fCurrentEntity.ch[0] = (char)cc;
-		load(1, false);
-	    }
-	    fCurrentEntity.position++;
-	    if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
-		fCurrentEntity.position++;
-	    }
-	    fCurrentEntity.lineNumber++;
-	    fCurrentEntity.columnNumber = 1;
-	    return true;
-	}
-
-	// character was not skipped
-	return false;
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // skip character
+        int cc = fCurrentEntity.ch[fCurrentEntity.position];
+        if (cc == c) {
+            fCurrentEntity.position++;
+            if (c == '\n') {
+                fCurrentEntity.lineNumber++;
+                fCurrentEntity.columnNumber = 1;
+            } else {
+                fCurrentEntity.columnNumber++;
+            }
+            return true;
+        } else if (c == '\n' && cc == '\r' && fCurrentEntity.isExternal()) {
+            // handle newlines
+            if (fCurrentEntity.position == fCurrentEntity.count) {
+                fCurrentEntity.ch[0] = (char) cc;
+                load(1, false);
+            }
+            fCurrentEntity.position++;
+            if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') {
+                fCurrentEntity.position++;
+            }
+            fCurrentEntity.lineNumber++;
+            fCurrentEntity.columnNumber = 1;
+            return true;
+        }
+
+        // character was not skipped
+        return false;
 
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.skipSpaces
+
     /**
      * Skips space characters appearing immediately on the input.
      * <p>
      * <strong>Note:</strong> The characters are consumed only if they are
      * space characters.
+     * </p>
      *
      * @return Returns true if at least one space character was skipped.
-     *
      * @throws IOException  Thrown if i/o error occurs.
      * @throws EOFException Thrown on end of file.
-     *
      * @see XMLChar#isSpace
      */
     public boolean skipSpaces() throws IOException {
 
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-
-	// skip spaces
-	int c = fCurrentEntity.ch[fCurrentEntity.position];
-	if (XMLChar.isSpace(c)) {
-	    boolean external = fCurrentEntity.isExternal();
-	    do {
-		boolean entityChanged = false;
-		// handle newlines
-		if (c == '\n' || (external && c == '\r')) {
-		    fCurrentEntity.lineNumber++;
-		    fCurrentEntity.columnNumber = 1;
-		    if (fCurrentEntity.position == fCurrentEntity.count - 1) {
-			fCurrentEntity.ch[0] = (char)c;
-			entityChanged = load(1, true);
-			if (!entityChanged)
-                                // the load change the position to be 1,
-                                // need to restore it when entity not changed
-			    fCurrentEntity.position = 0;
-		    }
-		    if (c == '\r' && external) {
-			// REVISIT: Does this need to be updated to fix the
-			//          #x0D ^#x0A newline normalization problem? -Ac
-			if (fCurrentEntity.ch[++fCurrentEntity.position] != '\n') {
-			    fCurrentEntity.position--;
-			}
-		    }
-		    /*** NEWLINE NORMALIZATION ***
-			 else {
-			 if (fCurrentEntity.ch[fCurrentEntity.position + 1] == '\r'
-			 && external) {
-			 fCurrentEntity.position++;
-			 }
-			 }
-			 /***/
-		}
-		else {
-		    fCurrentEntity.columnNumber++;
-		}
-		// load more characters, if needed
-		if (!entityChanged)
-		    fCurrentEntity.position++;
-		if (fCurrentEntity.position == fCurrentEntity.count) {
-		    load(0, true);
-		}
-	    } while (XMLChar.isSpace(c = fCurrentEntity.ch[fCurrentEntity.position]));
-	    return true;
-	}
-
-	// no spaces were found
-	return false;
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // skip spaces
+        int c = fCurrentEntity.ch[fCurrentEntity.position];
+        if (XMLChar.isSpace(c)) {
+            boolean external = fCurrentEntity.isExternal();
+            do {
+                boolean entityChanged = false;
+                // handle newlines
+                if (c == '\n' || (external && c == '\r')) {
+                    fCurrentEntity.lineNumber++;
+                    fCurrentEntity.columnNumber = 1;
+                    if (fCurrentEntity.position == fCurrentEntity.count - 1) {
+                        fCurrentEntity.ch[0] = (char) c;
+                        entityChanged = load(1, true);
+                        if (!entityChanged)
+                            // the load change the position to be 1,
+                            // need to restore it when entity not changed
+                            fCurrentEntity.position = 0;
+                    }
+                    if (c == '\r' && external) {
+                        // REVISIT: Does this need to be updated to fix the
+                        //          #x0D ^#x0A newline normalization problem? -Ac
+                        if (fCurrentEntity.ch[++fCurrentEntity.position] != '\n') {
+                            fCurrentEntity.position--;
+                        }
+                    }
+                    /*** NEWLINE NORMALIZATION ***
+                     else {
+                     if (fCurrentEntity.ch[fCurrentEntity.position + 1] == '\r'
+                     && external) {
+                     fCurrentEntity.position++;
+                     }
+                     }
+                     /***/
+                } else {
+                    fCurrentEntity.columnNumber++;
+                }
+                // load more characters, if needed
+                if (!entityChanged)
+                    fCurrentEntity.position++;
+                if (fCurrentEntity.position == fCurrentEntity.count) {
+                    load(0, true);
+                }
+            } while (XMLChar.isSpace(c = fCurrentEntity.ch[fCurrentEntity.position]));
+            return true;
+        }
+
+        // no spaces were found
+        return false;
 
     }
 
@@ -948,46 +954,45 @@ public class XMLEncodingDetector {
      * <p>
      * <strong>Note:</strong> The characters are consumed only if they are
      * space characters.
+     * </p>
      *
      * @param s The string to skip.
-     *
      * @return Returns true if the string was skipped.
-     *
-     * @throws IOException  Thrown if i/o error occurs.
-     * @throws EOFException Thrown on end of file.
+     * @throws IOException Thrown if i/o error occurs.
      */
     public boolean skipString(String s) throws IOException {
 
-	// load more characters, if needed
-	if (fCurrentEntity.position == fCurrentEntity.count) {
-	    load(0, true);
-	}
-
-	// skip string
-	final int length = s.length();
-	for (int i = 0; i < length; i++) {
-	    char c = fCurrentEntity.ch[fCurrentEntity.position++];
-	    if (c != s.charAt(i)) {
-		fCurrentEntity.position -= i + 1;
-		return false;
-	    }
-	    if (i < length - 1 && fCurrentEntity.position == fCurrentEntity.count) {
-		System.arraycopy(fCurrentEntity.ch, fCurrentEntity.count - i - 1, fCurrentEntity.ch, 0, i + 1);
-		// REVISIT: Can a string to be skipped cross an
-		//          entity boundary? -Ac
-		if (load(i + 1, false)) {
-		    fCurrentEntity.position -= i + 1;
-		    return false;
-		}
-	    }
-	}
-	fCurrentEntity.columnNumber += length;
-	return true;
+        // load more characters, if needed
+        if (fCurrentEntity.position == fCurrentEntity.count) {
+            load(0, true);
+        }
+
+        // skip string
+        final int length = s.length();
+        for (int i = 0; i < length; i++) {
+            char c = fCurrentEntity.ch[fCurrentEntity.position++];
+            if (c != s.charAt(i)) {
+                fCurrentEntity.position -= i + 1;
+                return false;
+            }
+            if (i < length - 1 && fCurrentEntity.position == fCurrentEntity.count) {
+                System.arraycopy(fCurrentEntity.ch, fCurrentEntity.count - i - 1, fCurrentEntity.ch, 0, i + 1);
+                // REVISIT: Can a string to be skipped cross an
+                //          entity boundary? -Ac
+                if (load(i + 1, false)) {
+                    fCurrentEntity.position -= i + 1;
+                    return false;
+                }
+            }
+        }
+        fCurrentEntity.columnNumber += length;
+        return true;
 
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.EntityScanner.load
+
     /**
      * Loads a chunk of text.
      *
@@ -998,53 +1003,54 @@ public class XMLEncodingDetector {
      *                     the current entity in place and the entity
      *                     boundary will be signaled by the return
      *                     value.
-     *
      * @returns Returns true if the entity changed as a result of this
-     *          load operation.
+     * load operation.
      */
     final boolean load(int offset, boolean changeEntity)
-	throws IOException {
-
-	// read characters
-	int length = fCurrentEntity.mayReadChunks?
-	    (fCurrentEntity.ch.length - offset):
-	    (DEFAULT_XMLDECL_BUFFER_SIZE);
-	int count = fCurrentEntity.reader.read(fCurrentEntity.ch, offset,
-					       length);
-
-	// reset count and position
-	boolean entityChanged = false;
-	if (count != -1) {
-	    if (count != 0) {
-		fCurrentEntity.count = count + offset;
-		fCurrentEntity.position = offset;
-	    }
-	}
-
-	// end of this entity
-	else {
-	    fCurrentEntity.count = offset;
-	    fCurrentEntity.position = offset;
-	    entityChanged = true;
-	    if (changeEntity) {
-		endEntity();
-		if (fCurrentEntity == null) {
-		    throw new EOFException();
-		}
-		// handle the trailing edges
-		if (fCurrentEntity.position == fCurrentEntity.count) {
-		    load(0, false);
-		}
-	    }
-	}
-
-	return entityChanged;
+            throws IOException {
+
+        // read characters
+        int length = fCurrentEntity.mayReadChunks ?
+                (fCurrentEntity.ch.length - offset) :
+                (DEFAULT_XMLDECL_BUFFER_SIZE);
+        int count = fCurrentEntity.reader.read(fCurrentEntity.ch, offset,
+                length);
+
+        // reset count and position
+        boolean entityChanged = false;
+        if (count != -1) {
+            if (count != 0) {
+                fCurrentEntity.count = count + offset;
+                fCurrentEntity.position = offset;
+            }
+        }
+
+        // end of this entity
+        else {
+            fCurrentEntity.count = offset;
+            fCurrentEntity.position = offset;
+            entityChanged = true;
+            if (changeEntity) {
+                endEntity();
+                if (fCurrentEntity == null) {
+                    throw new EOFException();
+                }
+                // handle the trailing edges
+                if (fCurrentEntity.position == fCurrentEntity.count) {
+                    load(0, false);
+                }
+            }
+        }
+
+        return entityChanged;
 
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLEntityManager.RewindableInputStream
+
     /**
+     * <p>
      * This class wraps the byte inputstreams we're presented with.
      * We need it because java.io.InputStreams don't provide
      * functionality to reread processed bytes, and they have a habit
@@ -1053,13 +1059,16 @@ public class XMLEncodingDetector {
      * encoding of a document, we can neither backtrack to read the
      * whole doc again nor start reading where we are with a new
      * reader.
-     *
+     * </p>
+     * <p/>
+     * <p>
      * This class allows rewinding an inputStream by allowing a mark
      * to be set, and the stream reset to that position.  <strong>The
      * class assumes that it needs to read one character per
      * invocation when it's read() method is inovked, but uses the
      * underlying InputStream's read(char[], offset length) method--it
      * won't buffer data read this way!</strong>
+     * </p>
      *
      * @author Neil Graham, IBM
      * @author Glenn Marcy, IBM
@@ -1110,7 +1119,7 @@ public class XMLEncodingDetector {
                 fEndOffset = fOffset;
                 return -1;
             }
-            fData[fLength++] = (byte)b;
+            fData[fLength++] = (byte) b;
             fOffset++;
             return b & 0xff;
         }
@@ -1130,15 +1139,14 @@ public class XMLEncodingDetector {
                     fEndOffset = fOffset;
                     return -1;
                 }
-                b[off] = (byte)returnedVal;
+                b[off] = (byte) returnedVal;
                 return 1;
             }
             if (len < bytesLeft) {
                 if (len <= 0) {
                     return 0;
                 }
-            }
-            else {
+            } else {
                 len = bytesLeft;
             }
             if (b != null) {
@@ -1149,8 +1157,7 @@ public class XMLEncodingDetector {
         }
 
         public long skip(long n)
-            throws IOException
-        {
+                throws IOException {
             int bytesLeft;
             if (n <= 0) {
                 return 0;
@@ -1171,8 +1178,8 @@ public class XMLEncodingDetector {
                 return bytesLeft;
             }
             n -= bytesLeft;
-	    /*
-	     * In a manner of speaking, when this class isn't permitting more
+        /*
+         * In a manner of speaking, when this class isn't permitting more
 	     * than one byte at a time to be read, it is "blocking".  The
 	     * available() method should indicate how much can be read without
 	     * blocking, so while we're in this mode, it should only indicate
@@ -1189,7 +1196,7 @@ public class XMLEncodingDetector {
                     return -1;
                 }
                 return fCurrentEntity.mayReadChunks ? fInputStream.available()
-		    : 0;
+                        : 0;
             }
             return bytesLeft;
         }
@@ -1218,34 +1225,35 @@ public class XMLEncodingDetector {
     // org.apache.xerces.impl.XMLDocumentScannerImpl.dispatch
     private void scanXMLDecl() throws IOException, JasperException {
 
-	if (skipString("<?xml")) {
-	    fMarkupDepth++;
-	    // NOTE: special case where document starts with a PI
-	    //       whose name starts with "xml" (e.g. "xmlfoo")
-	    if (XMLChar.isName(peekChar())) {
-		fStringBuffer.clear();
-		fStringBuffer.append("xml");
-		while (XMLChar.isName(peekChar())) {
-		    fStringBuffer.append((char)scanChar());
-		}
-		String target = fSymbolTable.addSymbol(fStringBuffer.ch,
-						       fStringBuffer.offset,
-						       fStringBuffer.length);
-		scanPIData(target, fString);
-	    }
-
-	    // standard XML declaration
-	    else {
-		scanXMLDeclOrTextDecl(false);
-	    }
-	}
+        if (skipString("<?xml")) {
+            fMarkupDepth++;
+            // NOTE: special case where document starts with a PI
+            //       whose name starts with "xml" (e.g. "xmlfoo")
+            if (XMLChar.isName(peekChar())) {
+                fStringBuffer.clear();
+                fStringBuffer.append("xml");
+                while (XMLChar.isName(peekChar())) {
+                    fStringBuffer.append((char) scanChar());
+                }
+                String target = fSymbolTable.addSymbol(fStringBuffer.ch,
+                        fStringBuffer.offset,
+                        fStringBuffer.length);
+                scanPIData(target, fString);
+            }
+
+            // standard XML declaration
+            else {
+                scanXMLDeclOrTextDecl(false);
+            }
+        }
     }
-    
+
     // Adapted from:
     // org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl
+
     /**
      * Scans an XML or text declaration.
-     * <p>
+     * <p/>
      * <pre>
      * [23] XMLDecl ::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
      * [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
@@ -1261,8 +1269,8 @@ public class XMLEncodingDetector {
      *                         be scanned instead of an XML
      *                         declaration.
      */
-    private void scanXMLDeclOrTextDecl(boolean scanningTextDecl) 
-        throws IOException, JasperException {
+    private void scanXMLDeclOrTextDecl(boolean scanningTextDecl)
+            throws IOException, JasperException {
 
         // scan decl
         scanXMLDeclOrTextDecl(scanningTextDecl, fStrings);
@@ -1274,15 +1282,16 @@ public class XMLEncodingDetector {
         // set encoding on reader
         if (encodingPseudoAttr != null) {
             isEncodingSetInProlog = true;
-	    encoding = encodingPseudoAttr;
+            encoding = encodingPseudoAttr;
         }
     }
 
     // Adapted from:
     // org.apache.xerces.impl.XMLScanner.scanXMLDeclOrTextDecl
-    /**
+
+    /*
      * Scans an XML or text declaration.
-     * <p>
+     * <p/>
      * <pre>
      * [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
      * [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
@@ -1294,19 +1303,20 @@ public class XMLEncodingDetector {
      * [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
      * </pre>
      *
-     * @param scanningTextDecl True if a text declaration is to
-     *                         be scanned instead of an XML
-     *                         declaration.
+     * @param scanningTextDecl      True if a text declaration is to
+     *                              be scanned instead of an XML
+     *                              declaration.
      * @param pseudoAttributeValues An array of size 3 to return the version,
-     *                         encoding and standalone pseudo attribute values
-     *                         (in that order).
-     *
-     * <strong>Note:</strong> This method uses fString, anything in it
-     * at the time of calling is lost.
+     *                              encoding and standalone pseudo attribute values
+     *                              (in that order).
+     *                              <p/>
+     *                              <p>
+     *                              <strong>Note:</strong> This method uses fString, anything in it
+     *                              at the time of calling is lost.</p>
      */
     private void scanXMLDeclOrTextDecl(boolean scanningTextDecl,
-				       String[] pseudoAttributeValues) 
-                throws IOException, JasperException {
+                                       String[] pseudoAttributeValues)
+            throws IOException, JasperException {
 
         // pseudo-attribute values
         String version = null;
@@ -1330,18 +1340,18 @@ public class XMLEncodingDetector {
                     if (name == fVersionSymbol) {
                         if (!sawSpace) {
                             reportFatalError(scanningTextDecl
-                                       ? "jsp.error.xml.spaceRequiredBeforeVersionInTextDecl"
-                                       : "jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl",
-                                             null);
+                                            ? "jsp.error.xml.spaceRequiredBeforeVersionInTextDecl"
+                                            : "jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl",
+                                    null);
                         }
                         version = fString.toString();
                         state = STATE_ENCODING;
                         if (!version.equals("1.0")) {
                             // REVISIT: XML REC says we should throw an error
-			    // in such cases.
+                            // in such cases.
                             // some may object the throwing of fatalError.
                             err.jspError("jsp.error.xml.versionNotSupported",
-					 version);
+                                    version);
                         }
                     } else if (name == fEncodingSymbol) {
                         if (!scanningTextDecl) {
@@ -1349,17 +1359,16 @@ public class XMLEncodingDetector {
                         }
                         if (!sawSpace) {
                             reportFatalError(scanningTextDecl
-                                      ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
-                                      : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
-                                             null);
+                                            ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
+                                            : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
+                                    null);
                         }
                         encoding = fString.toString();
                         state = scanningTextDecl ? STATE_DONE : STATE_STANDALONE;
                     } else {
                         if (scanningTextDecl) {
                             err.jspError("jsp.error.xml.encodingDeclRequired");
-                        }
-                        else {
+                        } else {
                             err.jspError("jsp.error.xml.versionInfoRequired");
                         }
                     }
@@ -1369,9 +1378,9 @@ public class XMLEncodingDetector {
                     if (name == fEncodingSymbol) {
                         if (!sawSpace) {
                             reportFatalError(scanningTextDecl
-                                      ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
-                                      : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
-                                             null);
+                                            ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
+                                            : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
+                                    null);
                         }
                         encoding = fString.toString();
                         state = scanningTextDecl ? STATE_DONE : STATE_STANDALONE;
@@ -1402,7 +1411,7 @@ public class XMLEncodingDetector {
                             err.jspError("jsp.error.xml.sdDeclInvalid");
                         }
                     } else {
-			err.jspError("jsp.error.xml.encodingDeclRequired");
+                        err.jspError("jsp.error.xml.encodingDeclRequired");
                     }
                     break;
                 }
@@ -1416,9 +1425,9 @@ public class XMLEncodingDetector {
         if (scanningTextDecl && state != STATE_DONE) {
             err.jspError("jsp.error.xml.morePseudoAttributes");
         }
-        
+
         // If there is no data in the xml or text decl then we fail to report
-	// error for version or encoding info above.
+        // error for version or encoding info above.
         if (scanningTextDecl) {
             if (!dataFoundForTarget && encoding == null) {
                 err.jspError("jsp.error.xml.encodingDeclRequired");
@@ -1437,7 +1446,7 @@ public class XMLEncodingDetector {
             err.jspError("jsp.error.xml.xmlDeclUnterminated");
 
         }
-        
+
         // fill in return array
         pseudoAttributeValues[0] = version;
         pseudoAttributeValues[1] = encoding;
@@ -1446,24 +1455,28 @@ public class XMLEncodingDetector {
 
     // Adapted from:
     // org.apache.xerces.impl.XMLScanner.scanPseudoAttribute
+
     /**
      * Scans a pseudo attribute.
      *
      * @param scanningTextDecl True if scanning this pseudo-attribute for a
-     *                         TextDecl; false if scanning XMLDecl. This 
+     *                         TextDecl; false if scanning XMLDecl. This
      *                         flag is needed to report the correct type of
      *                         error.
-     * @param value            The string to fill in with the attribute 
+     * @param value            The string to fill in with the attribute
      *                         value.
-     *
      * @return The name of the attribute
      *
+     * <p>
      * <strong>Note:</strong> This method uses fStringBuffer2, anything in it
-     * at the time of calling is lost.
+     * at the time of calling is lost.</p>
+     *
+     * @throws IOException in case of IO errors
+     * @throws JasperException in case of Jasper errors
      */
-    public String scanPseudoAttribute(boolean scanningTextDecl, 
-                                      XMLString value) 
-                throws IOException, JasperException {
+    public String scanPseudoAttribute(boolean scanningTextDecl,
+                                      XMLString value)
+            throws IOException, JasperException {
 
         String name = scanName();
         if (name == null) {
@@ -1472,17 +1485,17 @@ public class XMLEncodingDetector {
         skipSpaces();
         if (!skipChar('=')) {
             reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.eqRequiredInTextDecl"
-                             : "jsp.error.xml.eqRequiredInXMLDecl",
-			     name);
+                            "jsp.error.xml.eqRequiredInTextDecl"
+                            : "jsp.error.xml.eqRequiredInXMLDecl",
+                    name);
         }
         skipSpaces();
         int quote = peekChar();
         if (quote != '\'' && quote != '"') {
             reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.quoteRequiredInTextDecl"
-                             : "jsp.error.xml.quoteRequiredInXMLDecl" ,
-			     name);
+                            "jsp.error.xml.quoteRequiredInTextDecl"
+                            : "jsp.error.xml.quoteRequiredInXMLDecl",
+                    name);
         }
         scanChar();
         int c = scanLiteral(quote, value);
@@ -1492,15 +1505,13 @@ public class XMLEncodingDetector {
                 fStringBuffer2.append(value);
                 if (c != -1) {
                     if (c == '&' || c == '%' || c == '<' || c == ']') {
-                        fStringBuffer2.append((char)scanChar());
-                    }
-                    else if (XMLChar.isHighSurrogate(c)) {
+                        fStringBuffer2.append((char) scanChar());
+                    } else if (XMLChar.isHighSurrogate(c)) {
                         scanSurrogates(fStringBuffer2);
-                    }
-                    else if (XMLChar.isInvalid(c)) {
+                    } else if (XMLChar.isInvalid(c)) {
                         String key = scanningTextDecl
-                            ? "jsp.error.xml.invalidCharInTextDecl"
-			    : "jsp.error.xml.invalidCharInXMLDecl";
+                                ? "jsp.error.xml.invalidCharInTextDecl"
+                                : "jsp.error.xml.invalidCharInXMLDecl";
                         reportFatalError(key, Integer.toString(c, 16));
                         scanChar();
                     }
@@ -1512,31 +1523,36 @@ public class XMLEncodingDetector {
         }
         if (!skipChar(quote)) {
             reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.closeQuoteMissingInTextDecl"
-                             : "jsp.error.xml.closeQuoteMissingInXMLDecl",
-			     name);
+                            "jsp.error.xml.closeQuoteMissingInTextDecl"
+                            : "jsp.error.xml.closeQuoteMissingInXMLDecl",
+                    name);
         }
 
         // return
         return name;
 
     }
-    
+
     // Adapted from:
     // org.apache.xerces.impl.XMLScanner.scanPIData
-    /**
+
+    /*
+     * <p>
      * Scans a processing data. This is needed to handle the situation
-     * where a document starts with a processing instruction whose 
+     * where a document starts with a processing instruction whose
      * target name <em>starts with</em> "xml". (e.g. xmlfoo)
-     *
+     * <p>
+     * <p/>
+     * <p>
      * <strong>Note:</strong> This method uses fStringBuffer, anything in it
      * at the time of calling is lost.
+     * </p>
      *
      * @param target The PI target
-     * @param data The string to fill in with the data
+     * @param data   The string to fill in with the data
      */
-    private void scanPIData(String target, XMLString data) 
-        throws IOException, JasperException {
+    private void scanPIData(String target, XMLString data)
+            throws IOException, JasperException {
 
         // check target
         if (target.length() == 3) {
@@ -1554,8 +1570,7 @@ public class XMLEncodingDetector {
                 // we found the end, there is no data
                 data.clear();
                 return;
-            }
-            else {
+            } else {
                 // if there is data there should be some space
                 err.jspError("jsp.error.xml.spaceRequiredInPI");
             }
@@ -1571,7 +1586,7 @@ public class XMLEncodingDetector {
                         scanSurrogates(fStringBuffer);
                     } else if (XMLChar.isInvalid(c)) {
                         err.jspError("jsp.error.xml.invalidCharInPI",
-				     Integer.toHexString(c));
+                                Integer.toHexString(c));
                         scanChar();
                     }
                 }
@@ -1583,40 +1598,42 @@ public class XMLEncodingDetector {
 
     // Adapted from:
     // org.apache.xerces.impl.XMLScanner.scanSurrogates
-    /**
+
+    /*
      * Scans surrogates and append them to the specified buffer.
      * <p>
      * <strong>Note:</strong> This assumes the current char has already been
      * identified as a high surrogate.
+     * </p>
      *
      * @param buf The StringBuffer to append the read surrogates to.
      * @returns True if it succeeded.
      */
     private boolean scanSurrogates(XMLStringBuffer buf)
-        throws IOException, JasperException {
+            throws IOException, JasperException {
 
         int high = scanChar();
         int low = peekChar();
         if (!XMLChar.isLowSurrogate(low)) {
             err.jspError("jsp.error.xml.invalidCharInContent",
-			 Integer.toString(high, 16));
+                    Integer.toString(high, 16));
             return false;
         }
         scanChar();
 
         // convert surrogates to supplemental character
-        int c = XMLChar.supplemental((char)high, (char)low);
+        int c = XMLChar.supplemental((char) high, (char) low);
 
         // supplemental character must be a valid XML character
         if (!XMLChar.isValid(c)) {
             err.jspError("jsp.error.xml.invalidCharInContent",
-			 Integer.toString(c, 16)); 
+                    Integer.toString(c, 16));
             return false;
         }
 
         // fill in the buffer
-        buf.append((char)high);
-        buf.append((char)low);
+        buf.append((char) high);
+        buf.append((char) low);
 
         return true;
 
@@ -1624,11 +1641,15 @@ public class XMLEncodingDetector {
 
     // Adapted from:
     // org.apache.xerces.impl.XMLScanner.reportFatalError
-    /**
+
+    /*
      * Convenience function used in all XML scanners.
+     *
+     * @param msgId message ID
+     * @param arg   argument
+     * @throws JasperException in case of Jasper errors
      */
-    private void reportFatalError(String msgId, String arg)
-                throws JasperException {
+    private void reportFatalError(String msgId, String arg) throws JasperException {
         err.jspError(msgId, arg);
     }
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLString.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLString.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLString.java
index 0fab239..46195c9 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLString.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLString.java
@@ -26,15 +26,20 @@
 package org.apache.struts2.jasper.xmlparser;
 
 /**
+ * <p>
  * This class is used as a structure to pass text contained in the underlying
  * character buffer of the scanner. The offset and length fields allow the
  * buffer to be re-used without creating new character arrays.
+ * </p>
+ *
  * <p>
  * <strong>Note:</strong> Methods that are passed an XMLString structure
  * should consider the contents read-only and not make any modifications
  * to the contents of the buffer. The method receiving this structure
  * should also not modify the offset and length if this structure (or
  * the values of this structure) are passed to another method.
+ * </p>
+ *
  * <p>
  * <strong>Note:</strong> Methods that are passed an XMLString structure
  * are required to copy the information out of the buffer if it is to be
@@ -43,6 +48,7 @@ package org.apache.struts2.jasper.xmlparser;
  * be assured once the method that is passed this structure returns.
  * Therefore, methods passed this structure should not save any reference
  * to the structure or the character array contained in the structure.
+ * </p>
  *
  * @author Eric Ye, IBM
  * @author Andy Clark, IBM
@@ -121,8 +127,9 @@ public class XMLString {
      * <p>
      * <strong>Note:</strong> This does not copy the character array;
      * only the reference to the array is copied.
-     * 
-     * @param s
+     *  </p>
+     *
+     * @param s xml string
      */
     public void setValues(XMLString s) {
         setValues(s.ch, s.offset, s.length);
@@ -136,7 +143,7 @@ public class XMLString {
     } // clear()
 
     /**
-     * Returns true if the contents of this XMLString structure and
+     * @return  true if the contents of this XMLString structure and
      * the specified array are equal.
      * 
      * @param ch     The character array.
@@ -160,7 +167,7 @@ public class XMLString {
     } // equals(char[],int,int):boolean
 
     /**
-     * Returns true if the contents of this XMLString structure and
+     * @return  true if the contents of this XMLString structure and
      * the specified string are equal.
      * 
      * @param s The string to compare.
@@ -189,7 +196,7 @@ public class XMLString {
     // Object methods
     //
 
-    /** Returns a string representation of this object. */
+    /** @return  a string representation of this object. */
     public String toString() {
         return length > 0 ? new String(ch, offset, length) : "";
     } // toString():String

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLStringBuffer.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLStringBuffer.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLStringBuffer.java
index d16c967..1103a97 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLStringBuffer.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/xmlparser/XMLStringBuffer.java
@@ -26,34 +26,41 @@
 package org.apache.struts2.jasper.xmlparser;
 
 /**
+ * <p>
  * XMLString is a structure used to pass character arrays. However,
  * XMLStringBuffer is a buffer in which characters can be appended
  * and extends XMLString so that it can be passed to methods
  * expecting an XMLString object. This is a safe operation because
  * it is assumed that any callee will <strong>not</strong> modify
  * the contents of the XMLString structure.
- * <p> 
+ * </p>
+ *
+ * <p>
  * The contents of the string are managed by the string buffer. As
  * characters are appended, the string buffer will grow as needed.
+ * </p>
+ *
  * <p>
- * <strong>Note:</strong> Never set the <code>ch</code>, 
+ * <strong>Note:</strong> Never set the <code>ch</code>,
  * <code>offset</code>, and <code>length</code> fields directly.
  * These fields are managed by the string buffer. In order to reset
  * the buffer, call <code>clear()</code>.
- * 
+ * </p>
+ *
  * @author Andy Clark, IBM
  * @author Eric Ye, IBM
- *
  * @version $Id: XMLStringBuffer.java 467222 2006-10-24 03:17:11Z markt $
  */
 public class XMLStringBuffer
-    extends XMLString {
+        extends XMLString {
 
     //
     // Constants
     //
 
-    /** Default buffer size (32). */
+    /**
+     * Default buffer size (32).
+     */
     public static final int DEFAULT_SIZE = 32;
 
     //
@@ -61,40 +68,56 @@ public class XMLStringBuffer
     //
 
     /**
-     * 
+     *
      */
     public XMLStringBuffer() {
         this(DEFAULT_SIZE);
     } // <init>()
 
     /**
-     * 
-     * 
-     * @param size 
+     * @param size size
      */
     public XMLStringBuffer(int size) {
         ch = new char[size];
     } // <init>(int)
 
-    /** Constructs a string buffer from a char. */
+    /**
+     * Constructs a string buffer from a char.
+     *
+     * @param c character
+     */
     public XMLStringBuffer(char c) {
         this(1);
         append(c);
     } // <init>(char)
 
-    /** Constructs a string buffer from a String. */
+    /**
+     * Constructs a string buffer from a String.
+     *
+     * @param s string
+     */
     public XMLStringBuffer(String s) {
         this(s.length());
         append(s);
     } // <init>(String)
 
-    /** Constructs a string buffer from the specified character array. */
+    /**
+     * Constructs a string buffer from the specified character array.
+     *
+     * @param ch     char array
+     * @param offset offset
+     * @param length length
+     */
     public XMLStringBuffer(char[] ch, int offset, int length) {
         this(length);
         append(ch, offset, length);
     } // <init>(char[],int,int)
 
-    /** Constructs a string buffer from the specified XMLString. */
+    /**
+     * Constructs a string buffer from the specified XMLString.
+     *
+     * @param s xml string
+     */
     public XMLStringBuffer(XMLString s) {
         this(s.length);
         append(s);
@@ -104,7 +127,9 @@ public class XMLStringBuffer
     // Public methods
     //
 
-    /** Clears the string buffer. */
+    /**
+     * Clears the string buffer.
+     */
     public void clear() {
         offset = 0;
         length = 0;
@@ -112,17 +137,17 @@ public class XMLStringBuffer
 
     /**
      * append
-     * 
-     * @param c 
+     *
+     * @param c char
      */
     public void append(char c) {
         if (this.length + 1 > this.ch.length) {
-                    int newLength = this.ch.length*2;
-                    if (newLength < this.ch.length + DEFAULT_SIZE)
-                        newLength = this.ch.length + DEFAULT_SIZE;
-                    char[] newch = new char[newLength];
-                    System.arraycopy(this.ch, 0, newch, 0, this.length);
-                    this.ch = newch;
+            int newLength = this.ch.length * 2;
+            if (newLength < this.ch.length + DEFAULT_SIZE)
+                newLength = this.ch.length + DEFAULT_SIZE;
+            char[] newch = new char[newLength];
+            System.arraycopy(this.ch, 0, newch, 0, this.length);
+            this.ch = newch;
         }
         this.ch[this.length] = c;
         this.length++;
@@ -130,16 +155,16 @@ public class XMLStringBuffer
 
     /**
      * append
-     * 
-     * @param s 
+     *
+     * @param s string
      */
     public void append(String s) {
         int length = s.length();
         if (this.length + length > this.ch.length) {
-            int newLength = this.ch.length*2;
+            int newLength = this.ch.length * 2;
             if (newLength < this.length + length + DEFAULT_SIZE)
                 newLength = this.ch.length + length + DEFAULT_SIZE;
-            char[] newch = new char[newLength];            
+            char[] newch = new char[newLength];
             System.arraycopy(this.ch, 0, newch, 0, this.length);
             this.ch = newch;
         }
@@ -149,10 +174,10 @@ public class XMLStringBuffer
 
     /**
      * append
-     * 
-     * @param ch 
-     * @param offset 
-     * @param length 
+     *
+     * @param ch     char arry
+     * @param offset offset
+     * @param length length
      */
     public void append(char[] ch, int offset, int length) {
         if (this.length + length > this.ch.length) {
@@ -166,8 +191,8 @@ public class XMLStringBuffer
 
     /**
      * append
-     * 
-     * @param s 
+     *
+     * @param s xml string
      */
     public void append(XMLString s) {
         append(s.ch, s.offset, s.length);


[09/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParser.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParser.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParser.java
index 6cd2847..d8dd5dd 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParser.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParser.java
@@ -1,10 +1,13 @@
 /* Generated By:JJTree&JavaCC: Do not edit this line. ELParser.java */
 package org.apache.struts2.el.parser;
-import java.io.StringReader;
+
 import javax.el.ELException;
-public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParserConstants {/*@bgen(jjtree)*/
-  protected JJTELParserState jjtree = new JJTELParserState();public static Node parse(String ref) throws ELException
-    {
+import java.io.StringReader;
+
+public class ELParser/*@bgen(jjtree)*/ implements ELParserTreeConstants, ELParserConstants {/*@bgen(jjtree)*/
+    protected JJTELParserState jjtree = new JJTELParserState();
+
+    public static Node parse(String ref) throws ELException {
         try {
             return (new ELParser(new StringReader(ref))).CompositeExpression();
         } catch (ParseException pe) {
@@ -12,2179 +15,2451 @@ public class ELParser/*@bgen(jjtree)*/implements ELParserTreeConstants, ELParser
         }
     }
 
-/*
- * CompositeExpression
- * Allow most flexible parsing, restrict by examining
- * type of returned node
- */
-  final public AstCompositeExpression CompositeExpression() throws ParseException {
+    /*
+     * CompositeExpression
+     * Allow most flexible parsing, restrict by examining
+     * type of returned node
+     */
+    final public AstCompositeExpression CompositeExpression() throws ParseException {
                                                                      /*@bgen(jjtree) CompositeExpression */
-  AstCompositeExpression jjtn000 = new AstCompositeExpression(JJTCOMPOSITEEXPRESSION);
-  boolean jjtc000 = true;
-  jjtree.openNodeScope(jjtn000);
-    try {
-      label_1:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LITERAL_EXPRESSION:
-        case START_DYNAMIC_EXPRESSION:
-        case START_DEFERRED_EXPRESSION:
-          ;
-          break;
-        default:
-          jj_la1[0] = jj_gen;
-          break label_1;
-        }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case START_DEFERRED_EXPRESSION:
-          DeferredExpression();
-          break;
-        case START_DYNAMIC_EXPRESSION:
-          DynamicExpression();
-          break;
-        case LITERAL_EXPRESSION:
-          LiteralExpression();
-          break;
-        default:
-          jj_la1[1] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      jj_consume_token(0);
-                                                                                jjtree.closeNodeScope(jjtn000, true);
-                                                                                jjtc000 = false;
-                                                                                {if (true) return jjtn000;}
-    } catch (Throwable jjte000) {
-      if (jjtc000) {
-        jjtree.clearNodeScope(jjtn000);
-        jjtc000 = false;
-      } else {
-        jjtree.popNode();
-      }
-      if (jjte000 instanceof RuntimeException) {
-        {if (true) throw (RuntimeException)jjte000;}
-      }
-      if (jjte000 instanceof ParseException) {
-        {if (true) throw (ParseException)jjte000;}
-      }
-      {if (true) throw (Error)jjte000;}
-    } finally {
-      if (jjtc000) {
-        jjtree.closeNodeScope(jjtn000, true);
-      }
-    }
-    throw new Error("Missing return statement in function");
-  }
-
-/*
- * LiteralExpression
- * Non-EL Expression blocks
- */
-  final public void LiteralExpression() throws ParseException {
+        AstCompositeExpression jjtn000 = new AstCompositeExpression(JJTCOMPOSITEEXPRESSION);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        try {
+            label_1:
+            while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case LITERAL_EXPRESSION:
+                    case START_DYNAMIC_EXPRESSION:
+                    case START_DEFERRED_EXPRESSION:
+                        ;
+                        break;
+                    default:
+                        jj_la1[0] = jj_gen;
+                        break label_1;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case START_DEFERRED_EXPRESSION:
+                        DeferredExpression();
+                        break;
+                    case START_DYNAMIC_EXPRESSION:
+                        DynamicExpression();
+                        break;
+                    case LITERAL_EXPRESSION:
+                        LiteralExpression();
+                        break;
+                    default:
+                        jj_la1[1] = jj_gen;
+                        jj_consume_token(-1);
+                        throw new ParseException();
+                }
+            }
+            jj_consume_token(0);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            {
+                if (true) return jjtn000;
+            }
+        } catch (Throwable jjte000) {
+            if (jjtc000) {
+                jjtree.clearNodeScope(jjtn000);
+                jjtc000 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte000 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte000;
+                }
+            }
+            if (jjte000 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte000;
+                }
+            }
+            {
+                if (true) throw (Error) jjte000;
+            }
+        } finally {
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /*
+     * LiteralExpression
+     * Non-EL Expression blocks
+     */
+    final public void LiteralExpression() throws ParseException {
                                                /*@bgen(jjtree) LiteralExpression */
-                                                AstLiteralExpression jjtn000 = new AstLiteralExpression(JJTLITERALEXPRESSION);
-                                                boolean jjtc000 = true;
-                                                jjtree.openNodeScope(jjtn000);Token t = null;
-    try {
-      t = jj_consume_token(LITERAL_EXPRESSION);
-                             jjtree.closeNodeScope(jjtn000, true);
-                             jjtc000 = false;
-                             jjtn000.setImage(t.image);
-    } finally {
-      if (jjtc000) {
-        jjtree.closeNodeScope(jjtn000, true);
-      }
-    }
-  }
-
-/*
- * DeferredExpression
- * #{..} Expressions
- */
-  final public void DeferredExpression() throws ParseException {
+        AstLiteralExpression jjtn000 = new AstLiteralExpression(JJTLITERALEXPRESSION);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
+        try {
+            t = jj_consume_token(LITERAL_EXPRESSION);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
+        } finally {
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * DeferredExpression
+     * #{..} Expressions
+     */
+    final public void DeferredExpression() throws ParseException {
                                                  /*@bgen(jjtree) DeferredExpression */
-  AstDeferredExpression jjtn000 = new AstDeferredExpression(JJTDEFERREDEXPRESSION);
-  boolean jjtc000 = true;
-  jjtree.openNodeScope(jjtn000);
-    try {
-      jj_consume_token(START_DEFERRED_EXPRESSION);
-      Expression();
-      jj_consume_token(END_EXPRESSION);
-    } catch (Throwable jjte000) {
-      if (jjtc000) {
-        jjtree.clearNodeScope(jjtn000);
-        jjtc000 = false;
-      } else {
-        jjtree.popNode();
-      }
-      if (jjte000 instanceof RuntimeException) {
-        {if (true) throw (RuntimeException)jjte000;}
-      }
-      if (jjte000 instanceof ParseException) {
-        {if (true) throw (ParseException)jjte000;}
-      }
-      {if (true) throw (Error)jjte000;}
-    } finally {
-      if (jjtc000) {
-        jjtree.closeNodeScope(jjtn000, true);
-      }
-    }
-  }
-
-/*
- * DynamicExpression
- * ${..} Expressions
- */
-  final public void DynamicExpression() throws ParseException {
+        AstDeferredExpression jjtn000 = new AstDeferredExpression(JJTDEFERREDEXPRESSION);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        try {
+            jj_consume_token(START_DEFERRED_EXPRESSION);
+            Expression();
+            jj_consume_token(END_EXPRESSION);
+        } catch (Throwable jjte000) {
+            if (jjtc000) {
+                jjtree.clearNodeScope(jjtn000);
+                jjtc000 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte000 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte000;
+                }
+            }
+            if (jjte000 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte000;
+                }
+            }
+            {
+                if (true) throw (Error) jjte000;
+            }
+        } finally {
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * DynamicExpression
+     * ${..} Expressions
+     */
+    final public void DynamicExpression() throws ParseException {
                                                /*@bgen(jjtree) DynamicExpression */
-  AstDynamicExpression jjtn000 = new AstDynamicExpression(JJTDYNAMICEXPRESSION);
-  boolean jjtc000 = true;
-  jjtree.openNodeScope(jjtn000);
-    try {
-      jj_consume_token(START_DYNAMIC_EXPRESSION);
-      Expression();
-      jj_consume_token(END_EXPRESSION);
-    } catch (Throwable jjte000) {
-      if (jjtc000) {
-        jjtree.clearNodeScope(jjtn000);
-        jjtc000 = false;
-      } else {
-        jjtree.popNode();
-      }
-      if (jjte000 instanceof RuntimeException) {
-        {if (true) throw (RuntimeException)jjte000;}
-      }
-      if (jjte000 instanceof ParseException) {
-        {if (true) throw (ParseException)jjte000;}
-      }
-      {if (true) throw (Error)jjte000;}
-    } finally {
-      if (jjtc000) {
-        jjtree.closeNodeScope(jjtn000, true);
-      }
-    }
-  }
-
-/*
- * Expression
- * EL Expression Language Root, goes to Choice
- */
-  final public void Expression() throws ParseException {
-    Choice();
-  }
-
-/*
- * Choice
- * For Choice markup a ? b : c, then Or
- */
-  final public void Choice() throws ParseException {
-    Or();
-    label_2:
-    while (true) {
-      if (jj_2_1(3)) {
-        ;
-      } else {
-        break label_2;
-      }
-      jj_consume_token(QUESTIONMARK);
-      Choice();
-      jj_consume_token(COLON);
-                                                         AstChoice jjtn001 = new AstChoice(JJTCHOICE);
-                                                         boolean jjtc001 = true;
-                                                         jjtree.openNodeScope(jjtn001);
-      try {
+        AstDynamicExpression jjtn000 = new AstDynamicExpression(JJTDYNAMICEXPRESSION);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        try {
+            jj_consume_token(START_DYNAMIC_EXPRESSION);
+            Expression();
+            jj_consume_token(END_EXPRESSION);
+        } catch (Throwable jjte000) {
+            if (jjtc000) {
+                jjtree.clearNodeScope(jjtn000);
+                jjtc000 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte000 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte000;
+                }
+            }
+            if (jjte000 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte000;
+                }
+            }
+            {
+                if (true) throw (Error) jjte000;
+            }
+        } finally {
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * Expression
+     * EL Expression Language Root, goes to Choice
+     */
+    final public void Expression() throws ParseException {
         Choice();
-      } catch (Throwable jjte001) {
-                                                         if (jjtc001) {
-                                                           jjtree.clearNodeScope(jjtn001);
-                                                           jjtc001 = false;
-                                                         } else {
-                                                           jjtree.popNode();
-                                                         }
-                                                         if (jjte001 instanceof RuntimeException) {
-                                                           {if (true) throw (RuntimeException)jjte001;}
-                                                         }
-                                                         if (jjte001 instanceof ParseException) {
-                                                           {if (true) throw (ParseException)jjte001;}
-                                                         }
-                                                         {if (true) throw (Error)jjte001;}
-      } finally {
-                                                         if (jjtc001) {
-                                                           jjtree.closeNodeScope(jjtn001,  3);
-                                                         }
-      }
-    }
-  }
-
-/*
- * Or
- * For 'or' '||', then And
- */
-  final public void Or() throws ParseException {
-    And();
-    label_3:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case OR0:
-      case OR1:
-        ;
-        break;
-      default:
-        jj_la1[2] = jj_gen;
-        break label_3;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case OR0:
-        jj_consume_token(OR0);
-        break;
-      case OR1:
-        jj_consume_token(OR1);
-        break;
-      default:
-        jj_la1[3] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-                           AstOr jjtn001 = new AstOr(JJTOR);
-                           boolean jjtc001 = true;
-                           jjtree.openNodeScope(jjtn001);
-      try {
+    }
+
+    /*
+     * Choice
+     * For Choice markup a ? b : c, then Or
+     */
+    final public void Choice() throws ParseException {
+        Or();
+        label_2:
+        while (true) {
+            if (jj_2_1(3)) {
+                ;
+            } else {
+                break label_2;
+            }
+            jj_consume_token(QUESTIONMARK);
+            Choice();
+            jj_consume_token(COLON);
+            AstChoice jjtn001 = new AstChoice(JJTCHOICE);
+            boolean jjtc001 = true;
+            jjtree.openNodeScope(jjtn001);
+            try {
+                Choice();
+            } catch (Throwable jjte001) {
+                if (jjtc001) {
+                    jjtree.clearNodeScope(jjtn001);
+                    jjtc001 = false;
+                } else {
+                    jjtree.popNode();
+                }
+                if (jjte001 instanceof RuntimeException) {
+                    {
+                        if (true) throw (RuntimeException) jjte001;
+                    }
+                }
+                if (jjte001 instanceof ParseException) {
+                    {
+                        if (true) throw (ParseException) jjte001;
+                    }
+                }
+                {
+                    if (true) throw (Error) jjte001;
+                }
+            } finally {
+                if (jjtc001) {
+                    jjtree.closeNodeScope(jjtn001, 3);
+                }
+            }
+        }
+    }
+
+    /*
+     * Or
+     * For 'or' '||', then And
+     */
+    final public void Or() throws ParseException {
         And();
-      } catch (Throwable jjte001) {
-                           if (jjtc001) {
-                             jjtree.clearNodeScope(jjtn001);
-                             jjtc001 = false;
-                           } else {
-                             jjtree.popNode();
-                           }
-                           if (jjte001 instanceof RuntimeException) {
-                             {if (true) throw (RuntimeException)jjte001;}
-                           }
-                           if (jjte001 instanceof ParseException) {
-                             {if (true) throw (ParseException)jjte001;}
-                           }
-                           {if (true) throw (Error)jjte001;}
-      } finally {
-                           if (jjtc001) {
-                             jjtree.closeNodeScope(jjtn001,  2);
-                           }
-      }
-    }
-  }
-
-/*
- * And
- * For 'and' '&&', then Equality
- */
-  final public void And() throws ParseException {
-    Equality();
-    label_4:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case AND0:
-      case AND1:
-        ;
-        break;
-      default:
-        jj_la1[4] = jj_gen;
-        break label_4;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case AND0:
-        jj_consume_token(AND0);
-        break;
-      case AND1:
-        jj_consume_token(AND1);
-        break;
-      default:
-        jj_la1[5] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-                                  AstAnd jjtn001 = new AstAnd(JJTAND);
-                                  boolean jjtc001 = true;
-                                  jjtree.openNodeScope(jjtn001);
-      try {
+        label_3:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case OR0:
+                case OR1:
+                    ;
+                    break;
+                default:
+                    jj_la1[2] = jj_gen;
+                    break label_3;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case OR0:
+                    jj_consume_token(OR0);
+                    break;
+                case OR1:
+                    jj_consume_token(OR1);
+                    break;
+                default:
+                    jj_la1[3] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+            AstOr jjtn001 = new AstOr(JJTOR);
+            boolean jjtc001 = true;
+            jjtree.openNodeScope(jjtn001);
+            try {
+                And();
+            } catch (Throwable jjte001) {
+                if (jjtc001) {
+                    jjtree.clearNodeScope(jjtn001);
+                    jjtc001 = false;
+                } else {
+                    jjtree.popNode();
+                }
+                if (jjte001 instanceof RuntimeException) {
+                    {
+                        if (true) throw (RuntimeException) jjte001;
+                    }
+                }
+                if (jjte001 instanceof ParseException) {
+                    {
+                        if (true) throw (ParseException) jjte001;
+                    }
+                }
+                {
+                    if (true) throw (Error) jjte001;
+                }
+            } finally {
+                if (jjtc001) {
+                    jjtree.closeNodeScope(jjtn001, 2);
+                }
+            }
+        }
+    }
+
+    /*
+     * And
+     * For 'and' '&&', then Equality
+     */
+    final public void And() throws ParseException {
         Equality();
-      } catch (Throwable jjte001) {
-                                  if (jjtc001) {
-                                    jjtree.clearNodeScope(jjtn001);
-                                    jjtc001 = false;
-                                  } else {
-                                    jjtree.popNode();
-                                  }
-                                  if (jjte001 instanceof RuntimeException) {
-                                    {if (true) throw (RuntimeException)jjte001;}
-                                  }
-                                  if (jjte001 instanceof ParseException) {
-                                    {if (true) throw (ParseException)jjte001;}
-                                  }
-                                  {if (true) throw (Error)jjte001;}
-      } finally {
-                                  if (jjtc001) {
-                                    jjtree.closeNodeScope(jjtn001,  2);
-                                  }
-      }
-    }
-  }
-
-/*
- * Equality
- * For '==' 'eq' '!=' 'ne', then Compare
- */
-  final public void Equality() throws ParseException {
-    Compare();
-    label_5:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case EQ0:
-      case EQ1:
-      case NE0:
-      case NE1:
-        ;
-        break;
-      default:
-        jj_la1[6] = jj_gen;
-        break label_5;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case EQ0:
-      case EQ1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case EQ0:
-          jj_consume_token(EQ0);
-          break;
-        case EQ1:
-          jj_consume_token(EQ1);
-          break;
-        default:
-          jj_la1[7] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstEqual jjtn001 = new AstEqual(JJTEQUAL);
-                         boolean jjtc001 = true;
-                         jjtree.openNodeScope(jjtn001);
+        label_4:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case AND0:
+                case AND1:
+                    ;
+                    break;
+                default:
+                    jj_la1[4] = jj_gen;
+                    break label_4;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case AND0:
+                    jj_consume_token(AND0);
+                    break;
+                case AND1:
+                    jj_consume_token(AND1);
+                    break;
+                default:
+                    jj_la1[5] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+            AstAnd jjtn001 = new AstAnd(JJTAND);
+            boolean jjtc001 = true;
+            jjtree.openNodeScope(jjtn001);
+            try {
+                Equality();
+            } catch (Throwable jjte001) {
+                if (jjtc001) {
+                    jjtree.clearNodeScope(jjtn001);
+                    jjtc001 = false;
+                } else {
+                    jjtree.popNode();
+                }
+                if (jjte001 instanceof RuntimeException) {
+                    {
+                        if (true) throw (RuntimeException) jjte001;
+                    }
+                }
+                if (jjte001 instanceof ParseException) {
+                    {
+                        if (true) throw (ParseException) jjte001;
+                    }
+                }
+                {
+                    if (true) throw (Error) jjte001;
+                }
+            } finally {
+                if (jjtc001) {
+                    jjtree.closeNodeScope(jjtn001, 2);
+                }
+            }
+        }
+    }
+
+    /*
+     * Equality
+     * For '==' 'eq' '!=' 'ne', then Compare
+     */
+    final public void Equality() throws ParseException {
+        Compare();
+        label_5:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case EQ0:
+                case EQ1:
+                case NE0:
+                case NE1:
+                    ;
+                    break;
+                default:
+                    jj_la1[6] = jj_gen;
+                    break label_5;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case EQ0:
+                case EQ1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case EQ0:
+                            jj_consume_token(EQ0);
+                            break;
+                        case EQ1:
+                            jj_consume_token(EQ1);
+                            break;
+                        default:
+                            jj_la1[7] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstEqual jjtn001 = new AstEqual(JJTEQUAL);
+                    boolean jjtc001 = true;
+                    jjtree.openNodeScope(jjtn001);
+                    try {
+                        Compare();
+                    } catch (Throwable jjte001) {
+                        if (jjtc001) {
+                            jjtree.clearNodeScope(jjtn001);
+                            jjtc001 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte001 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte001;
+                            }
+                        }
+                        if (jjte001 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte001;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte001;
+                        }
+                    } finally {
+                        if (jjtc001) {
+                            jjtree.closeNodeScope(jjtn001, 2);
+                        }
+                    }
+                    break;
+                case NE0:
+                case NE1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case NE0:
+                            jj_consume_token(NE0);
+                            break;
+                        case NE1:
+                            jj_consume_token(NE1);
+                            break;
+                        default:
+                            jj_la1[8] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstNotEqual jjtn002 = new AstNotEqual(JJTNOTEQUAL);
+                    boolean jjtc002 = true;
+                    jjtree.openNodeScope(jjtn002);
+                    try {
+                        Compare();
+                    } catch (Throwable jjte002) {
+                        if (jjtc002) {
+                            jjtree.clearNodeScope(jjtn002);
+                            jjtc002 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte002 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte002;
+                            }
+                        }
+                        if (jjte002 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte002;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte002;
+                        }
+                    } finally {
+                        if (jjtc002) {
+                            jjtree.closeNodeScope(jjtn002, 2);
+                        }
+                    }
+                    break;
+                default:
+                    jj_la1[9] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+        }
+    }
+
+    /*
+     * Compare
+     * For a bunch of them, then Math
+     */
+    final public void Compare() throws ParseException {
+        Math();
+        label_6:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case GT0:
+                case GT1:
+                case LT0:
+                case LT1:
+                case GE0:
+                case GE1:
+                case LE0:
+                case LE1:
+                    ;
+                    break;
+                default:
+                    jj_la1[10] = jj_gen;
+                    break label_6;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LT0:
+                case LT1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case LT0:
+                            jj_consume_token(LT0);
+                            break;
+                        case LT1:
+                            jj_consume_token(LT1);
+                            break;
+                        default:
+                            jj_la1[11] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstLessThan jjtn001 = new AstLessThan(JJTLESSTHAN);
+                    boolean jjtc001 = true;
+                    jjtree.openNodeScope(jjtn001);
+                    try {
+                        Math();
+                    } catch (Throwable jjte001) {
+                        if (jjtc001) {
+                            jjtree.clearNodeScope(jjtn001);
+                            jjtc001 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte001 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte001;
+                            }
+                        }
+                        if (jjte001 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte001;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte001;
+                        }
+                    } finally {
+                        if (jjtc001) {
+                            jjtree.closeNodeScope(jjtn001, 2);
+                        }
+                    }
+                    break;
+                case GT0:
+                case GT1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case GT0:
+                            jj_consume_token(GT0);
+                            break;
+                        case GT1:
+                            jj_consume_token(GT1);
+                            break;
+                        default:
+                            jj_la1[12] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstGreaterThan jjtn002 = new AstGreaterThan(JJTGREATERTHAN);
+                    boolean jjtc002 = true;
+                    jjtree.openNodeScope(jjtn002);
+                    try {
+                        Math();
+                    } catch (Throwable jjte002) {
+                        if (jjtc002) {
+                            jjtree.clearNodeScope(jjtn002);
+                            jjtc002 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte002 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte002;
+                            }
+                        }
+                        if (jjte002 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte002;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte002;
+                        }
+                    } finally {
+                        if (jjtc002) {
+                            jjtree.closeNodeScope(jjtn002, 2);
+                        }
+                    }
+                    break;
+                case LE0:
+                case LE1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case LE0:
+                            jj_consume_token(LE0);
+                            break;
+                        case LE1:
+                            jj_consume_token(LE1);
+                            break;
+                        default:
+                            jj_la1[13] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstLessThanEqual jjtn003 = new AstLessThanEqual(JJTLESSTHANEQUAL);
+                    boolean jjtc003 = true;
+                    jjtree.openNodeScope(jjtn003);
+                    try {
+                        Math();
+                    } catch (Throwable jjte003) {
+                        if (jjtc003) {
+                            jjtree.clearNodeScope(jjtn003);
+                            jjtc003 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte003 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte003;
+                            }
+                        }
+                        if (jjte003 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte003;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte003;
+                        }
+                    } finally {
+                        if (jjtc003) {
+                            jjtree.closeNodeScope(jjtn003, 2);
+                        }
+                    }
+                    break;
+                case GE0:
+                case GE1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case GE0:
+                            jj_consume_token(GE0);
+                            break;
+                        case GE1:
+                            jj_consume_token(GE1);
+                            break;
+                        default:
+                            jj_la1[14] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstGreaterThanEqual jjtn004 = new AstGreaterThanEqual(JJTGREATERTHANEQUAL);
+                    boolean jjtc004 = true;
+                    jjtree.openNodeScope(jjtn004);
+                    try {
+                        Math();
+                    } catch (Throwable jjte004) {
+                        if (jjtc004) {
+                            jjtree.clearNodeScope(jjtn004);
+                            jjtc004 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte004 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte004;
+                            }
+                        }
+                        if (jjte004 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte004;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte004;
+                        }
+                    } finally {
+                        if (jjtc004) {
+                            jjtree.closeNodeScope(jjtn004, 2);
+                        }
+                    }
+                    break;
+                default:
+                    jj_la1[15] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+        }
+    }
+
+    /*
+     * Math
+     * For '+' '-', then Multiplication
+     */
+    final public void Math() throws ParseException {
+        Multiplication();
+        label_7:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case PLUS:
+                case MINUS:
+                    ;
+                    break;
+                default:
+                    jj_la1[16] = jj_gen;
+                    break label_7;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case PLUS:
+                    jj_consume_token(PLUS);
+                    AstPlus jjtn001 = new AstPlus(JJTPLUS);
+                    boolean jjtc001 = true;
+                    jjtree.openNodeScope(jjtn001);
+                    try {
+                        Multiplication();
+                    } catch (Throwable jjte001) {
+                        if (jjtc001) {
+                            jjtree.clearNodeScope(jjtn001);
+                            jjtc001 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte001 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte001;
+                            }
+                        }
+                        if (jjte001 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte001;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte001;
+                        }
+                    } finally {
+                        if (jjtc001) {
+                            jjtree.closeNodeScope(jjtn001, 2);
+                        }
+                    }
+                    break;
+                case MINUS:
+                    jj_consume_token(MINUS);
+                    AstMinus jjtn002 = new AstMinus(JJTMINUS);
+                    boolean jjtc002 = true;
+                    jjtree.openNodeScope(jjtn002);
+                    try {
+                        Multiplication();
+                    } catch (Throwable jjte002) {
+                        if (jjtc002) {
+                            jjtree.clearNodeScope(jjtn002);
+                            jjtc002 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte002 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte002;
+                            }
+                        }
+                        if (jjte002 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte002;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte002;
+                        }
+                    } finally {
+                        if (jjtc002) {
+                            jjtree.closeNodeScope(jjtn002, 2);
+                        }
+                    }
+                    break;
+                default:
+                    jj_la1[17] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+        }
+    }
+
+    /*
+     * Multiplication
+     * For a bunch of them, then Unary
+     */
+    final public void Multiplication() throws ParseException {
+        Unary();
+        label_8:
+        while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case MULT:
+                case DIV0:
+                case DIV1:
+                case MOD0:
+                case MOD1:
+                    ;
+                    break;
+                default:
+                    jj_la1[18] = jj_gen;
+                    break label_8;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case MULT:
+                    jj_consume_token(MULT);
+                    AstMult jjtn001 = new AstMult(JJTMULT);
+                    boolean jjtc001 = true;
+                    jjtree.openNodeScope(jjtn001);
+                    try {
+                        Unary();
+                    } catch (Throwable jjte001) {
+                        if (jjtc001) {
+                            jjtree.clearNodeScope(jjtn001);
+                            jjtc001 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte001 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte001;
+                            }
+                        }
+                        if (jjte001 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte001;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte001;
+                        }
+                    } finally {
+                        if (jjtc001) {
+                            jjtree.closeNodeScope(jjtn001, 2);
+                        }
+                    }
+                    break;
+                case DIV0:
+                case DIV1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case DIV0:
+                            jj_consume_token(DIV0);
+                            break;
+                        case DIV1:
+                            jj_consume_token(DIV1);
+                            break;
+                        default:
+                            jj_la1[19] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstDiv jjtn002 = new AstDiv(JJTDIV);
+                    boolean jjtc002 = true;
+                    jjtree.openNodeScope(jjtn002);
+                    try {
+                        Unary();
+                    } catch (Throwable jjte002) {
+                        if (jjtc002) {
+                            jjtree.clearNodeScope(jjtn002);
+                            jjtc002 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte002 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte002;
+                            }
+                        }
+                        if (jjte002 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte002;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte002;
+                        }
+                    } finally {
+                        if (jjtc002) {
+                            jjtree.closeNodeScope(jjtn002, 2);
+                        }
+                    }
+                    break;
+                case MOD0:
+                case MOD1:
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case MOD0:
+                            jj_consume_token(MOD0);
+                            break;
+                        case MOD1:
+                            jj_consume_token(MOD1);
+                            break;
+                        default:
+                            jj_la1[20] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                    AstMod jjtn003 = new AstMod(JJTMOD);
+                    boolean jjtc003 = true;
+                    jjtree.openNodeScope(jjtn003);
+                    try {
+                        Unary();
+                    } catch (Throwable jjte003) {
+                        if (jjtc003) {
+                            jjtree.clearNodeScope(jjtn003);
+                            jjtc003 = false;
+                        } else {
+                            jjtree.popNode();
+                        }
+                        if (jjte003 instanceof RuntimeException) {
+                            {
+                                if (true) throw (RuntimeException) jjte003;
+                            }
+                        }
+                        if (jjte003 instanceof ParseException) {
+                            {
+                                if (true) throw (ParseException) jjte003;
+                            }
+                        }
+                        {
+                            if (true) throw (Error) jjte003;
+                        }
+                    } finally {
+                        if (jjtc003) {
+                            jjtree.closeNodeScope(jjtn003, 2);
+                        }
+                    }
+                    break;
+                default:
+                    jj_la1[21] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+            }
+        }
+    }
+
+    /*
+     * Unary
+     * For '-' '!' 'not' 'empty', then Value
+     */
+    final public void Unary() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case MINUS:
+                jj_consume_token(MINUS);
+                AstNegative jjtn001 = new AstNegative(JJTNEGATIVE);
+                boolean jjtc001 = true;
+                jjtree.openNodeScope(jjtn001);
+                try {
+                    Unary();
+                } catch (Throwable jjte001) {
+                    if (jjtc001) {
+                        jjtree.clearNodeScope(jjtn001);
+                        jjtc001 = false;
+                    } else {
+                        jjtree.popNode();
+                    }
+                    if (jjte001 instanceof RuntimeException) {
+                        {
+                            if (true) throw (RuntimeException) jjte001;
+                        }
+                    }
+                    if (jjte001 instanceof ParseException) {
+                        {
+                            if (true) throw (ParseException) jjte001;
+                        }
+                    }
+                    {
+                        if (true) throw (Error) jjte001;
+                    }
+                } finally {
+                    if (jjtc001) {
+                        jjtree.closeNodeScope(jjtn001, true);
+                    }
+                }
+                break;
+            case NOT0:
+            case NOT1:
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case NOT0:
+                        jj_consume_token(NOT0);
+                        break;
+                    case NOT1:
+                        jj_consume_token(NOT1);
+                        break;
+                    default:
+                        jj_la1[22] = jj_gen;
+                        jj_consume_token(-1);
+                        throw new ParseException();
+                }
+                AstNot jjtn002 = new AstNot(JJTNOT);
+                boolean jjtc002 = true;
+                jjtree.openNodeScope(jjtn002);
+                try {
+                    Unary();
+                } catch (Throwable jjte002) {
+                    if (jjtc002) {
+                        jjtree.clearNodeScope(jjtn002);
+                        jjtc002 = false;
+                    } else {
+                        jjtree.popNode();
+                    }
+                    if (jjte002 instanceof RuntimeException) {
+                        {
+                            if (true) throw (RuntimeException) jjte002;
+                        }
+                    }
+                    if (jjte002 instanceof ParseException) {
+                        {
+                            if (true) throw (ParseException) jjte002;
+                        }
+                    }
+                    {
+                        if (true) throw (Error) jjte002;
+                    }
+                } finally {
+                    if (jjtc002) {
+                        jjtree.closeNodeScope(jjtn002, true);
+                    }
+                }
+                break;
+            case EMPTY:
+                jj_consume_token(EMPTY);
+                AstEmpty jjtn003 = new AstEmpty(JJTEMPTY);
+                boolean jjtc003 = true;
+                jjtree.openNodeScope(jjtn003);
+                try {
+                    Unary();
+                } catch (Throwable jjte003) {
+                    if (jjtc003) {
+                        jjtree.clearNodeScope(jjtn003);
+                        jjtc003 = false;
+                    } else {
+                        jjtree.popNode();
+                    }
+                    if (jjte003 instanceof RuntimeException) {
+                        {
+                            if (true) throw (RuntimeException) jjte003;
+                        }
+                    }
+                    if (jjte003 instanceof ParseException) {
+                        {
+                            if (true) throw (ParseException) jjte003;
+                        }
+                    }
+                    {
+                        if (true) throw (Error) jjte003;
+                    }
+                } finally {
+                    if (jjtc003) {
+                        jjtree.closeNodeScope(jjtn003, true);
+                    }
+                }
+                break;
+            case INTEGER_LITERAL:
+            case FLOATING_POINT_LITERAL:
+            case STRING_LITERAL:
+            case TRUE:
+            case FALSE:
+            case NULL:
+            case LPAREN:
+            case IDENTIFIER:
+                Value();
+                break;
+            default:
+                jj_la1[23] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+        }
+    }
+
+    /*
+     * Value
+     * Defines Prefix plus zero or more Suffixes
+     */
+    final public void Value() throws ParseException {
+        AstValue jjtn001 = new AstValue(JJTVALUE);
+        boolean jjtc001 = true;
+        jjtree.openNodeScope(jjtn001);
         try {
-          Compare();
+            ValuePrefix();
+            label_9:
+            while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case DOT:
+                    case LBRACK:
+                        ;
+                        break;
+                    default:
+                        jj_la1[24] = jj_gen;
+                        break label_9;
+                }
+                ValueSuffix();
+            }
         } catch (Throwable jjte001) {
-                         if (jjtc001) {
-                           jjtree.clearNodeScope(jjtn001);
-                           jjtc001 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte001 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte001;}
-                         }
-                         if (jjte001 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte001;}
-                         }
-                         {if (true) throw (Error)jjte001;}
+            if (jjtc001) {
+                jjtree.clearNodeScope(jjtn001);
+                jjtc001 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte001;
+                }
+            }
+            if (jjte001 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte001;
+                }
+            }
+            {
+                if (true) throw (Error) jjte001;
+            }
         } finally {
-                         if (jjtc001) {
-                           jjtree.closeNodeScope(jjtn001,  2);
-                         }
-        }
-        break;
-      case NE0:
-      case NE1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case NE0:
-          jj_consume_token(NE0);
-          break;
-        case NE1:
-          jj_consume_token(NE1);
-          break;
-        default:
-          jj_la1[8] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstNotEqual jjtn002 = new AstNotEqual(JJTNOTEQUAL);
-                         boolean jjtc002 = true;
-                         jjtree.openNodeScope(jjtn002);
+            if (jjtc001) {
+                jjtree.closeNodeScope(jjtn001, jjtree.nodeArity() > 1);
+            }
+        }
+    }
+
+    /*
+     * ValuePrefix
+     * For Literals, Variables, and Functions
+     */
+    final public void ValuePrefix() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTEGER_LITERAL:
+            case FLOATING_POINT_LITERAL:
+            case STRING_LITERAL:
+            case TRUE:
+            case FALSE:
+            case NULL:
+                Literal();
+                break;
+            case LPAREN:
+            case IDENTIFIER:
+                NonLiteral();
+                break;
+            default:
+                jj_la1[25] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+        }
+    }
+
+    /*
+     * ValueSuffix
+     * Either dot or bracket notation
+     */
+    final public void ValueSuffix() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case DOT:
+                DotSuffix();
+                break;
+            case LBRACK:
+                BracketSuffix();
+                break;
+            default:
+                jj_la1[26] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+        }
+    }
+
+    /*
+     * DotSuffix
+     * Dot Property
+     */
+    final public void DotSuffix() throws ParseException {
+                               /*@bgen(jjtree) DotSuffix */
+        AstDotSuffix jjtn000 = new AstDotSuffix(JJTDOTSUFFIX);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
         try {
-          Compare();
-        } catch (Throwable jjte002) {
-                         if (jjtc002) {
-                           jjtree.clearNodeScope(jjtn002);
-                           jjtc002 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte002 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte002;}
-                         }
-                         if (jjte002 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte002;}
-                         }
-                         {if (true) throw (Error)jjte002;}
+            jj_consume_token(DOT);
+            t = jj_consume_token(IDENTIFIER);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
         } finally {
-                         if (jjtc002) {
-                           jjtree.closeNodeScope(jjtn002,  2);
-                         }
-        }
-        break;
-      default:
-        jj_la1[9] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-/*
- * Compare
- * For a bunch of them, then Math
- */
-  final public void Compare() throws ParseException {
-    Math();
-    label_6:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case GT0:
-      case GT1:
-      case LT0:
-      case LT1:
-      case GE0:
-      case GE1:
-      case LE0:
-      case LE1:
-        ;
-        break;
-      default:
-        jj_la1[10] = jj_gen;
-        break label_6;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case LT0:
-      case LT1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LT0:
-          jj_consume_token(LT0);
-          break;
-        case LT1:
-          jj_consume_token(LT1);
-          break;
-        default:
-          jj_la1[11] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstLessThan jjtn001 = new AstLessThan(JJTLESSTHAN);
-                         boolean jjtc001 = true;
-                         jjtree.openNodeScope(jjtn001);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * BracketSuffix
+     * Sub Expression Suffix
+     */
+    final public void BracketSuffix() throws ParseException {
+                                       /*@bgen(jjtree) BracketSuffix */
+        AstBracketSuffix jjtn000 = new AstBracketSuffix(JJTBRACKETSUFFIX);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
         try {
-          Math();
-        } catch (Throwable jjte001) {
-                         if (jjtc001) {
-                           jjtree.clearNodeScope(jjtn001);
-                           jjtc001 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte001 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte001;}
-                         }
-                         if (jjte001 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte001;}
-                         }
-                         {if (true) throw (Error)jjte001;}
+            jj_consume_token(LBRACK);
+            Expression();
+            jj_consume_token(RBRACK);
+        } catch (Throwable jjte000) {
+            if (jjtc000) {
+                jjtree.clearNodeScope(jjtn000);
+                jjtc000 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte000 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte000;
+                }
+            }
+            if (jjte000 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte000;
+                }
+            }
+            {
+                if (true) throw (Error) jjte000;
+            }
         } finally {
-                         if (jjtc001) {
-                           jjtree.closeNodeScope(jjtn001,  2);
-                         }
-        }
-        break;
-      case GT0:
-      case GT1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case GT0:
-          jj_consume_token(GT0);
-          break;
-        case GT1:
-          jj_consume_token(GT1);
-          break;
-        default:
-          jj_la1[12] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstGreaterThan jjtn002 = new AstGreaterThan(JJTGREATERTHAN);
-                         boolean jjtc002 = true;
-                         jjtree.openNodeScope(jjtn002);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * NonLiteral
+     * For Grouped Operations, Identifiers, and Functions
+     */
+    final public void NonLiteral() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case LPAREN:
+                jj_consume_token(LPAREN);
+                Expression();
+                jj_consume_token(RPAREN);
+                break;
+            default:
+                jj_la1[27] = jj_gen;
+                if (jj_2_2(2147483647)) {
+                    Function();
+                } else {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case IDENTIFIER:
+                            Identifier();
+                            break;
+                        default:
+                            jj_la1[28] = jj_gen;
+                            jj_consume_token(-1);
+                            throw new ParseException();
+                    }
+                }
+        }
+    }
+
+    /*
+     * Identifier
+     * Java Language Identifier
+     */
+    final public void Identifier() throws ParseException {
+                                 /*@bgen(jjtree) Identifier */
+        AstIdentifier jjtn000 = new AstIdentifier(JJTIDENTIFIER);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
         try {
-          Math();
-        } catch (Throwable jjte002) {
-                         if (jjtc002) {
-                           jjtree.clearNodeScope(jjtn002);
-                           jjtc002 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte002 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte002;}
-                         }
-                         if (jjte002 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte002;}
-                         }
-                         {if (true) throw (Error)jjte002;}
+            t = jj_consume_token(IDENTIFIER);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
         } finally {
-                         if (jjtc002) {
-                           jjtree.closeNodeScope(jjtn002,  2);
-                         }
-        }
-        break;
-      case LE0:
-      case LE1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LE0:
-          jj_consume_token(LE0);
-          break;
-        case LE1:
-          jj_consume_token(LE1);
-          break;
-        default:
-          jj_la1[13] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstLessThanEqual jjtn003 = new AstLessThanEqual(JJTLESSTHANEQUAL);
-                         boolean jjtc003 = true;
-                         jjtree.openNodeScope(jjtn003);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * Function
+     * Namespace:Name(a,b,c)
+     */
+    final public void Function() throws ParseException {
+ /*@bgen(jjtree) Function */
+        AstFunction jjtn000 = new AstFunction(JJTFUNCTION);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t0 = null;
+        Token t1 = null;
         try {
-          Math();
-        } catch (Throwable jjte003) {
-                         if (jjtc003) {
-                           jjtree.clearNodeScope(jjtn003);
-                           jjtc003 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte003 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte003;}
-                         }
-                         if (jjte003 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte003;}
-                         }
-                         {if (true) throw (Error)jjte003;}
+            if (jj_2_3(2)) {
+                t0 = jj_consume_token(IDENTIFIER);
+                jj_consume_token(COLON);
+            } else {
+                ;
+            }
+            t1 = jj_consume_token(IDENTIFIER);
+            if (t0 != null) {
+                jjtn000.setPrefix(t0.image);
+                jjtn000.setLocalName(t1.image);
+            } else {
+                jjtn000.setLocalName(t1.image);
+            }
+            jj_consume_token(LPAREN);
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTEGER_LITERAL:
+                case FLOATING_POINT_LITERAL:
+                case STRING_LITERAL:
+                case TRUE:
+                case FALSE:
+                case NULL:
+                case LPAREN:
+                case NOT0:
+                case NOT1:
+                case EMPTY:
+                case MINUS:
+                case IDENTIFIER:
+                    Expression();
+                    label_10:
+                    while (true) {
+                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                            case COMMA:
+                                ;
+                                break;
+                            default:
+                                jj_la1[29] = jj_gen;
+                                break label_10;
+                        }
+                        jj_consume_token(COMMA);
+                        Expression();
+                    }
+                    break;
+                default:
+                    jj_la1[30] = jj_gen;
+                    ;
+            }
+            jj_consume_token(RPAREN);
+        } catch (Throwable jjte000) {
+            if (jjtc000) {
+                jjtree.clearNodeScope(jjtn000);
+                jjtc000 = false;
+            } else {
+                jjtree.popNode();
+            }
+            if (jjte000 instanceof RuntimeException) {
+                {
+                    if (true) throw (RuntimeException) jjte000;
+                }
+            }
+            if (jjte000 instanceof ParseException) {
+                {
+                    if (true) throw (ParseException) jjte000;
+                }
+            }
+            {
+                if (true) throw (Error) jjte000;
+            }
         } finally {
-                         if (jjtc003) {
-                           jjtree.closeNodeScope(jjtn003,  2);
-                         }
-        }
-        break;
-      case GE0:
-      case GE1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case GE0:
-          jj_consume_token(GE0);
-          break;
-        case GE1:
-          jj_consume_token(GE1);
-          break;
-        default:
-          jj_la1[14] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         AstGreaterThanEqual jjtn004 = new AstGreaterThanEqual(JJTGREATERTHANEQUAL);
-                         boolean jjtc004 = true;
-                         jjtree.openNodeScope(jjtn004);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * Literal
+     * Reserved Keywords
+     */
+    final public void Literal() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case TRUE:
+            case FALSE:
+                Boolean();
+                break;
+            case FLOATING_POINT_LITERAL:
+                FloatingPoint();
+                break;
+            case INTEGER_LITERAL:
+                Integer();
+                break;
+            case STRING_LITERAL:
+                String();
+                break;
+            case NULL:
+                Null();
+                break;
+            default:
+                jj_la1[31] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+        }
+    }
+
+    /*
+     * Boolean
+     * For 'true' 'false'
+     */
+    final public void Boolean() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case TRUE:
+                AstTrue jjtn001 = new AstTrue(JJTTRUE);
+                boolean jjtc001 = true;
+                jjtree.openNodeScope(jjtn001);
+                try {
+                    jj_consume_token(TRUE);
+                } finally {
+                    if (jjtc001) {
+                        jjtree.closeNodeScope(jjtn001, true);
+                    }
+                }
+                break;
+            case FALSE:
+                AstFalse jjtn002 = new AstFalse(JJTFALSE);
+                boolean jjtc002 = true;
+                jjtree.openNodeScope(jjtn002);
+                try {
+                    jj_consume_token(FALSE);
+                } finally {
+                    if (jjtc002) {
+                        jjtree.closeNodeScope(jjtn002, true);
+                    }
+                }
+                break;
+            default:
+                jj_la1[32] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+        }
+    }
+
+    /*
+     * FloatinPoint
+     * For Decimal and Floating Point Literals
+     */
+    final public void FloatingPoint() throws ParseException {
+                                       /*@bgen(jjtree) FloatingPoint */
+        AstFloatingPoint jjtn000 = new AstFloatingPoint(JJTFLOATINGPOINT);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
         try {
-          Math();
-        } catch (Throwable jjte004) {
-                         if (jjtc004) {
-                           jjtree.clearNodeScope(jjtn004);
-                           jjtc004 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte004 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte004;}
-                         }
-                         if (jjte004 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte004;}
-                         }
-                         {if (true) throw (Error)jjte004;}
+            t = jj_consume_token(FLOATING_POINT_LITERAL);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
         } finally {
-                         if (jjtc004) {
-                           jjtree.closeNodeScope(jjtn004,  2);
-                         }
-        }
-        break;
-      default:
-        jj_la1[15] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-/*
- * Math
- * For '+' '-', then Multiplication
- */
-  final public void Math() throws ParseException {
-    Multiplication();
-    label_7:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-      case MINUS:
-        ;
-        break;
-      default:
-        jj_la1[16] = jj_gen;
-        break label_7;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-        jj_consume_token(PLUS);
-                  AstPlus jjtn001 = new AstPlus(JJTPLUS);
-                  boolean jjtc001 = true;
-                  jjtree.openNodeScope(jjtn001);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * Integer
+     * For Simple Numeric Literals
+     */
+    final public void Integer() throws ParseException {
+                           /*@bgen(jjtree) Integer */
+        AstInteger jjtn000 = new AstInteger(JJTINTEGER);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
         try {
-          Multiplication();
-        } catch (Throwable jjte001) {
-                  if (jjtc001) {
-                    jjtree.clearNodeScope(jjtn001);
-                    jjtc001 = false;
-                  } else {
-                    jjtree.popNode();
-                  }
-                  if (jjte001 instanceof RuntimeException) {
-                    {if (true) throw (RuntimeException)jjte001;}
-                  }
-                  if (jjte001 instanceof ParseException) {
-                    {if (true) throw (ParseException)jjte001;}
-                  }
-                  {if (true) throw (Error)jjte001;}
+            t = jj_consume_token(INTEGER_LITERAL);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
         } finally {
-                  if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001,  2);
-                  }
-        }
-        break;
-      case MINUS:
-        jj_consume_token(MINUS);
-                   AstMinus jjtn002 = new AstMinus(JJTMINUS);
-                   boolean jjtc002 = true;
-                   jjtree.openNodeScope(jjtn002);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * String
+     * For Quoted Literals
+     */
+    final public void String() throws ParseException {
+                         /*@bgen(jjtree) String */
+        AstString jjtn000 = new AstString(JJTSTRING);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
+        Token t = null;
         try {
-          Multiplication();
-        } catch (Throwable jjte002) {
-                   if (jjtc002) {
-                     jjtree.clearNodeScope(jjtn002);
-                     jjtc002 = false;
-                   } else {
-                     jjtree.popNode();
-                   }
-                   if (jjte002 instanceof RuntimeException) {
-                     {if (true) throw (RuntimeException)jjte002;}
-                   }
-                   if (jjte002 instanceof ParseException) {
-                     {if (true) throw (ParseException)jjte002;}
-                   }
-                   {if (true) throw (Error)jjte002;}
+            t = jj_consume_token(STRING_LITERAL);
+            jjtree.closeNodeScope(jjtn000, true);
+            jjtc000 = false;
+            jjtn000.setImage(t.image);
         } finally {
-                   if (jjtc002) {
-                     jjtree.closeNodeScope(jjtn002,  2);
-                   }
-        }
-        break;
-      default:
-        jj_la1[17] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-/*
- * Multiplication
- * For a bunch of them, then Unary
- */
-  final public void Multiplication() throws ParseException {
-    Unary();
-    label_8:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case MULT:
-      case DIV0:
-      case DIV1:
-      case MOD0:
-      case MOD1:
-        ;
-        break;
-      default:
-        jj_la1[18] = jj_gen;
-        break label_8;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case MULT:
-        jj_consume_token(MULT);
-                  AstMult jjtn001 = new AstMult(JJTMULT);
-                  boolean jjtc001 = true;
-                  jjtree.openNodeScope(jjtn001);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    /*
+     * Null
+     * For 'null'
+     */
+    final public void Null() throws ParseException {
+                     /*@bgen(jjtree) Null */
+        AstNull jjtn000 = new AstNull(JJTNULL);
+        boolean jjtc000 = true;
+        jjtree.openNodeScope(jjtn000);
         try {
-          Unary();
-        } catch (Throwable jjte001) {
-                  if (jjtc001) {
-                    jjtree.clearNodeScope(jjtn001);
-                    jjtc001 = false;
-                  } else {
-                    jjtree.popNode();
-                  }
-                  if (jjte001 instanceof RuntimeException) {
-                    {if (true) throw (RuntimeException)jjte001;}
-                  }
-                  if (jjte001 instanceof ParseException) {
-                    {if (true) throw (ParseException)jjte001;}
-                  }
-                  {if (true) throw (Error)jjte001;}
+            jj_consume_token(NULL);
         } finally {
-                  if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001,  2);
-                  }
-        }
-        break;
-      case DIV0:
-      case DIV1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DIV0:
-          jj_consume_token(DIV0);
-          break;
-        case DIV1:
-          jj_consume_token(DIV1);
-          break;
-        default:
-          jj_la1[19] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                           AstDiv jjtn002 = new AstDiv(JJTDIV);
-                           boolean jjtc002 = true;
-                           jjtree.openNodeScope(jjtn002);
+            if (jjtc000) {
+                jjtree.closeNodeScope(jjtn000, true);
+            }
+        }
+    }
+
+    private boolean jj_2_1(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
         try {
-          Unary();
-        } catch (Throwable jjte002) {
-                           if (jjtc002) {
-                             jjtree.clearNodeScope(jjtn002);
-                             jjtc002 = false;
-                           } else {
-                             jjtree.popNode();
-                           }
-                           if (jjte002 instanceof RuntimeException) {
-                             {if (true) throw (RuntimeException)jjte002;}
-                           }
-                           if (jjte002 instanceof ParseException) {
-                             {if (true) throw (ParseException)jjte002;}
-                           }
-                           {if (true) throw (Error)jjte002;}
+            return !jj_3_1();
+        } catch (LookaheadSuccess ls) {
+            return true;
         } finally {
-                           if (jjtc002) {
-                             jjtree.closeNodeScope(jjtn002,  2);
-                           }
-        }
-        break;
-      case MOD0:
-      case MOD1:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case MOD0:
-          jj_consume_token(MOD0);
-          break;
-        case MOD1:
-          jj_consume_token(MOD1);
-          break;
-        default:
-          jj_la1[20] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                           AstMod jjtn003 = new AstMod(JJTMOD);
-                           boolean jjtc003 = true;
-                           jjtree.openNodeScope(jjtn003);
+            jj_save(0, xla);
+        }
+    }
+
+    private boolean jj_2_2(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
         try {
-          Unary();
-        } catch (Throwable jjte003) {
-                           if (jjtc003) {
-                             jjtree.clearNodeScope(jjtn003);
-                             jjtc003 = false;
-                           } else {
-                             jjtree.popNode();
-                           }
-                           if (jjte003 instanceof RuntimeException) {
-                             {if (true) throw (RuntimeException)jjte003;}
-                           }
-                           if (jjte003 instanceof ParseException) {
-                             {if (true) throw (ParseException)jjte003;}
-                           }
-                           {if (true) throw (Error)jjte003;}
+            return !jj_3_2();
+        } catch (LookaheadSuccess ls) {
+            return true;
         } finally {
-                           if (jjtc003) {
-                             jjtree.closeNodeScope(jjtn003,  2);
-                           }
-        }
-        break;
-      default:
-        jj_la1[21] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-/*
- * Unary
- * For '-' '!' 'not' 'empty', then Value
- */
-  final public void Unary() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case MINUS:
-      jj_consume_token(MINUS);
-                  AstNegative jjtn001 = new AstNegative(JJTNEGATIVE);
-                  boolean jjtc001 = true;
-                  jjtree.openNodeScope(jjtn001);
-      try {
-        Unary();
-      } catch (Throwable jjte001) {
-                  if (jjtc001) {
-                    jjtree.clearNodeScope(jjtn001);
-                    jjtc001 = false;
-                  } else {
-                    jjtree.popNode();
-                  }
-                  if (jjte001 instanceof RuntimeException) {
-                    {if (true) throw (RuntimeException)jjte001;}
-                  }
-                  if (jjte001 instanceof ParseException) {
-                    {if (true) throw (ParseException)jjte001;}
-                  }
-                  {if (true) throw (Error)jjte001;}
-      } finally {
-                  if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001, true);
-                  }
-      }
-      break;
-    case NOT0:
-    case NOT1:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case NOT0:
-        jj_consume_token(NOT0);
-        break;
-      case NOT1:
-        jj_consume_token(NOT1);
-        break;
-      default:
-        jj_la1[22] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-                          AstNot jjtn002 = new AstNot(JJTNOT);
-                          boolean jjtc002 = true;
-                          jjtree.openNodeScope(jjtn002);
-      try {
-        Unary();
-      } catch (Throwable jjte002) {
-                          if (jjtc002) {
-                            jjtree.clearNodeScope(jjtn002);
-                            jjtc002 = false;
-                          } else {
-                            jjtree.popNode();
-                          }
-                          if (jjte002 instanceof RuntimeException) {
-                            {if (true) throw (RuntimeException)jjte002;}
-                          }
-                          if (jjte002 instanceof ParseException) {
-                            {if (true) throw (ParseException)jjte002;}
-                          }
-                          {if (true) throw (Error)jjte002;}
-      } finally {
-                          if (jjtc002) {
-                            jjtree.closeNodeScope(jjtn002, true);
-                          }
-      }
-      break;
-    case EMPTY:
-      jj_consume_token(EMPTY);
-                  AstEmpty jjtn003 = new AstEmpty(JJTEMPTY);
-                  boolean jjtc003 = true;
-                  jjtree.openNodeScope(jjtn003);
-      try {
-        Unary();
-      } catch (Throwable jjte003) {
-                  if (jjtc003) {
-                    jjtree.clearNodeScope(jjtn003);
-                    jjtc003 = false;
-                  } else {
-                    jjtree.popNode();
-                  }
-                  if (jjte003 instanceof RuntimeException) {
-                    {if (true) throw (RuntimeException)jjte003;}
-                  }
-                  if (jjte003 instanceof ParseException) {
-                    {if (true) throw (ParseException)jjte003;}
-                  }
-                  {if (true) throw (Error)jjte003;}
-      } finally {
-                  if (jjtc003) {
-                    jjtree.closeNodeScope(jjtn003, true);
-                  }
-      }
-      break;
-    case INTEGER_LITERAL:
-    case FLOATING_POINT_LITERAL:
-    case STRING_LITERAL:
-    case TRUE:
-    case FALSE:
-    case NULL:
-    case LPAREN:
-    case IDENTIFIER:
-      Value();
-      break;
-    default:
-      jj_la1[23] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
-
-/*
- * Value
- * Defines Prefix plus zero or more Suffixes
- */
-  final public void Value() throws ParseException {
-      AstValue jjtn001 = new AstValue(JJTVALUE);
-      boolean jjtc001 = true;
-      jjtree.openNodeScope(jjtn001);
-    try {
-      ValuePrefix();
-      label_9:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DOT:
-        case LBRACK:
-          ;
-          break;
-        default:
-          jj_la1[24] = jj_gen;
-          break label_9;
-        }
-        ValueSuffix();
-      }
-    } catch (Throwable jjte001) {
-      if (jjtc001) {
-        jjtree.clearNodeScope(jjtn001);
-        jjtc001 = false;
-      } else {
-        jjtree.popNode();
-      }
-      if (jjte001 instanceof RuntimeException) {
-        {if (true) throw (RuntimeException)jjte001;}
-      }
-      if (jjte001 instanceof ParseException) {
-        {if (true) throw (ParseException)jjte001;}
-      }
-      {if (true) throw (Error)jjte001;}
-    } finally {
-      if (jjtc001) {
-        jjtree.closeNodeScope(jjtn001, jjtree.nodeArity() > 1);
-      }
-    }
-  }
-
-/*
- * ValuePrefix
- * For Literals, Variables, and Functions
- */
-  final public void ValuePrefix() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTEGER_LITERAL:
-    case FLOATING_POINT_LITERAL:
-    case STRING_LITERAL:
-    case TRUE:
-    case FALSE:
-    case NULL:
-      Literal();
-      break;
-    case LPAREN:
-    case IDENTIFIER:
-      NonLiteral();
-      break;
-    default:
-      jj_la1[25] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
-
-/*
- * ValueSuffix
- * Either dot or bracket notation
- */
-  final public void ValueSuffix() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case DOT:
-      DotSuffix();
-      break;
-    case LBRACK:
-      BracketSuffix();
-      break;
-    default:
-      jj_la1[26] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
-
-/*
- * DotSuffix
- * Dot Property
- */
-  final public void DotSuffix() throws ParseException {
-                               /*@bgen(jjtree) DotSuffix */
-                                AstDotSuffix jjtn000 = new AstDotSuffix(JJTDOTSUFFIX);
-                                boolean jjtc000 = true;
-                                jjtree.openNodeScope(jjtn000);Token t = null;
-    try {
-      jj_consume_token(DOT);
-      t = jj_consume_token(IDENTIFIER);
-                           jjtree.closeNodeScope(jjtn000, true);
-                           jjtc000 = false;
-                           jjtn000.setImage(t.image);
-    } finally {
-      if (jjtc000) {
-        jjtree.closeNodeScope(jjtn000, true);
-      }
-    }
-  }
-
-/*
- * BracketSuffix
- * Sub Expression Suffix
- */
-  final public void BracketSuffix() throws ParseException {
-                                       /*@bgen(jjtree) BracketSuffix */
-  AstBracketSuffix jjtn000 = new AstBracketSuffix(JJTBRACKETSUFFIX);
-  boolean jjtc000 = true;
-  jjtree.openNodeScope(jjtn000);
-    try {
-      jj_consume_token(LBRACK);
-      Expression();
-      jj_consume_token(RBRACK);
-    } catch (Throwable jjte000) {
-      if (jjtc000) {
-        jjtree.clearNodeScope(jjtn000);
-        jjtc000 = false;
-      } else {
-        jjtree.popNode();
-      }
-      if (jjte000 instanceof RuntimeException) {
-        {if (true) throw (RuntimeException)jjte000;}
-      }


<TRUNCATED>

[13/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
index 2372499..fa5a178 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
@@ -60,13 +60,13 @@ import java.util.concurrent.ConcurrentMap;
  *
  * <!-- START SNIPPET: packagenote -->
  * <p>To clarify #5, while traversing the package hierarchy, Struts 2 will look for a file package.properties:</p>
- * com/<br/>
- * &nbsp; acme/<br/>
- * &nbsp; &nbsp; package.properties<br/>
- * &nbsp; &nbsp; actions/<br/>
- * &nbsp; &nbsp; &nbsp; package.properties<br/>
- * &nbsp; &nbsp; &nbsp; FooAction.java<br/>
- * &nbsp; &nbsp; &nbsp; FooAction.properties<br/>
+ * com/<br>
+ * &nbsp; acme/<br>
+ * &nbsp; &nbsp; package.properties<br>
+ * &nbsp; &nbsp; actions/<br>
+ * &nbsp; &nbsp; &nbsp; package.properties<br>
+ * &nbsp; &nbsp; &nbsp; FooAction.java<br>
+ * &nbsp; &nbsp; &nbsp; FooAction.properties<br>
  * <p>
  * If FooAction.properties does not exist, com/acme/action/package.properties will be searched for, if
  * not found com/acme/package.properties, if not found com/package.properties, etc.
@@ -291,7 +291,7 @@ public class LocalizedTextUtil {
     }
 
     /**
-     * Sets a {@link ClassLoader} to look up the bundle from if none can be found on the current thread's classloader
+     * @param classLoader a {@link ClassLoader} to look up the bundle from if none can be found on the current thread's classloader
      */
     public static void setDelegatedClassLoader(final ClassLoader classLoader) {
         synchronized (bundlesMap) {
@@ -300,7 +300,7 @@ public class LocalizedTextUtil {
     }
 
     /**
-     * Removes the bundle from any cached "misses"
+     * @param bundleName Removes the bundle from any cached "misses"
      */
     public static void clearBundle(final String bundleName) {
         bundlesMap.remove(getCurrentThreadContextClassLoader().hashCode() + bundleName);
@@ -323,6 +323,11 @@ public class LocalizedTextUtil {
      * Calls {@link #findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)}
      * with aTextName as the default message.
      *
+     * @param aClass class name
+     * @param aTextName  text name
+     * @param locale the locale
+     *
+     * @return the localized text, or null if none can be found and no defaultMessage is provided
      * @see #findText(Class aClass, String aTextName, Locale locale, String defaultMessage, Object[] args)
      */
     public static String findText(Class aClass, String aTextName, Locale locale) {
@@ -610,6 +615,11 @@ public class LocalizedTextUtil {
      * will be treated as an OGNL expression and evaluated as such.
      * </p>
      *
+     * @param bundle a resource bundle name
+     * @param aTextName  text name
+     * @param locale the locale
+     *
+     * @return the localized text, or null if none can be found and no defaultMessage is provided
      * @see #findText(java.util.ResourceBundle, String, java.util.Locale, String, Object[])
      */
     public static String findText(ResourceBundle bundle, String aTextName, Locale locale) {
@@ -636,6 +646,7 @@ public class LocalizedTextUtil {
      * @param locale         the locale
      * @param defaultMessage the default message to use if no message was found in the bundle
      * @param args           arguments for the message formatter.
+     * @return the localized text, or null if none can be found and no defaultMessage is provided
      */
     public static String findText(ResourceBundle bundle, String aTextName, Locale locale, String defaultMessage, Object[] args) {
         ValueStack valueStack = ActionContext.getContext().getValueStack();
@@ -663,6 +674,7 @@ public class LocalizedTextUtil {
      * @param defaultMessage the default message to use if no message was found in the bundle
      * @param args           arguments for the message formatter.
      * @param valueStack     the OGNL value stack.
+     * @return the localized text, or null if none can be found and no defaultMessage is provided
      */
     public static String findText(ResourceBundle bundle, String aTextName, Locale locale, String defaultMessage, Object[] args,
                                   ValueStack valueStack) {
@@ -689,7 +701,7 @@ public class LocalizedTextUtil {
     }
 
     /**
-     * Gets the default message.
+     * @return the default message.
      */
     private static GetDefaultMessageReturnArg getDefaultMessage(String key, Locale locale, ValueStack valueStack, Object[] args,
                                                                 String defaultMessage) {
@@ -717,7 +729,7 @@ public class LocalizedTextUtil {
     }
 
     /**
-     * Gets the message from the named resource bundle.
+     * @return the message from the named resource bundle.
      */
     private static String getMessage(String bundleName, Locale locale, String key, ValueStack valueStack, Object[] args) {
         ResourceBundle bundle = findResourceBundle(bundleName, locale);
@@ -764,6 +776,8 @@ public class LocalizedTextUtil {
     /**
      * Traverse up class hierarchy looking for message.  Looks at class, then implemented interface,
      * before going up hierarchy.
+     *
+     * @return the message
      */
     private static String findMessage(Class clazz, String key, String indexedKey, Locale locale, Object[] args, Set<String> checked,
                                       ValueStack valueStack) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java b/core/src/main/java/com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java
index 8d197c6..3e640cb 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/NamedVariablePatternMatcher.java
@@ -28,28 +28,28 @@ import java.util.regex.Pattern;
  * at least one character must match in order for the wildcard to be matched successfully.  Matched values will be
  * available in the variable map, indexed by the name they were given in the pattern.
  *
- * <p>For example, the following patterns will be processed as so:
- * </p>
- * <table>
+ * <p>For example, the following patterns will be processed as so:</p>
+ *
+ * <table summary="">
  * <tr>
  *  <th>Pattern</th>
  *  <th>Example</th>
  *  <th>Variable Map Contents</th>
  * </tr>
  * <tr>
- *  <td><code>/animals/{animal}</code</td>
+ *  <td><code>/animals/{animal}</code></td>
  *  <td><code>/animals/dog</code></td>
- *  <td>{animal -> dog}</td>
+ *  <td>{animal -&gt; dog}</td>
  * </tr>
  * <tr>
- *  <td><code>/animals/{animal}/tag/No{id}</code</td>
+ *  <td><code>/animals/{animal}/tag/No{id}</code></td>
  *  <td><code>/animals/dog/tag/No23</code></td>
- *  <td>{animal -> dog, id -> 23}</td>
+ *  <td>{animal -&gt; dog, id -&gt; 23}</td>
  * </tr>
  * <tr>
- *  <td><code>/{language}</code</td>
+ *  <td><code>/{language}</code></td>
  *  <td><code>/en</code></td>
- *  <td>{language -> en}</td>
+ *  <td>{language -&gt; en}</td>
  * </tr>
  * </table>
  *
@@ -57,7 +57,7 @@ import java.util.regex.Pattern;
  * Excaping hasn't been implemented since the intended use of these patterns will be in matching URLs.
  * </p>
  *
- * @Since 2.1
+ * @since 2.1
  */
 public class NamedVariablePatternMatcher implements PatternMatcher<NamedVariablePatternMatcher.CompiledPattern> {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/ResolverUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ResolverUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/ResolverUtil.java
index e7222cd..226a89a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/ResolverUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/ResolverUtil.java
@@ -59,8 +59,7 @@ import java.util.jar.JarInputStream;
  *Collection&lt;ActionBean&gt; beans = resolver.getClasses();
  *</pre> 
  *
- * <p>This class was copied from Stripes - http://stripes.mc4j.org/confluence/display/stripes/Home
- * </p>
+ * <p>This class was copied from Stripes - http://stripes.mc4j.org/confluence/display/stripes/Home</p>
  * 
  * @author Tim Fennell
  */
@@ -74,8 +73,10 @@ public class ResolverUtil<T> {
      */
     public static interface Test {
         /**
-         * Will be called repeatedly with candidate classes. Must return True if a class
-         * is to be included in the results, false otherwise.
+         * Will be called repeatedly with candidate classes.
+         *
+         * @param type class type
+         * @return True if a class is to be included in the results, false otherwise.
          */
         boolean matches(Class type);
         
@@ -118,10 +119,15 @@ public class ResolverUtil<T> {
     public static class IsA extends ClassTest {
         private Class parent;
 
-        /** Constructs an IsA test using the supplied Class as the parent class/interface. */
+        /** Constructs an IsA test using the supplied Class as the parent class/interface.
+         * @param parentType the parent type class
+         */
         public IsA(Class parentType) { this.parent = parentType; }
 
-        /** Returns true if type is assignable to the parent type supplied in the constructor. */
+        /**
+         * @param type class type
+         * @return true if type is assignable to the parent type supplied in the constructor.
+         */
         public boolean matches(Class type) {
             return type != null && parent.isAssignableFrom(type);
         }
@@ -137,10 +143,16 @@ public class ResolverUtil<T> {
     public static class NameEndsWith extends ClassTest {
         private String suffix;
 
-        /** Constructs a NameEndsWith test using the supplied suffix. */
+        /**
+         * Constructs a NameEndsWith test using the supplied suffix.
+         * @param suffix suffix
+         */
         public NameEndsWith(String suffix) { this.suffix = suffix; }
 
-        /** Returns true if type name ends with the suffix supplied in the constructor. */
+        /**
+         * @param type class type
+         * @return true if type name ends with the suffix supplied in the constructor.
+         */
         public boolean matches(Class type) {
             return type != null && type.getName().endsWith(suffix);
         }
@@ -157,10 +169,17 @@ public class ResolverUtil<T> {
     public static class AnnotatedWith extends ClassTest {
         private Class<? extends Annotation> annotation;
 
-        /** Construts an AnnotatedWith test for the specified annotation type. */
+        /**
+         * Constructs an AnnotatedWith test for the specified annotation type.
+         *
+         * @param annotation annotation
+         */
         public AnnotatedWith(Class<? extends Annotation> annotation) { this.annotation = annotation; }
 
-        /** Returns true if the type is annotated with the class provided to the constructor. */
+        /**
+         * @param type class type
+         * @return true if the type is annotated with the class provided to the constructor.
+         */
         public boolean matches(Class type) {
             return type != null && type.isAnnotationPresent(annotation);
         }
@@ -188,7 +207,7 @@ public class ResolverUtil<T> {
     private Set<Class<? extends T>> classMatches = new HashSet<Class<?extends T>>();
     
     /** The set of matches being accumulated. */
-    private Set<URL> resourceMatches = new HashSet<URL>();
+    private Set<URL> resourceMatches = new HashSet<>();
 
     /**
      * The ClassLoader to use when looking for classes. If null then the ClassLoader returned

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
index fe6f76e..4f48685 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
@@ -28,8 +28,6 @@ import java.util.*;
  * @author Jason Carreira
  * @author Rainer Hermanns
  * @author tm_jee
- *
- * @version $Date$ $Id$
  */
 public class TextParseUtil {
 
@@ -42,6 +40,7 @@ public class TextParseUtil {
      * displayed, just as if the item was on the stack but returned an empty string.
      *
      * @param expression an expression that hasn't yet been translated
+     * @param stack value stack
      * @return the parsed expression
      */
     public static String translateVariables(String expression, ValueStack stack) {
@@ -61,8 +60,8 @@ public class TextParseUtil {
      * A typical use-case would be when we need to URL Encode the parsed value. To do so
      * we could just supply a URLEncodingEvaluator for example.
      *
-     * @param expression
-     * @param stack
+     * @param expression expression string
+     * @param stack value stack
      * @param evaluator The parsed Value evaluator (could be null).
      * @return the parsed (and possibly evaluated) variable String.
      */
@@ -76,9 +75,9 @@ public class TextParseUtil {
      * be found on the stack (null is returned), then the entire variable ${...} is not
      * displayed, just as if the item was on the stack but returned an empty string.
      *
-     * @param open
-     * @param expression
-     * @param stack
+     * @param open open character
+     * @param expression expression string
+     * @param stack value stack
      * @return Translated variable String
      */
     public static String translateVariables(char open, String expression, ValueStack stack) {
@@ -88,10 +87,10 @@ public class TextParseUtil {
     /**
      * Converted object from variable translation.
      *
-     * @param open
-     * @param expression
-     * @param stack
-     * @param asType
+     * @param open open character
+     * @param expression expression string
+     * @param stack value stack
+     * @param asType as class type
      * @return Converted object from variable translation.
      */
     public static Object translateVariables(char open, String expression, ValueStack stack, Class asType) {
@@ -101,11 +100,11 @@ public class TextParseUtil {
     /**
      * Converted object from variable translation.
      *
-     * @param open
-     * @param expression
-     * @param stack
-     * @param asType
-     * @param evaluator
+     * @param open open character
+     * @param expression expression string
+     * @param stack value stack
+     * @param asType as class type
+     * @param evaluator value evaluator
      * @return Converted object from variable translation.
      */
     public static Object translateVariables(char open, String expression, ValueStack stack, Class asType, ParsedValueEvaluator evaluator) {
@@ -115,11 +114,11 @@ public class TextParseUtil {
     /**
      * Converted object from variable translation.
      *
-     * @param openChars
-     * @param expression
-     * @param stack
-     * @param asType
-     * @param evaluator
+     * @param openChars open character array
+     * @param expression expression string
+     * @param stack value stack
+     * @param asType as class type
+     * @param evaluator value evaluator
      * @return Converted object from variable translation.
      */
     public static Object translateVariables(char[] openChars, String expression, ValueStack stack, Class asType, ParsedValueEvaluator evaluator) {
@@ -129,11 +128,12 @@ public class TextParseUtil {
     /**
      * Converted object from variable translation.
      *
-     * @param open
-     * @param expression
-     * @param stack
-     * @param asType
-     * @param evaluator
+     * @param open open character
+     * @param expression expression string
+     * @param stack value stack
+     * @param asType as class type
+     * @param evaluator value evaluator
+     * @param maxLoopCount max loop count
      * @return Converted object from variable translation.
      */
     public static Object translateVariables(char open, String expression, ValueStack stack, Class asType, ParsedValueEvaluator evaluator, int maxLoopCount) {
@@ -143,11 +143,12 @@ public class TextParseUtil {
     /**
      * Converted object from variable translation.
      *
-     * @param openChars
-     * @param expression
-     * @param stack
-     * @param asType
-     * @param evaluator
+     * @param openChars open character array
+     * @param expression expression string
+     * @param stack value stack
+     * @param asType as class type
+     * @param evaluator value evaluator
+     * @param maxLoopCount max loop count
      * @return Converted object from variable translation.
      */
     public static Object translateVariables(char[] openChars, String expression, final ValueStack stack, final Class asType, final ParsedValueEvaluator evaluator, int maxLoopCount) {
@@ -170,11 +171,11 @@ public class TextParseUtil {
     /**
      * @see #translateVariablesCollection(char[], String, ValueStack, boolean, ParsedValueEvaluator, int)
      *
-     * @param expression
-     * @param stack
-     * @param excludeEmptyElements
-     * @param evaluator
-     * @return
+     * @param expression expression string
+     * @param stack value stack
+     * @param excludeEmptyElements Whether empty elements shall be excluded.
+     * @param evaluator value evaluator
+     * @return converted objects
      */
     public static Collection<String>  translateVariablesCollection(String expression, ValueStack stack, boolean excludeEmptyElements, ParsedValueEvaluator evaluator) {
         return translateVariablesCollection(new char[]{'$', '%'}, expression, stack, excludeEmptyElements, evaluator, MAX_RECURSION);
@@ -184,14 +185,14 @@ public class TextParseUtil {
      * Resolves given expression on given ValueStack. If found element is a
      * collection each element will be converted to String. If just a single
      * object is found it is converted to String and wrapped in a collection.
-     * 
-     * @param openChars
-     * @param expression
-     * @param stack
-     * @param excludeEmptyElements
-     * @param evaluator
-     * @param maxLoopCount
-     * @return
+     *
+     * @param openChars open character array
+     * @param expression expression string
+     * @param stack value stack
+     * @param evaluator value evaluator
+     * @param excludeEmptyElements Whether empty elements shall be excluded.
+     * @param maxLoopCount max loop count
+     * @return converted objects
      */
     public static Collection<String> translateVariablesCollection(
             char[] openChars, String expression, final ValueStack stack, boolean excludeEmptyElements,
@@ -249,9 +250,9 @@ public class TextParseUtil {
     }
 
     /**
-     * Returns a set from comma delimted Strings.
+     * Returns a set from comma delimited Strings.
      * @param s The String to parse.
-     * @return A set from comma delimted Strings.
+     * @return A set from comma delimited Strings.
      */
     public static Set<String> commaDelimitedStringToSet(String s) {
         Set<String> set = new HashSet<>();
@@ -291,7 +292,7 @@ public class TextParseUtil {
     	 * Evaluated the value parsed by Ognl value stack.
     	 *
     	 * @param parsedValue - value parsed by ognl value stack
-    	 * @return return the evaluted value.
+    	 * @return return the evaluated value.
     	 */
     	Object evaluate(String parsedValue);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java b/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java
index 75368e2..819cec7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/finder/ResourceFinder.java
@@ -100,6 +100,8 @@ public class ResourceFinder {
      * </p>
      *
      * This method is not thread safe.
+     *
+     * @return not loaded resources
      */
     public List<String> getResourcesNotLoaded() {
         return Collections.unmodifiableList(resourcesNotLoaded);
@@ -139,7 +141,7 @@ public class ResourceFinder {
     /**
      * Reads the contents of the URL as a {@link String}'s and returns it.
      *
-     * @param uri
+     * @param uri URL
      * @return a stringified content of a resource
      * @throws IOException if a resource pointed out by the uri param could not be find
      * @see ClassLoader#getResource(String)
@@ -149,7 +151,7 @@ public class ResourceFinder {
 
         URL resource = getResource(fullUri);
         if (resource == null) {
-            throw new IOException("Could not find a resource in : " + fullUri);
+            throw new IOException("Could not find a resource in: " + fullUri);
         }
 
         return readContents(resource);
@@ -158,7 +160,7 @@ public class ResourceFinder {
     /**
      * Reads the contents of the found URLs as a list of {@link String}'s and returns them.
      *
-     * @param uri
+     * @param uri URL
      * @return a list of the content of each resource URL found
      * @throws IOException if any of the found URLs are unable to be read.
      */
@@ -181,7 +183,7 @@ public class ResourceFinder {
      * Individual URLs that cannot be read are skipped and added to the
      * list of 'resourcesNotLoaded'
      *
-     * @param uri
+     * @param uri URL
      * @return a list of the content of each resource URL found
      * @throws IOException if classLoader.getResources throws an exception
      */
@@ -234,7 +236,7 @@ public class ResourceFinder {
      * map.contains("four");  // false
      * </pre>
      *
-     * @param uri
+     * @param uri URL
      * @return a list of the content of each resource URL found
      * @throws IOException if any of the urls cannot be read
      */
@@ -281,7 +283,7 @@ public class ResourceFinder {
      * map.contains("four");  // false
      * </pre>
      *
-     * @param uri
+     * @param uri URL
      * @return a list of the content of each resource URL found
      * @throws IOException if classLoader.getResources throws an exception
      */
@@ -312,10 +314,10 @@ public class ResourceFinder {
      * Executes {@link #findString(String)} assuming the contents URL found is the name of
      * a class that should be loaded and returned.
      *
-     * @param uri
-     * @return
-     * @throws IOException
-     * @throws ClassNotFoundException
+     * @param uri URL
+     * @return class that should be loaded
+     * @throws IOException in case of IO errors
+     * @throws ClassNotFoundException when class is not found
      */
     public Class findClass(String uri) throws IOException, ClassNotFoundException {
         String className = findString(uri);
@@ -332,10 +334,10 @@ public class ResourceFinder {
      * Any URL or class that cannot be loaded will cause an exception to be thrown.
      * </p>
      *
-     * @param uri
-     * @return
-     * @throws IOException
-     * @throws ClassNotFoundException
+     * @param uri URL
+     * @return classes that should be loaded
+     * @throws IOException in case of IO errors
+     * @throws ClassNotFoundException when class is not found
      */
     public List<Class> findAllClasses(String uri) throws IOException, ClassNotFoundException {
         List<Class> classes = new ArrayList<>();
@@ -358,8 +360,8 @@ public class ResourceFinder {
      * 'resourcesNotLoaded' collection.
      * </p>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return list of available classes
      * @throws IOException if classLoader.getResources throws an exception
      */
     public List<Class> findAvailableClasses(String uri) throws IOException {
@@ -403,10 +405,10 @@ public class ResourceFinder {
      * Class crimsonClass = map.get("crimson");
      * </pre>
      *
-     * @param uri
-     * @return
-     * @throws IOException
-     * @throws ClassNotFoundException
+     * @param uri URL
+     * @return map of all classes
+     * @throws IOException in case of IO errors
+     * @throws ClassNotFoundException when class is not found
      */
     public Map<String, Class> mapAllClasses(String uri) throws IOException, ClassNotFoundException {
         Map<String, Class> classes = new HashMap<>();
@@ -445,10 +447,10 @@ public class ResourceFinder {
      * map.contains("crimson");  // true
      * Class xercesClass = map.get("xerces");
      * Class crimsonClass = map.get("crimson");
-     * </p>
+     * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return map of available classes
      * @throws IOException if classLoader.getResources throws an exception
      */
     public Map<String, Class> mapAvailableClasses(String uri) throws IOException {
@@ -497,8 +499,9 @@ public class ResourceFinder {
      * Class clazz = finder.findImplementation(java.io.InputStream.class);
      * clazz.getName();  // returns "org.acme.AcmeInputStream"
      * </pre>
+     *
      * @param interfase a superclass or interface
-     * @return
+     * @return implementation class
      * @throws IOException            if the URL cannot be read
      * @throws ClassNotFoundException if the class found is not loadable
      * @throws ClassCastException     if the class found is not assignable to the specified superclass or interface
@@ -542,7 +545,7 @@ public class ResourceFinder {
      * </pre>
      *
      * @param interfase a superclass or interface
-     * @return
+     * @return list of implementation classes
      * @throws IOException            if the URL cannot be read
      * @throws ClassNotFoundException if the class found is not loadable
      * @throws ClassCastException     if the class found is not assignable to the specified superclass or interface
@@ -589,7 +592,7 @@ public class ResourceFinder {
      * classes.contains("com.foo.BarInputStream");  // true
      * </pre>
      * @param interfase a superclass or interface
-     * @return
+     * @return list of implementation classes
      * @throws IOException if classLoader.getResources throws an exception
      */
     public List<Class> findAvailableImplementations(Class interfase) throws IOException {
@@ -641,7 +644,7 @@ public class ResourceFinder {
      * </pre>
      *
      * @param interfase a superclass or interface
-     * @return
+     * @return map of implementation classes
      * @throws IOException            if the URL cannot be read
      * @throws ClassNotFoundException if the class found is not loadable
      * @throws ClassCastException     if the class found is not assignable to the specified superclass or interface
@@ -691,7 +694,7 @@ public class ResourceFinder {
      * </pre>
      *
      * @param interfase a superclass or interface
-     * @return
+     * @return list of available implementation classes
      * @throws IOException if classLoader.getResources throws an exception
      */
     public Map<String, Class> mapAvailableImplementations(Class interfase) throws IOException {
@@ -730,7 +733,7 @@ public class ResourceFinder {
      * Example classpath:
      * </p>
      *
-     * <pre>>
+     * <pre>
      * META-INF/widget.properties
      * </pre>
      *
@@ -739,8 +742,8 @@ public class ResourceFinder {
      * Properties widgetProps = finder.findProperties("widget.properties");
      * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return corresponding resource as properties
      * @throws IOException if the URL cannot be read or is not in properties file format
      */
     public Properties findProperties(String uri) throws IOException {
@@ -775,11 +778,11 @@ public class ResourceFinder {
      *
      * <pre>
      * ResourceFinder finder = new ResourceFinder("META-INF/");
-     * List<Properties> appProps = finder.findAllProperties("app.properties");
+     * List&lt;Properties&gt; appProps = finder.findAllProperties("app.properties");
      * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return corresponding resource as list of properties
      * @throws IOException if the URL cannot be read or is not in properties file format
      */
     public List<Properties> findAllProperties(String uri) throws IOException {
@@ -818,11 +821,11 @@ public class ResourceFinder {
      *
      * <pre>
      * ResourceFinder finder = new ResourceFinder("META-INF/");
-     * List<Properties> appProps = finder.findAvailableProperties("app.properties");
+     * List&lt;Properties&gt; appProps = finder.findAvailableProperties("app.properties");
      * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return corresponding resource as list of properties
      * @throws IOException if classLoader.getResources throws an exception
      */
     public List<Properties> findAvailableProperties(String uri) throws IOException {
@@ -865,14 +868,14 @@ public class ResourceFinder {
      *
      * <pre>
      * ResourceFinder finder = new ResourceFinder("META-INF/");
-     * List<Properties> driversList = finder.findAvailableProperties("jdbcDrivers");
+     * List&lt;Properties&gt; driversList = finder.findAvailableProperties("jdbcDrivers");
      * Properties oracleProps = driversList.get("oracle.properties");
      * Properties mysqlProps = driversList.get("mysql.props");
      * Properties derbyProps = driversList.get("derby");
      * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return corresponding resource as map of properties
      * @throws IOException if the URL cannot be read or is not in properties file format
      */
     public Map<String, Properties> mapAllProperties(String uri) throws IOException {
@@ -909,14 +912,14 @@ public class ResourceFinder {
      *
      * <pre>
      * ResourceFinder finder = new ResourceFinder("META-INF/");
-     * List<Properties> driversList = finder.findAvailableProperties("jdbcDrivers");
+     * List&lt;Properties&gt; driversList = finder.findAvailableProperties("jdbcDrivers");
      * Properties oracleProps = driversList.get("oracle.properties");
      * Properties mysqlProps = driversList.get("mysql.props");
      * Properties derbyProps = driversList.get("derby");
-     * </p>
+     * </pre>
      *
-     * @param uri
-     * @return
+     * @param uri URL
+     * @return corresponding resource as map of available properties
      * @throws IOException if classLoader.getResources throws an exception
      */
     public Map<String, Properties> mapAvailableProperties(String uri) throws IOException {
@@ -969,7 +972,10 @@ public class ResourceFinder {
     }
 
     /**
-     * Gets a list of subpackages from jars or dirs
+     * @param uri URL
+     * @return set of subpackages from jars or dirs
+     *
+     * @throws IOException in case of IO errors
      */
     public Set<String> findPackages(String uri) throws IOException {
         String basePath = path + uri;
@@ -998,7 +1004,10 @@ public class ResourceFinder {
     }
 
     /**
-     * Gets a list of subpackages from jars or dirs
+     * @param uri URL
+     * @return a map of subpackages from jars or dirs
+     *
+     * @throws IOException in case of IO errors
      */
     public Map<URL, Set<String>> findPackagesMap(String uri) throws IOException {
         String basePath = path + uri;
@@ -1146,7 +1155,7 @@ public class ResourceFinder {
         if (urls == null) {
             return classLoaderInterface.getResources(fulluri);
         }
-        Vector<URL> resources = new Vector();
+        Vector<URL> resources = new Vector<>();
         for (URL url : urls) {
             URL resource = findResource(fulluri, url);
             if (resource != null){

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/finder/UrlSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/finder/UrlSet.java b/core/src/main/java/com/opensymphony/xwork2/util/finder/UrlSet.java
index 34e0937..dd7f5d7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/finder/UrlSet.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/finder/UrlSet.java
@@ -27,7 +27,10 @@ import java.net.URL;
 import java.util.*;
 
 /**
+ * <p>
  * Use with ClassFinder to filter the Urls to be scanned, example:
+ * </p>
+ *
  * <pre>
  * UrlSet urlSet = new UrlSet(classLoader);
  * urlSet = urlSet.exclude(ClassLoader.getSystemClassLoader().getParent());
@@ -38,8 +41,8 @@ import java.util.*;
  * urlSet = urlSet.exclude(".*?/JavaVM.framework/.*");
  * urlSet = urlSet.exclude(".*?/activemq-(core|ra)-[\\d.]+.jar(!/)?");
  * </pre>
+ *
  * @author David Blevins
- * @version $Rev$ $Date$
  */
 public class UrlSet {
 
@@ -68,7 +71,7 @@ public class UrlSet {
     }
     /**
      * Ignores all URLs that are not "jar" or "file"
-     * @param urls
+     * @param urls collection of URLs
      */
     public UrlSet(Collection<URL> urls){
         this();
@@ -118,8 +121,8 @@ public class UrlSet {
 
     /**
      * Calls excludePaths(System.getProperty("java.ext.dirs"))
-     * @return
-     * @throws MalformedURLException
+     * @return url set
+     * @throws MalformedURLException in case if incorrect URL
      */
     public UrlSet excludeJavaExtDirs() throws MalformedURLException {
         return excludePaths(System.getProperty("java.ext.dirs", ""));
@@ -128,8 +131,8 @@ public class UrlSet {
     /**
      * Calls excludePaths(System.getProperty("java.endorsed.dirs"))
      *
-     * @return
-     * @throws MalformedURLException
+     * @return url set
+     * @throws MalformedURLException in case if incorrect URL
      */
     public UrlSet excludeJavaEndorsedDirs() throws MalformedURLException {
         return excludePaths(System.getProperty("java.endorsed.dirs", ""));
@@ -173,6 +176,12 @@ public class UrlSet {
 
     /**
      * Try to find a classes directory inside a war file add its normalized url to this set
+     *
+     * @param classLoaderInterface  class loader interface
+     * @param normalizer file protocol normalizer
+     *
+     * @return url set
+     * @throws IOException in case of IO errors
      */
     public UrlSet includeClassesUrl(ClassLoaderInterface classLoaderInterface, FileProtocolNormalizer normalizer) throws IOException {
         Enumeration<URL> rootUrlEnumeration = classLoaderInterface.getResources("");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManager.java b/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManager.java
index 86fda9b..55833ee 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManager.java
@@ -102,8 +102,8 @@ public class DefaultFileManager implements FileManager {
     /**
      * Check if given URL is matching Jar pattern for different servers
      *
-     * @param fileUrl
-     * @return
+     * @param fileUrl jar file URL
+     * @return if given URL is matching Jar pattern for different servers
      */
     protected boolean isJarURL(URL fileUrl) {
         Matcher jarMatcher = JAR_PATTERN.matcher(fileUrl.getPath());

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/location/LocationAttributes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationAttributes.java b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationAttributes.java
index 5ca0934..553f1a4 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationAttributes.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationAttributes.java
@@ -26,9 +26,12 @@ import org.xml.sax.SAXException;
 import org.xml.sax.helpers.AttributesImpl;
 
 /**
+ * <p>
  * A class to handle location information stored in attributes.
  * These attributes are typically setup using {@link com.opensymphony.xwork2.util.location.LocationAttributes.Pipe}
  * which augments the SAX stream with additional attributes, e.g.:
+ * </p>
+ *
  * <pre>
  * &lt;root xmlns:loc="http://struts.apache.org/xwork/location"
  *       loc:src="file://path/to/file.xml"
@@ -39,7 +42,6 @@ import org.xml.sax.helpers.AttributesImpl;
  * 
  * @see com.opensymphony.xwork2.util.location.LocationAttributes.Pipe
  * @since 2.1.8
- * @version $Id$
  */
 public class LocationAttributes {
     /** Prefix for the location namespace */
@@ -178,6 +180,9 @@ public class LocationAttributes {
     
     /**
      * Same as <code>getLocation(elem, null)</code>.
+     *
+     * @param elem the element that holds the location information
+     * @return a {@link Location} object
      */
     public static Location getLocation(Element elem) {
         return getLocation(elem, null);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/location/LocationImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationImpl.java b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationImpl.java
index ca101ca..01b14ba 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationImpl.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationImpl.java
@@ -40,7 +40,8 @@ public class LocationImpl implements Location, Serializable {
 
     /**
      * Build a location for a given URI, with unknown line and column numbers.
-     * 
+     *
+     * @param description description for location
      * @param uri the resource URI
      */
     public LocationImpl(String description, String uri) {
@@ -49,7 +50,8 @@ public class LocationImpl implements Location, Serializable {
 
     /**
      * Build a location for a given URI and line and column numbers.
-     * 
+     *
+     * @param description description for location
      * @param uri the resource URI
      * @param line the line number (starts at 1)
      * @param column the column number (starts at 1)
@@ -78,6 +80,9 @@ public class LocationImpl implements Location, Serializable {
     
     /**
      * Create a location from an existing one, but with a different description
+     *
+     * @param description description for location
+     * @param location location object
      */
     public LocationImpl(String description, Location location) {
         this(description, location.getURI(), location.getLineNumber(), location.getColumnNumber());
@@ -140,9 +145,8 @@ public class LocationImpl implements Location, Serializable {
     }
     
     /**
-     * Gets a source code snippet with the default padding
-     *
      * @param padding The amount of lines before and after the error to include
+     * @return a source code snippet with the default padding
      */
     public List<String> getSnippet(int padding) {
         List<String> snippet = new ArrayList<>();
@@ -199,6 +203,8 @@ public class LocationImpl implements Location, Serializable {
     
     /**
      * Ensure serialized unknown location resolve to {@link Location#UNKNOWN}.
+     *
+     * @return resolved location as object
      */
     private Object readResolve() {
         return this.equals(Location.UNKNOWN) ? Location.UNKNOWN : this;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/location/LocationUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationUtils.java b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationUtils.java
index 892d3c7..ef1d921 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/location/LocationUtils.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/location/LocationUtils.java
@@ -62,7 +62,9 @@ public class LocationUtils {
      * "<code><em>descripton</em> - <em>uri</em>:<em>line</em>:<em>column</em></code>"
      * format (e.g. "<code>foo - file://path/to/file.xml:3:40</code>"). For {@link Location#UNKNOWN an unknown location}, returns
      * {@link #UNKNOWN_STRING}.
-     * 
+     *
+     * @param location location object
+     *
      * @return the string representation
      */
     public static String toString(Location location) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java
index 66cc005..733bce3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ObjectProfiler.java
@@ -86,6 +86,15 @@ public class ObjectProfiler {
     /**
      * A profiled call {@link Method#invoke(java.lang.Object, java.lang.Object[])}. If {@link UtilTimerStack#isActive() }
      * returns false, then no profiling is performed.
+     *
+     * @param target target method
+     * @param value value
+     * @param args arguments
+     *
+     * @return target object
+     *
+     * @throws IllegalAccessException in case of access errors
+     * @throws InvocationTargetException in case of invocation errors
      */
     public static Object profiledInvoke(Method target, Object value, Object[] args) throws IllegalAccessException, InvocationTargetException {
         //if we are not active - then do nothing
@@ -93,7 +102,7 @@ public class ObjectProfiler {
             return target.invoke(value, args);
         }
 
-        String logLine = new String(getTrimmedClassName(target) + "." + target.getName() + "()");
+        String logLine = getTrimmedClassName(target) + "." + target.getName() + "()";
 
         UtilTimerStack.push(logLine);
         try {
@@ -114,6 +123,10 @@ public class ObjectProfiler {
 
     /**
      * Given a method, get the Method name, with no package information.
+     *
+     * @param method method
+     *
+     * @return method name, with no package information
      */
     public static String getTrimmedClassName(Method method) {
         String classname = method.getDeclaringClass().getName();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
index a475c62..b94f0ab 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/profiling/ProfilingTimerBean.java
@@ -80,9 +80,9 @@ public class ProfilingTimerBean implements java.io.Serializable {
     }
 
     /**
-     * Get a formatted string representing all the methods that took longer than a specified time.
+     * @param minTime minimum time
+     * @return  a formatted string representing all the methods that took longer than a specified time.
      */
-
     public String getPrintable(long minTime) {
         return getPrintable("", minTime);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java b/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
index deeaa1c..092cb8d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/profiling/UtilTimerStack.java
@@ -83,10 +83,10 @@ import org.apache.logging.log4j.Logger;
  *  <li>creation of DefaultActionProxy
  *      <ul>
  *          <li>creation of DefaultActionInvocation</li>
- *      <ul>
+ *      </ul>
  *  </li>
  *  <li>creation of Action</li>
- *  <li>execution of DefaultActionProxy</li>
+ *  <li>execution of DefaultActionProxy
  *      <ul>
  *          <li>invocation of DefaultActionInvocation
  *              <ul>
@@ -97,6 +97,7 @@ import org.apache.logging.log4j.Logger;
  *              </ul>
  *          </li>
  *      </ul>
+ *  </li>
  * </ul>
  *
  * <!-- END SNIPPET: profilingAspect_xwork -->
@@ -245,7 +246,7 @@ import org.apache.logging.log4j.Logger;
  * <!-- START SNIPPET: method2 -->
  *
  *   String result = UtilTimerStack.profile(&quot;purchaseItem: &quot;,
- *       new UtilTimerStack.ProfilingBlock<String>() {
+ *       new UtilTimerStack.ProfilingBlock&lt;String&gt;() {
  *            public String doProfiling() {
  *               // do some code
  *               return &quot;Ok&quot;;
@@ -320,7 +321,7 @@ public class UtilTimerStack {
     }
 
     /**
-     * End a preformance profiling with the <code>name</code> given. Deal with
+     * End a performance profiling with the <code>name</code> given. Deal with
      * profile hierarchy automatically, so caller don't have to be concern about it.
      *
      * @param name profile name
@@ -366,7 +367,7 @@ public class UtilTimerStack {
      * Get the min time for this profiling, it searches for a System property
      * 'xwork.profile.mintime' and default to 0.
      *
-     * @return long
+     * @return min time for this profiling
      */
     private static long getMinTime() {
         try {
@@ -387,9 +388,7 @@ public class UtilTimerStack {
     }
 
     /**
-     * Turn profiling on or off.
-     *
-     * @param active
+     * @param active Turn profiling on or off.
      */
     public static void setActive(boolean active) {
         if (active) {
@@ -415,7 +414,7 @@ public class UtilTimerStack {
      * <pre>
      * 	 // we need a returning result
      *   String result = UtilTimerStack.profile("purchaseItem: ",
-     *       new UtilTimerStack.ProfilingBlock<String>() {
+     *       new UtilTimerStack.ProfilingBlock&lt;String&gt;() {
      *            public String doProfiling() {
      *               getMyService().purchaseItem(....)
      *               return "Ok";
@@ -428,7 +427,7 @@ public class UtilTimerStack {
      * <pre>
      *   // we don't need a returning result
      *   UtilTimerStack.profile("purchaseItem: ",
-     *       new UtilTimerStack.ProfilingBlock<String>() {
+     *       new UtilTimerStack.ProfilingBlock&lt;String&gt;() {
      *            public String doProfiling() {
      *               getMyService().purchaseItem(....)
      *               return null;
@@ -440,7 +439,7 @@ public class UtilTimerStack {
      * @param name  profile name
      * @param block code block subjected to profiling
      * @return T
-     * @throws Exception
+     * @throws Exception in case of any errors
      */
     public static <T> T profile(String name, ProfilingBlock<T> block) throws Exception {
         UtilTimerStack.push(name);
@@ -456,8 +455,7 @@ public class UtilTimerStack {
      * of coding boiler code that does pushing (UtilTimerBean.push(...)) and poping (UtilTimerBean.pop(...))
      * in a try ... finally ... block.
      *
-     * @param <T>
-     * @version $Date$ $Id$
+     * @param <T> type
      */
     public static interface ProfilingBlock<T> {
 
@@ -465,7 +463,7 @@ public class UtilTimerStack {
          * Method that execute the code subjected to profiling.
          *
          * @return profiles Type
-         * @throws Exception
+         * @throws Exception in case of any errors
          */
         T doProfiling() throws Exception;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
index 8caa039..9534ebc 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionContextState.java
@@ -99,7 +99,8 @@ public class ReflectionContextState {
 	 * return myProp.myMap.myKey.
      * </p>
 	 *
-	 * @param context
+	 * @param context context map
+	 * @return  current property path
 	 */
 	public static String getCurrentPropertyPath(Map<String, Object> context) {
 		return (String)context.get(CURRENT_PROPERTY_PATH);
@@ -156,7 +157,7 @@ public class ReflectionContextState {
 	}
 
 	/**
-	 *
+	 *@param context the context map
 	 */
 	public static void clearCurrentPropertyPath(Map<String, Object> context) {
 		context.put(CURRENT_PROPERTY_PATH, null);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionProvider.java b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionProvider.java
index 5e40fd3..029163e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/reflection/ReflectionProvider.java
@@ -40,14 +40,22 @@ public interface ReflectionProvider {
      * Sets the properties on the object using the default context, defaulting to not throwing
      * exceptions for problems setting the properties.
      *
-     * @param properties
-     * @param o
+     * @param properties property map
+     * @param o object
      */
     void setProperties(Map<String, ?> properties, Object o);
     
     /**
      *  This method returns a PropertyDescriptor for the given class and property name using
      * a Map lookup (using getPropertyDescriptorsMap()).
+     *
+     * @param targetClass target class of the property descriptor
+     * @param propertyName  property name
+     *
+     * @return PropertyDescriptor for the given class and property name
+     *
+     * @throws IntrospectionException in case of introspection error
+     * @throws ReflectionException in case of reflection problems
      */
     PropertyDescriptor getPropertyDescriptor(Class targetClass, String propertyName) throws IntrospectionException, ReflectionException;
 
@@ -69,7 +77,11 @@ public interface ReflectionProvider {
      * Looks for the real target with the specified property given a root Object which may be a
      * CompoundRoot.
      *
+     * @param property specified property
+     * @param context the context
+     * @param root the root object
      * @return the real target or null if no object can be found with the specified property
+     * @throws ReflectionException in case of reflection problems
      */
     Object getRealTarget(String property, Map<String, Object> context, Object root) throws ReflectionException;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
index 2bfac35..c0f41fe 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java
@@ -207,6 +207,7 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager
      * Builds a key for validators - used when caching validators.
      *
      * @param clazz the action.
+     * @param context context
      * @return a validator key which is the class name plus context.
      */
     protected static String buildValidatorKey(Class clazz, String context) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/DefaultValidatorFileParser.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultValidatorFileParser.java b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultValidatorFileParser.java
index b640996..779cdf8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultValidatorFileParser.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultValidatorFileParser.java
@@ -68,12 +68,12 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
     }
 
     public List<ValidatorConfig> parseActionValidatorConfigs(ValidatorFactory validatorFactory, InputStream is, final String resourceName) {
-        List<ValidatorConfig> validatorCfgs = new ArrayList<ValidatorConfig>();
+        List<ValidatorConfig> validatorCfgs = new ArrayList<>();
 
         InputSource in = new InputSource(is);
         in.setSystemId(resourceName);
 
-        Map<String, String> dtdMappings = new HashMap<String, String>();
+        Map<String, String> dtdMappings = new HashMap<>();
         dtdMappings.put("-//Apache Struts//XWork Validator 1.0//EN", "xwork-validator-1.0.dtd");
         dtdMappings.put("-//Apache Struts//XWork Validator 1.0.2//EN", "xwork-validator-1.0.2.dtd");
         dtdMappings.put("-//Apache Struts//XWork Validator 1.0.3//EN", "xwork-validator-1.0.3.dtd");
@@ -112,7 +112,7 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
         InputSource in = new InputSource(is);
         in.setSystemId(resourceName);
 
-        Map<String, String> dtdMappings = new HashMap<String, String>();
+        Map<String, String> dtdMappings = new HashMap<>();
         dtdMappings.put("-//Apache Struts//XWork Validator Config 1.0//EN", "xwork-validator-config-1.0.dtd");
         dtdMappings.put("-//Apache Struts//XWork Validator Definition 1.0//EN", "xwork-validator-definition-1.0.dtd");
 
@@ -142,6 +142,9 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
      * and EntityReference nodes into a single String value, excluding Comment nodes.
      * This method is based on a method originally found in DomUtils class of Springframework.
      *
+     * @param valueEle the given DOM element
+     * @return the text value
+     *
      * @see org.w3c.dom.CharacterData
      * @see org.w3c.dom.EntityReference
      * @see org.w3c.dom.Comment
@@ -185,7 +188,7 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
             ValidatorConfig.Builder vCfg = new ValidatorConfig.Builder(validatorType)
                     .addParams(params)
                     .location(DomHelper.getLocationObject(validatorElement))
-                    .shortCircuit(Boolean.valueOf(validatorElement.getAttribute("short-circuit")).booleanValue());
+                    .shortCircuit(Boolean.valueOf(validatorElement.getAttribute("short-circuit")));
 
             NodeList messageNodes = validatorElement.getElementsByTagName("message");
             Element messageElement = (Element) messageNodes.item(0);
@@ -213,7 +216,7 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
                 // </message>
 
                 if (messageParams.containsKey("defaultMessage")) {
-                    vCfg.defaultMessage(messageParams.get("defaultMessage").toString());
+                    vCfg.defaultMessage(messageParams.get("defaultMessage"));
                 }
 
                 // Sort the message param. those with keys as '1', '2', '3' etc. (numeric values)
@@ -223,7 +226,7 @@ public class DefaultValidatorFileParser implements ValidatorFileParser {
 
                     try {
                         int _order = Integer.parseInt(messageParamEntry.getKey());
-                        sortedMessageParameters.put(Integer.valueOf(_order), messageParamEntry.getValue().toString());
+                        sortedMessageParameters.put(_order, messageParamEntry.getValue());
                     }
                     catch (NumberFormatException e) {
                         // ignore if its not numeric.

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
index 7033b5d..41a42b0 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
@@ -39,6 +39,10 @@ public class DelegatingValidatorContext implements ValidatorContext {
     /**
      * Creates a new validation context given a ValidationAware object, and a text and locale provider. These objects
      * are used internally to set errors and get and set error text.
+     *
+     * @param validationAware  a validation aware object
+     * @param textProvider  a text provider
+     * @param localeProvider a local provider
      */
     public DelegatingValidatorContext(ValidationAware validationAware, TextProvider textProvider,
                                       LocaleProvider localeProvider) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/ShortCircuitableValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ShortCircuitableValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/ShortCircuitableValidator.java
index 651270d..dde5044 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ShortCircuitableValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ShortCircuitableValidator.java
@@ -31,7 +31,7 @@ public interface ShortCircuitableValidator {
      * @param shortcircuit <tt>true</tt> if this field validator should short circuit on
      *                     failure, <tt>false</tt> otherwise
      */
-    public void setShortCircuit(boolean shortcircuit);
+    void setShortCircuit(boolean shortcircuit);
 
     /**
      * Gets whether this field validator should short circuit the validator queue
@@ -40,5 +40,5 @@ public interface ShortCircuitableValidator {
      * @return <tt>true</tt> if this field validator should short circuit on failure,
      *         <tt>false</tt> otherwise
      */
-    public boolean isShortCircuit();
+    boolean isShortCircuit();
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
index a7811e0..4f34468 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ValidationInterceptor.java
@@ -261,20 +261,29 @@ public class ValidationInterceptor extends MethodFilterInterceptor {
     }
     
     /**
+     * <p>
      * Returns the context that will be used by the
      * {@link ActionValidatorManager} to associate the action invocation with
      * the appropriate {@link ValidatorConfig ValidatorConfigs}.
+     * </p>
+     *
      * <p>
      * The context returned is used in the pattern
      * <i>ActionClass-context-validation.xml</i>
+     * </p>
+     *
      * <p>
      * The default context is the action name from the URL, but the method can
      * be overridden to implement custom contexts.
+     * </p>
+     *
      * <p>
      * This can be useful in cases in which a single action and a single model
      * require vastly different validation based on some condition.
-     * 
-     * @return the Context
+     * </p>
+     *
+     * @param proxy action proxy
+     * @return the context (action name)
      */
     protected String getValidationContext(ActionProxy proxy) {
         // This method created for WW-3753

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java b/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
index 5cff3f8..43dda0f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/Validator.java
@@ -32,20 +32,20 @@ import com.opensymphony.xwork2.util.ValueStack;
  * that are not inherently tied to a single specified field. When you declare a
  * plain Validator in your -validation.xml file you do not associate a fieldname
  * attribute with it. (You should avoid using plain Validators within the
- * <field-validator> syntax described below.)</p>
+ * &lt;field-validator&gt; syntax described below.)</p>
  *
  * <p>FieldValidators (such as the EmailValidator) are designed to perform
  * validation checks on a single field. They require that you specify a fieldname
  * attribute in your -validation.xml file. There are two different (but equivalent)
- * XML syntaxes you can use to declare FieldValidators (see "<validator> vs.
- * <field-Validator> syntax&quot; below).</p>
+ * XML syntaxes you can use to declare FieldValidators (see "&lt;validator&gt; vs.
+ * &lt;field-Validator&gt; syntax&quot; below).</p>
  *
  * <p>There are two places where the differences between the two validator flavors
  * are important to keep in mind:</p>
  *
  * <ol>
  * <li> when choosing the xml syntax used for declaring a validator
- * (either <validator> or <field-validator>)</li>
+ * (either &lt;validator&gt; or &lt;field-validator&gt;)</li>
  * <li> when using the short-circuit capability</li>
  * </ol>
  *
@@ -124,7 +124,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  *    &lt;!-- Declaring a plain Validator using the &lt;validator&gt; syntax: --&gt;
  *
  *    &lt;validator type=&quot;expression&gt;
- *          &lt;param name=&quot;expression&quot;>foo gt bar&lt;/param&gt;
+ *          &lt;param name=&quot;expression&quot;&gt;foo gt bar&lt;/param&gt;
  *          &lt;message&gt;foo must be great than bar.&lt;/message&gt;
  *    &lt;/validator&gt;
  * <!-- END SNIPPET: nonFieldValidatorUsingValidatorSyntax -->
@@ -137,7 +137,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  *    &lt;validator type=&quot;required&quot;&gt;
  *         &lt;param name=&quot;fieldName&quot;&gt;bar&lt;/param&gt;
  *         &lt;message&gt;You must enter a value for bar.&lt;/message&gt;
- *    &lt/validator&gt;
+ *    &lt;/validator&gt;
  * <!-- END SNIPPET: fieldValidatorUsingValidatorSyntax -->
  * </pre>
  *
@@ -158,7 +158,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  *
  * <p><b>NOTE:</b>
  * Note that you should only use FieldValidators (not plain Validators) within a
- * <field-validator> block. A plain Validator inside a &lt;field&gt; will not be
+ * &lt;field-validator&gt; block. A plain Validator inside a &lt;field&gt; will not be
  * allowed and would generate error when parsing the xml, as it is not allowed in
  * the defined dtd (xwork-validator-1.0.2.dtd)</p>
  * <!-- END SNIPPET: validatorVsFieldValidators2 -->
@@ -180,13 +180,13 @@ import com.opensymphony.xwork2.util.ValueStack;
  *
  *
  * <!-- START SNIPPET: validatorVsFieldValidators3 -->
- * <p>The choice is yours. It's perfectly legal to only use <validator> elements
- * without the <field> elements and set the fieldName attribute for each of them.
+ * <p>The choice is yours. It's perfectly legal to only use &lt;validator&gt; elements
+ * without the &lt;field&gt; elements and set the fieldName attribute for each of them.
  * The following are effectively equal:</p>
  * <!-- END SNIPPET: validatorVsFieldValidators3 -->
  *
  * <pre>
- * <!-- START SNIPPET: similarVaidatorDeclaredInDiffSyntax -->
+ * <!-- START SNIPPET: similarValidatorDeclaredInDiffSyntax -->
  * &lt;field name=&quot;email_address&quot;&gt;
  *   &lt;field-validator type=&quot;required&quot;&gt;
  *       &lt;message&gt;You cannot leave the email address field empty.&lt;/message&gt;
@@ -205,7 +205,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  *   &lt;param name=&quot;fieldName&quot;&gt;email_address&lt;/param&gt;
  *   &lt;message&gt;The email address you entered is not valid.&lt;/message&gt;
  * &lt;/validator&gt;
- * <!-- END SNIPPET: similarVaidatorDeclaredInDiffSyntax -->
+ * <!-- END SNIPPET: similarValidatorDeclaredInDiffSyntax -->
  * </pre>
  *
  *
@@ -294,8 +294,8 @@ import com.opensymphony.xwork2.util.ValueStack;
  * <p><b>Short cuircuiting and validator flavours</b></p>
  * <p>A FieldValidator that gets short-circuited will only prevent other
  * FieldValidators for the same field from being evaluated. Note that this
- * &quot;same field&quot; behavior applies regardless of whether the <validator> or
- * <field-validator> syntax was used to declare the validation rule.
+ * &quot;same field&quot; behavior applies regardless of whether the &lt;validator&gt; or
+ * &lt;field-validator&gt; syntax was used to declare the validation rule.
  * By way of example, given this -validation.xml file:</p>
  * <!-- END SNIPPET: scAndValidatorFlavours1 -->
  *
@@ -307,7 +307,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  * &lt;/validator&gt;
  *
  * &lt;validator type=&quot;expression&quot;&gt;
- *   &lt;param name=&quot;expression&quot;>foo gt bar&lt;/param&gt;
+ *   &lt;param name=&quot;expression&quot;&gt;foo gt bar&lt;/param&gt;
  *   &lt;message&gt;foo must be great than bar.&lt;/message&gt;
  * &lt;/validator&gt;
  * <!-- END SNIPPET: exScAndValidatorFlavours -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorConfig.java b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorConfig.java
index 490f34e..da6292f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorConfig.java
@@ -41,7 +41,7 @@ public class ValidatorConfig extends Located {
     private String[] messageParams;
     
     /**
-     * @param validatorType
+     * @param validatorType validator type
      */
     protected ValidatorConfig(String validatorType) {
         this.type = validatorType;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFactory.java b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFactory.java
index 76bc3da..f3bb27a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFactory.java
@@ -39,7 +39,7 @@ package com.opensymphony.xwork2.validator;
  *
  * <p><b>Note:</b>
  * <!-- START SNIPPET: turningOnValidators -->
- * The default validationWorkflowStack already includes this.<br/>
+ * The default validationWorkflowStack already includes this.<br>
  * All that is required to enable validation for an Action is to put the
  * ValidationInterceptor in the interceptor refs of the action (see xwork.xml) like so:
  * <!-- END SNIPPET: turningOnValidators -->
@@ -81,9 +81,9 @@ package com.opensymphony.xwork2.validator;
  * <!-- END SNIPPET: validatorsNote -->
  * </p>
  *
- * <p><b>VALIDATION RULES:</b>
+ * <p><b>VALIDATION RULES:</b></p>
  * <!-- START SNIPPET: validationRules1 -->
- * Validation rules can be specified:
+ * <p>Validation rules can be specified:</p>
  * <ol>
  *  <li> Per Action class: in a file named ActionName-validation.xml</li>
  *  <li> Per Action alias: in a file named ActionName-alias-validation.xml</li>
@@ -91,9 +91,8 @@ package com.opensymphony.xwork2.validator;
  *  XWork searches up the inheritance tree of the action to find default
  *  validations for parent classes of the Action and interfaces implemented</li>
  * </ol>
- * Here is an example for SimpleAction-validation.xml:
+ * <p>Here is an example for SimpleAction-validation.xml:</p>
  * <!-- END SNIPPET: validationRules1 -->
- * <p>
  *
  * <pre>
  * <!-- START SNIPPET: exValidationRules1 -->
@@ -105,7 +104,7 @@ package com.opensymphony.xwork2.validator;
  *           &lt;message&gt;You must enter a value for bar.&lt;/message&gt;
  *       &lt;/field-validator&gt;
  *       &lt;field-validator type="int"&gt;
- *           &lt;param name="min">6&lt;/param&gt;
+ *           &lt;param name="min"&gt;6&lt;/param&gt;
  *           &lt;param name="max"&gt;10&lt;/param&gt;
  *           &lt;message&gt;bar must be between ${min} and ${max}, current value is ${bar}.&lt;/message&gt;
  *       &lt;/field-validator&gt;
@@ -201,11 +200,10 @@ package com.opensymphony.xwork2.validator;
  *
  * <pre>
  * <!-- START SNIPPET: exValidationRules4 -->
- *    <message>${getText("validation.failednotice")}! ${getText("reason")}: ${getText("validation.inputrequired")}</message>
+ *    &lt;message&gt;${getText("validation.failednotice")}! ${getText("reason")}: ${getText("validation.inputrequired")}&lt;/message&gt;
  * <!-- END SNIPPET: exValidationRules4 -->
  * </pre>
  *
- * @version $Date$ $Id$
  * @author Jason Carreira
  * @author James House
  */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFileParser.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFileParser.java b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFileParser.java
index 2c9e39d..25b8b11 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFileParser.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/ValidatorFileParser.java
@@ -30,6 +30,7 @@ public interface ValidatorFileParser {
      * Parse resource for a list of ValidatorConfig objects (configuring which validator(s) are
      * being applied to a particular field etc.)
      *
+     * @param validatorFactory a validator factory
      * @param is input stream to the resource
      * @param resourceName file name of the resource
      * @return List list of ValidatorConfig
@@ -39,6 +40,7 @@ public interface ValidatorFileParser {
     /**
      * Parses validator definitions (register various validators with XWork).
      *
+     * @param validators map of validators
      * @param is The input stream
      * @param resourceName The location of the input stream
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
index e609250..3830774 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConditionalVisitorFieldValidator.java
@@ -31,7 +31,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -84,7 +84,7 @@ import java.lang.annotation.Target;
  * <td class='confluenceTd'> appendPrefix </td>
  * <td class='confluenceTd'> no </td>
  * <td class='confluenceTd'> true </td>
- * <td class='confluenceTd'> Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs.  For example, suppose that the bean being validated has a "name" property.  If <em>appendPrefix</em> is true, then the field error will be stored under the field "bean.name".  If <em>appendPrefix</em> is false, then the field error will be stored under the field "name".  <br clear="all" /> <img class="emoticon" src="/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em>appendPrefix</em> to false unless you are using "model.name" to reference the properties on your model. </td>
+ * <td class='confluenceTd'> Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs.  For example, suppose that the bean being validated has a "name" property.  If <em>appendPrefix</em> is true, then the field error will be stored under the field "bean.name".  If <em>appendPrefix</em> is false, then the field error will be stored under the field "name".  <br> <img class="emoticon" src="/images/icons/emoticons/warning.gif" height="16" width="16" alt="" style="border: 0px; align: middle;"> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em>appendPrefix</em> to false unless you are using "model.name" to reference the properties on your model. </td>
  * </tr>
  * </table>
  * <!-- END SNIPPET: parameters -->
@@ -93,7 +93,7 @@ import java.lang.annotation.Target;
  *
  * <pre>
  * <!-- START SNIPPET: example -->
- * &#64;ConditionalVisitorFieldValidator(expression="app.appid > 100",  message = "Default message", key = "i18n.key", shortCircuit = true, context = "action alias", appendPrefix = true)
+ * &#64;ConditionalVisitorFieldValidator(expression="app.appid &gt; 100",  message = "Default message", key = "i18n.key", shortCircuit = true, context = "action alias", appendPrefix = true)
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -107,6 +107,8 @@ public @interface ConditionalVisitorFieldValidator {
      * Determines the context to use for validating the Object property.
      * If not defined, the context of the Action validator is propagated to the Object property validator.
      * In the case of Action validator, this context is the Action alias.
+     *
+     * @return the context
      */
     String context() default "";
 
@@ -121,32 +123,34 @@ public @interface ConditionalVisitorFieldValidator {
      * If you are using the ConditionalVisitorFieldValidator to validate the model from a ModelDriven Action,
      * you should set appendPrefix to false unless you are using "model.name" to reference the properties
      * on your model.
+     *
+     * @return if append prefix
      */
     boolean appendPrefix() default true;
 
     /**
-     * The conditional expression.
+     * @return The conditional expression.
      */
     String expression();
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -155,6 +159,7 @@ public @interface ConditionalVisitorFieldValidator {
      *
      * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
index 2777f7a..b1f4585 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ConversionErrorFieldValidator.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -97,23 +97,23 @@ import java.lang.annotation.Target;
 public @interface ConversionErrorFieldValidator {
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -122,16 +122,17 @@ public @interface ConversionErrorFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * Defines to repopulate field or not after validation, default false
+     * @return Defines to repopulate field or not after validation, default false
      */
     boolean repopulateField() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
index e0305fd..f8c89e9 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/CustomValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -99,12 +99,12 @@ public @interface CustomValidator {
     String type();
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
@@ -112,7 +112,7 @@ public @interface CustomValidator {
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
index 47900c9..30c4d84 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DateRangeFieldValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -134,48 +134,52 @@ import java.lang.annotation.Target;
 public @interface DateRangeFieldValidator {
 
     /**
-     *  Date property. The minimum the date must be.
+     *  Date property.
+     *
+     *  @return The minimum the date must be.
      */
     String min() default "";
 
     /**
-     * An expression which will be evaluated against the Value Stack to get the min value
+     * @return An expression which will be evaluated against the Value Stack to get the min value
      */
     String minExpression() default "";
 
     /**
-     *  Date property. The maximum date can be.
+     *  Date property.
+     *
+     *  @return The maximum date can be.
      */
     String max() default "";
 
     /**
-     * An expression which will be evaluated against the Value Stack to get the max value
+     * @return An expression which will be evaluated against the Value Stack to get the max value
      */
     String maxExpression() default "";
 
     /**
-     * Date format used to parse min and max value
+     * @return Date format used to parse min and max value
      */
     String dateFormat() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -183,12 +187,12 @@ public @interface DateRangeFieldValidator {
      * If this is activated, the validator will be used as short-circuit.
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
-     *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 


[12/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
index 1a5fb3b..614931c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/DoubleRangeFieldValidator.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -149,63 +149,71 @@ import java.lang.annotation.Target;
 public @interface DoubleRangeFieldValidator {
 
     /**
-     *  Double property. The inclusive minimum the number must be.
+     *  Double property.
+     *
+     *  @return The inclusive minimum the number must be.
      */
     String minInclusive() default "";
 
     /**
-     * The inclusive minimum the number must be defined as an expression
+     * @return The inclusive minimum the number must be defined as an expression
      */
     String minInclusiveExpression() default "";
 
     /**
-     *  Double property. The inclusive minimum the number must be.
+     *  Double property.
+     *
+     *  @return The inclusive minimum the number must be.
      */
     String maxInclusive() default "";
 
     /**
-     *  The inclusive minimum the number must be defined as an expression
+     *  @return The inclusive minimum the number must be defined as an expression
      */
     String maxInclusiveExpression() default "";
 
     /**
-     *  Double property. The exclusive maximum number can be.
+     *  Double property.
+     *
+     *  @return The exclusive maximum number can be.
      */
     String minExclusive() default "";
 
     /**
-     *  The exclusive maximum number can be defined as an expression
+     *  @return The exclusive maximum number can be defined as an expression
      */
     String minExclusiveExpression() default "";
 
     /**
-     *  Double property. The exclusive maximum number can be.
+     *  Double property.
+     *
+     *  @return The exclusive maximum number can be.
      */
     String maxExclusive() default "";
 
     /**
-     * The exclusive maximum number can be defined as an expression
+     * @return The exclusive maximum number can be defined as an expression
      */
     String maxExclusiveExpression() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -214,11 +222,12 @@ public @interface DoubleRangeFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
index ec54c05..a96ad6d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/EmailValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -96,23 +96,23 @@ import java.lang.annotation.Target;
 public @interface EmailValidator {
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -121,11 +121,12 @@ public @interface EmailValidator {
      *
      * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
index 7943750..d5db360 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ExpressionValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -90,24 +90,24 @@ import java.lang.annotation.Target;
 public @interface ExpressionValidator {
 
     /**
-     * The expressions to validate.
+     * @return The expressions to validate.
      * An OGNL expression that returns a boolean value.
      */
     String expression();
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
@@ -116,6 +116,7 @@ public @interface ExpressionValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
index 83859d4..559c53d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/FieldExpressionValidator.java
@@ -37,7 +37,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -98,28 +98,28 @@ import java.lang.annotation.Target;
 public @interface FieldExpressionValidator {
 
     /**
-     *  An OGNL expression that returns a boolean value.
+     *  @return An OGNL expression that returns a boolean value.
      */
     String expression();
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -128,6 +128,7 @@ public @interface FieldExpressionValidator {
      *
      * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
index daa29c5..b3ccaff 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/IntRangeFieldValidator.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -134,43 +134,47 @@ import java.lang.annotation.Target;
 public @interface IntRangeFieldValidator {
 
     /**
-     *  Integer property. The minimum the number must be.
+     *  Integer property.
+     *
+     *  @return The minimum the number must be.
      */
     String min() default "";
 
     /**
-     * The minimum number can be defined as an expression
+     * @return The minimum number can be defined as an expression
      */
     String minExpression() default "";
 
     /**
-     * Integer property. The maximum number can be.
+     * Integer property.
+     *
+     * @return The maximum number can be.
      */
     String max() default "";
 
     /**
-     * The maximum number can be defined as an expression
+     * @return The maximum number can be defined as an expression
      */
     String maxExpression() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -179,11 +183,12 @@ public @interface IntRangeFieldValidator {
      *
      * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
index 0ef3b18..94eea0b 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RegexFieldValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -102,23 +102,23 @@ import java.lang.annotation.Target;
 public @interface RegexFieldValidator {
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -170,11 +170,12 @@ public @interface RegexFieldValidator {
      *
      * Adds the short-circuit='true' attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
index c2456e7..900d516 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredFieldValidator.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -97,23 +97,23 @@ import java.lang.annotation.Target;
 public @interface RequiredFieldValidator {
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -122,11 +122,12 @@ public @interface RequiredFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
index 0620ba9..b44ef0f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/RequiredStringValidator.java
@@ -23,7 +23,7 @@ import java.lang.annotation.Target;
 
 /**
  * <!-- START SNIPPET: description -->
- * This validator checks that a String field is not empty (i.e. non-null with a length > 0).
+ * This validator checks that a String field is not empty (i.e. non-null with a length &gt; 0).
  * <!-- END SNIPPET: description -->
  *
  * <p><u>Annotation usage:</u></p>
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -104,28 +104,30 @@ import java.lang.annotation.Target;
 public @interface RequiredStringValidator {
 
     /**
-     *  Boolean property. Determines whether the String is trimmed before performing the length check.
+     *  Boolean property.
+     *
+     *  @return Determines whether the String is trimmed before performing the length check.
      */
     boolean trim() default true;
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -134,11 +136,12 @@ public @interface RequiredStringValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
index 8f93196..6f77971 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ShortRangeFieldValidator.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -132,43 +132,47 @@ import java.lang.annotation.Target;
 public @interface ShortRangeFieldValidator {
 
     /**
-     * Short property. The minimum the number must be.
+     * Short property.
+     *
+     * @return The minimum the number must be.
      */
     String min() default "";
 
     /**
-     * The minimum the number must be defined as an expression.
+     * @return The minimum the number must be defined as an expression.
      */
     String minExpression() default "";
 
     /**
-     *  Short property. The maximum number can be.
+     *  Short property.
+     *
+     *  @return The maximum number can be.
      */
     String max() default "";
 
     /**
-     * The maximum number can be defined as an expression
+     * @return The maximum number can be defined as an expression
      */
     String maxExpression() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -177,11 +181,12 @@ public @interface ShortRangeFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
index 87d4b31..7d7d1ea 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/StringLengthFieldValidator.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -130,53 +130,59 @@ import java.lang.annotation.Target;
 public @interface StringLengthFieldValidator {
 
     /**
-     *  Boolean property. Determines whether the String is trimmed before performing the length check.
+     *  Boolean property.
+     *
+     *  @return Determines whether the String is trimmed before performing the length check.
      */
     boolean trim() default true;
 
     /**
-     * Determines whether the String is trimmed before performing the length check but defined as an expression
+     * @return Determines whether the String is trimmed before performing the length check but defined as an expression
      */
     String trimExpression() default "";
 
     /**
-     *  Integer property. The minimum length the String must be.
+     *  Integer property.
+     *
+     *  @return The minimum length the String must be.
      */
     String minLength() default "";
 
     /**
-     * The minimum length the String must be defined as an expression
+     * @return The minimum length the String must be defined as an expression
      */
     String minLengthExpression() default "";
 
     /**
-     *  Integer property. The maximum length the String can be.
+     *  Integer property.
+     *
+     *  @return The maximum length the String can be.
      */
     String maxLength() default "";
 
     /**
-     * The maximum length the String can be defined as an expression
+     * @return The maximum length the String can be defined as an expression
      */
     String maxLengthExpression() default "";
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -185,11 +191,12 @@ public @interface StringLengthFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType[] type() default {ValidatorType.FIELD};
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/UrlValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/UrlValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/UrlValidator.java
index 9ad9223..924770a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/UrlValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/UrlValidator.java
@@ -32,23 +32,23 @@ import java.lang.annotation.Target;
 public @interface UrlValidator {
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
@@ -56,21 +56,23 @@ public @interface UrlValidator {
      * If this is activated, the validator will be used as short-circuit.
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
+     *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 
     /**
-     * The validation type for this field/method.
+     * @return The validation type for this field/method.
      */
     ValidatorType type() default ValidatorType.FIELD;
 
     /**
-     * Defines regex to use to validate url
+     * @return Defines regex to use to validate url
      */
     String urlRegex() default "";
 
     /**
-     * Defines regex as an expression which will be evaluated to string and used to validate url
+     * @return Defines regex as an expression which will be evaluated to string and used to validate url
      */
     String urlRegexExpression() default "";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
index 5688e1f..dd4ee6d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validation.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -131,6 +131,8 @@ public @interface Validation {
 
     /**
      * Used for class or interface validation rules.
+     *
+     * @return array of validations
      */
     Validations[] validations() default {};
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
index 81390cc..edfc24d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/ValidationParameter.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
index ee587ad..b4b640b 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/Validations.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  *
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
@@ -156,6 +156,8 @@ public @interface Validations {
 
     /**
      * Custom Validation rules.
+     *
+     * @return custom validators
      */
     CustomValidator[] customValidators() default {};
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
index 6501748..5a63234 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/annotations/VisitorFieldValidator.java
@@ -42,7 +42,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -89,7 +89,7 @@ import java.lang.annotation.Target;
  * <td class='confluenceTd'> appendPrefix </td>
  * <td class='confluenceTd'> no </td>
  * <td class='confluenceTd'> true </td>
- * <td class='confluenceTd'> Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs.  For example, suppose that the bean being validated has a "name" property.  If <em>appendPrefix</em> is true, then the field error will be stored under the field "bean.name".  If <em>appendPrefix</em> is false, then the field error will be stored under the field "name".  <br clear="all" /> <img class="emoticon" src="/images/icons/emoticons/warning.gif" height="16" width="16" align="absmiddle" alt="" border="0"/> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em>appendPrefix</em> to false unless you are using "model.name" to reference the properties on your model. </td>
+ * <td class='confluenceTd'> Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs.  For example, suppose that the bean being validated has a "name" property.  If <em>appendPrefix</em> is true, then the field error will be stored under the field "bean.name".  If <em>appendPrefix</em> is false, then the field error will be stored under the field "name".  <br> <img class="emoticon" src="/images/icons/emoticons/warning.gif" height="16" width="16" alt="" style="border: 0px; align: middle;"> If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set <em>appendPrefix</em> to false unless you are using "model.name" to reference the properties on your model. </td>
  * </tr>
  * </table>
  * <!-- END SNIPPET: parameters -->
@@ -112,6 +112,8 @@ public @interface VisitorFieldValidator {
      * Determines the context to use for validating the Object property.
      * If not defined, the context of the Action validator is propagated to the Object property validator.
      * In the case of Action validator, this context is the Action alias.
+     *
+     * @return context
      */
     String context() default "";
 
@@ -126,27 +128,29 @@ public @interface VisitorFieldValidator {
      * If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action,
      * you should set appendPrefix to false unless you are using "model.name" to reference the properties
      * on your model.
+     *
+     * @return true if append prefix
      */
     boolean appendPrefix() default true;
 
     /**
-     * The default error message for this validator.
+     * @return The default error message for this validator.
      * NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      */
     String message() default "";
 
     /**
-     * The message key to lookup for i18n.
+     * @return The message key to lookup for i18n.
      */
     String key() default "";
 
     /**
-     * The optional fieldName for SIMPLE validator types.
+     * @return The optional fieldName for SIMPLE validator types.
      */
     String fieldName() default "";
 
     /**
-     * Additional params to be used to customize message - will be evaluated against the Value Stack
+     * @return Additional params to be used to customize message - will be evaluated against the Value Stack
      */
     String[] messageParams() default {};
 
@@ -155,6 +159,7 @@ public @interface VisitorFieldValidator {
      *
      * Adds the short-circuit="true" attribute value if <tt>true</tt>.
      *
+     * @return true if validator will be used as short-circuit. Default is false.
      */
     boolean shortCircuit() default false;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java
index 4c83bb6..7e92f3f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java
@@ -43,7 +43,7 @@ public class ConditionalVisitorFieldValidator extends VisitorFieldValidator {
      * If expression evaluates to true, invoke visitor validation.
      *
      * @param object the object being validated
-     * @throws ValidationException
+     * @throws ValidationException in case of validation problems
      */
     @Override
     public void validate(Object object) throws ValidationException {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
index 4bfb171..6c49380 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConversionErrorFieldValidator.java
@@ -60,8 +60,8 @@ public class ConversionErrorFieldValidator extends RepopulateConversionErrorFiel
      * The validation implementation must guarantee that setValidatorContext will
      * be called with a non-null ValidatorContext before validate is called.
      *
-     * @param object
-     * @throws ValidationException
+     * @param object the object to be validated
+     * @throws ValidationException in case of validation problems
      */
     @Override
     public void doValidate(Object object) throws ValidationException {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
index cae4a6c..0adbc5c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
@@ -50,7 +50,7 @@ import java.util.Date;
  *
  * <pre>
  * <!-- START SNIPPET: examples -->
- * &lt;validators>
+ * &lt;validators&gt;
  *     &lt;!-- Plain Validator syntax --&gt;
  *     &lt;validator type="date"&gt;
  *         &lt;param name="fieldName"&gt;birthday&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/DoubleRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DoubleRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DoubleRangeFieldValidator.java
index f0dfd80..8ed4e4c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/DoubleRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/DoubleRangeFieldValidator.java
@@ -52,9 +52,9 @@ import org.apache.commons.lang3.StringUtils;
  *
  * <pre>
  * <!-- START SNIPPET: examples -->
- * &lt;validators>
+ * &lt;validators&gt;
  *     &lt;!-- Plain Validator Syntax --&gt;
- *         &lt;validator type="double">
+ *         &lt;validator type="double"&gt;
  *         &lt;param name="fieldName"&gt;percentage&lt;/param&gt;
  *         &lt;param name="minInclusive"&gt;20.1&lt;/param&gt;
  *         &lt;param name="maxInclusive"&gt;50.1&lt;/param&gt;
@@ -84,8 +84,6 @@ import org.apache.commons.lang3.StringUtils;
  *
  * @author Rainer Hermanns
  * @author Rene Gielen
- *
- * @version $Id$
  */
 public class DoubleRangeFieldValidator extends FieldValidatorSupport {
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
index bcc95d4..0f1c82f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
@@ -41,9 +41,9 @@ package com.opensymphony.xwork2.validator.validators;
  *
  * <pre>
  * <!-- START SNIPPET: examples -->
- * &lt;validators>
+ * &lt;validators&gt;
  *      &lt;!-- Plain Validator Syntax --&gt;
- *      &lt;validator type="int">
+ *      &lt;validator type="int"&gt;
  *          &lt;param name="fieldName"&gt;age&lt;/param&gt;
  *          &lt;param name="min"&gt;20&lt;/param&gt;
  *          &lt;param name="max"&gt;50&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
index d5503c3..7c2999a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
@@ -41,9 +41,9 @@ package com.opensymphony.xwork2.validator.validators;
  *
  * <pre>
  * <!-- START SNIPPET: examples -->
- * 	&lt;validators>
+ * 	&lt;validators&gt;
  *      &lt;!-- Plain Validator Syntax --&gt;
- *      &lt;validator type="long">
+ *      &lt;validator type="long"&gt;
  *          &lt;param name="fieldName"&gt;age&lt;/param&gt;
  *          &lt;param name="min"&gt;20&lt;/param&gt;
  *          &lt;param name="max"&gt;50&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/RegexFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RegexFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RegexFieldValidator.java
index a107387..b931482 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RegexFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RegexFieldValidator.java
@@ -40,11 +40,16 @@ import java.util.regex.Pattern;
  *    <li>caseSensitiveExpression - String (Optional). Defines caseSensitive param as an OGNL expression - will be evaluated to Boolean.</li>
  *    <li>trimExpression - String (Optional). Defines trim param as an OGNL expression - will be evaluated to Boolean</li>
  * </ul>
+ *
+ * <p>
  * You can mix normal params with expression aware params but thus was not tested
+ * </p>
  * <!-- END SNIPPET: parameters -->
  *
  * <!-- START SNIPPET: parameters-warning -->
+ * <p>
  * Do not use ${regexExpression}, ${caseSensitiveExpression} and ${trimExpression} as an expression as this will turn into infinitive loop!
+ * </p>
  * <!-- END SNIPPET: parameters-warning -->
  *
  * <pre>
@@ -76,7 +81,6 @@ import java.util.regex.Pattern;
  * </pre>
  *
  * @author Quake Wang
- * @version $Date$ $Revision$
  */
 public class RegexFieldValidator extends FieldValidatorSupport {
 
@@ -145,14 +149,14 @@ public class RegexFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Sets the regular expression to be matched
+     * @param regex the regular expression to be matched
      */
     public void setRegex(String regex) {
         this.regex = regex;
     }
 
     /**
-     * Sets the regular expression as an OGNL expression to be matched
+     * @param regexExpression the regular expression as an OGNL expression to be matched
      */
     public void setRegexExpression(String regexExpression) {
         this.regexExpression = regexExpression;
@@ -170,7 +174,7 @@ public class RegexFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Sets whether the expression should be matched against in
+     * @param caseSensitive whether the expression should be matched against in
      * a case-sensitive way.  Default is <code>true</code>.
      */
     public void setCaseSensitive(Boolean caseSensitive) {
@@ -178,7 +182,7 @@ public class RegexFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Allows specify caseSensitive param as an OGNL expression
+     * @param caseSensitiveExpression  Allows specify caseSensitive param as an OGNL expression
      */
     public void setCaseSensitiveExpression(String caseSensitiveExpression) {
         this.caseSensitiveExpression = caseSensitiveExpression;
@@ -196,7 +200,7 @@ public class RegexFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Sets whether the expression should be trimed before matching.
+     * @param trim whether the expression should be trimed before matching.
      * Default is <code>true</code>.
      */
     public void setTrim(Boolean trim) {
@@ -205,6 +209,8 @@ public class RegexFieldValidator extends FieldValidatorSupport {
 
     /**
      * Allows specify trim param as an OGNL expression
+     *
+     * @param trimExpression trim param as an OGNL expression
      */
     public void setTrimExpression(String trimExpression) {
         this.trimExpression = trimExpression;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
index 1044aed..af2d807 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.java
@@ -20,8 +20,8 @@ import com.opensymphony.xwork2.validator.ValidationException;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * RequiredStringValidator checks that a String field is non-null and has a length > 0.
- * (i.e. it isn't "").  The "trim" parameter determines whether it will {@link String#trim() trim}
+ * RequiredStringValidator checks that a String field is non-null and has a length &gt; 0.
+ * (i.e. it isn't ""). The "trim" parameter determines whether it will {@link String#trim() trim}
  * the String before performing the length check.  If unspecified, the String will be trimmed.
  * <!-- END SNIPPET: javadoc -->
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
index 24a20e2..8e5a9e6 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
@@ -41,9 +41,9 @@ package com.opensymphony.xwork2.validator.validators;
  *
  * <pre>
  * <!-- START SNIPPET: examples -->
- *  &lt;validators>
+ *  &lt;validators&gt;
  *      &lt;!-- Plain Validator Syntax --&gt;
- *      &lt;validator type="short">
+ *      &lt;validator type="short"&gt;
  *          &lt;param name="fieldName"&gt;age&lt;/param&gt;
  *          &lt;param name="min"&gt;20&lt;/param&gt;
  *          &lt;param name="max"&gt;50&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java
index 1ca43b0..1df9450 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java
@@ -174,7 +174,7 @@ public abstract class ValidatorSupport implements Validator, ShortCircuitableVal
      * @param name name of the field
      * @param object to search field name on
      * @return Object as field value
-     * @throws ValidationException
+     * @throws ValidationException in case of validation problems
      */
     protected Object getFieldValue(String name, Object object) throws ValidationException {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java
index 1a99e4f..9f8e67d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java
@@ -70,7 +70,7 @@ import java.util.Collection;
  * </pre>
  *
  * <!-- START SNIPPET: explanation -->
- * <p>In the example above, if the acion's getUser() method return User object, XWork
+ * <p>In the example above, if the action's getUser() method return User object, XWork
  * will look for User-myContext-validation.xml for the validators. Since appednPrefix is true,
  * every field name will be prefixed with 'user' such that if the actual field name for 'name' is
  * 'user.name' </p>
@@ -92,7 +92,7 @@ public class VisitorFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Sets whether the field name of this field validator should be prepended to the field name of
+     * @param appendPrefix whether the field name of this field validator should be prepended to the field name of
      * the visited field to determine the full field name when an error occurs.  The default is
      * true.
      */
@@ -101,7 +101,7 @@ public class VisitorFieldValidator extends FieldValidatorSupport {
     }
 
     /**
-     * Flags whether the field name of this field validator should be prepended to the field name of
+     * @return whether the field name of this field validator should be prepended to the field name of
      * the visited field to determine the full field name when an error occurs.  The default is
      * true.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/ActionComponent.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ActionComponent.java b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
index 5b1196b..3e98f6c 100644
--- a/core/src/main/java/org/apache/struts2/components/ActionComponent.java
+++ b/core/src/main/java/org/apache/struts2/components/ActionComponent.java
@@ -84,33 +84,33 @@ import java.util.Map;
  *
  * <pre>
  * <!-- START SNIPPET: strutsxml -->
- *   <xwork>
+ *   &lt;xwork&gt;
  *      ....
- *     <action name="actionTagAction1" class="tmjee.testing.ActionTagAction">
- *         <result name="done">success.jsp</result>
- *     </action>
- *      <action name="actionTagAction2" class="tmjee.testing.ActionTagAction" method="default">
- *         <result name="done">success.jsp</result>
- *     </action>
+ *     &lt;action name=&quot;actionTagAction1&quot; class=&quot;tmjee.testing.ActionTagAction&quot;&gt;
+ *         &lt;result name=&quot;done&quot;&gt;success.jsp&lt;/result&gt;
+ *     &lt;/action&gt;
+ *      &lt;action name=&quot;actionTagAction2&quot; class=&quot;tmjee.testing.ActionTagAction&quot; method=&quot;default&quot;&gt;
+ *         &lt;result name=&quot;done&quot;&gt;success.jsp&lt;/result&gt;
+ *     &lt;/action&gt;
  *      ....
- *   </xwork>
+ *   &lt;/xwork&gt;
  * <!-- END SNIPPET: strutsxml -->
  * </pre>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
- *  <div>The following action tag will execute result and include it in this page</div>
- *  <br />
- *  <s:action name="actionTagAction" executeResult="true" />
- *  <br />
- *  <div>The following action tag will do the same as above, but invokes method specialMethod in action</div>
- *  <br />
- *  <s:action name="actionTagAction!specialMethod" executeResult="true" />
- *  <br />
- *  <div>The following action tag will not execute result, but put a String in request scope
- *       under an id "stringByAction" which will be retrieved using property tag</div>
- *  <s:action name="actionTagAction!default" executeResult="false" />
- *  <s:property value="#attr.stringByAction" />
+ *  <span>The following action tag will execute result and include it in this page</span>
+ *  <br>
+ *  &lt;s:action name=&quot;actionTagAction&quot; executeResult=&quot;true&quot; /&gt;
+ *  <br>
+ *  <span>The following action tag will do the same as above, but invokes method specialMethod in action</span>
+ *  <br>
+ *  &lt;s:action name=&quot;actionTagAction!specialMethod&quot; executeResult=&quot;true&quot; /&gt;
+ *  <br>
+ *  <span>The following action tag will not execute result, but put a String in request scope
+ *       under an id "stringByAction" which will be retrieved using property tag</span>
+ *  &lt;s:action name=&quot;actionTagAction!default&quot; executeResult=&quot;false&quot; /&gt;
+ *  &lt;s:property value=&quot;#attr.stringByAction&quot; /&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Bean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Bean.java b/core/src/main/java/org/apache/struts2/components/Bean.java
index bb0b913..d01e63b 100644
--- a/core/src/main/java/org/apache/struts2/components/Bean.java
+++ b/core/src/main/java/org/apache/struts2/components/Bean.java
@@ -58,7 +58,7 @@ import java.io.Writer;
  * &lt;-- in freemarker form --&gt;
  * [@s.bean name="org.apache.struts2.example.counter.SimpleCounter" var="counter"]
  *   [s:param name="foo" value="BAR"/]
- *   The value of foo is : [s:property value="foo"/], when inside the bean tag.<br />
+ *   The value of foo is : [s:property value="foo"/], when inside the bean tag.
  * [/s:bean]
  *
  * &lt;-- in jsp form --&gt;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/ComboBox.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ComboBox.java b/core/src/main/java/org/apache/struts2/components/ComboBox.java
index 99ae38d..e2f98b6 100644
--- a/core/src/main/java/org/apache/struts2/components/ComboBox.java
+++ b/core/src/main/java/org/apache/struts2/components/ComboBox.java
@@ -68,24 +68,24 @@ import java.util.Map;
  * &lt;/s:bean&gt;
  *
  * &lt;-- Example Two --&gt;
- * <s:combobox
+ * &lt;s:combobox
  *     label="My Favourite Fruit"
  *     name="myFavouriteFruit"
  *     list="{'apple','banana','grape','pear'}"
  *     headerKey="-1"
  *     headerValue="--- Please Select ---"
  *     emptyOption="true"
- *     value="banana" />
+ *     value="banana" /&gt;
  *
  * &lt;-- Example Two --&gt;
- * <s:combobox
+ * &lt;s:combobox
  *    label="My Favourite Color"
  *    name="myFavouriteColor"
  *    list="#{'red':'red','green':'green','blue':'blue'}"
  *    headerKey="-1"
  *    headerValue="--- Please Select ---"
  *    emptyOption="true"
- *    value="green" />
+ *    value="green" /&gt;
  *
  * Velocity:
  * #tag( ComboBox "label=Birth year" "size=6" "maxlength=4" "name=birthYear" "list=#year" )

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Component.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Component.java b/core/src/main/java/org/apache/struts2/components/Component.java
index 2fd8c14..f6ab54c 100644
--- a/core/src/main/java/org/apache/struts2/components/Component.java
+++ b/core/src/main/java/org/apache/struts2/components/Component.java
@@ -226,14 +226,14 @@ public class Component {
     /**
      * Evaluates the OGNL stack to find a String value.
      * <br>
-     * If the given expression is <tt>null</tt/> a error is logged and a <code>RuntimeException</code> is thrown
+     * If the given expression is <tt>null</tt> a error is logged and a <code>RuntimeException</code> is thrown
      * constructed with a messaged based on the given field and errorMsg parameter.
      *
      * @param expr  OGNL expression.
      * @param field   field name used when throwing <code>RuntimeException</code>.
      * @param errorMsg  error message used when throwing <code>RuntimeException</code>.
      * @return  the String value found.
-     * @throws StrutsException is thrown in case of expression is <tt>null</tt>.
+     * @throws StrutsException is thrown in case of expression is null.
      */
     protected String findString(String expr, String field, String errorMsg) {
         if (expr == null) {
@@ -289,16 +289,15 @@ public class Component {
 	}
 
     /**
-     * Is the altSyntax enabled? [TRUE]
-     * <br>
      * See <code>struts.properties</code> where the altSyntax flag is defined.
+     * @return if the altSyntax enabled? [TRUE]
      */
     public boolean altSyntax() {
         return ComponentUtils.altSyntax(stack);
     }
 
     /**
-     * Adds the sorrounding %{ } to the expression for proper processing.
+     * Adds the surrounding %{ } to the expression for proper processing.
      * @param expr the expression.
      * @return the modified expression if altSyntax is enabled, or the parameter 
      * expression otherwise.
@@ -330,7 +329,7 @@ public class Component {
      *
      * <p>
      * Function just like <code>findValue(String)</code> except that if the
-     * given expression is <tt>null</tt/> a error is logged and
+     * given expression is <tt>null</tt> a error is logged and
      * a <code>RuntimeException</code> is thrown constructed with a
      * messaged based on the given field and errorMsg parameter.
      * </p>
@@ -394,7 +393,7 @@ public class Component {
      * @param includeContext  should the context path be included or not
      * @param encodeResult    should the url be encoded
      * @param forceAddSchemeHostAndPort    should the scheme host and port be forced
-     * @param escapeAmp    should ampersand (&) be escaped to &amp;
+     * @param escapeAmp    should ampersand (&amp;) be escaped to &amp;amp;
      * @return the action url.
      */
     protected String determineActionURL(String action, String namespace, String method,
@@ -533,6 +532,8 @@ public class Component {
 
     /**
      * If needed caches all methods annotated by given annotation to avoid further scans
+     *
+     * @return list of attributes
      */
     protected Collection<String> getStandardAttributes() {
         Class clz = getClass();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/ComponentUrlProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ComponentUrlProvider.java b/core/src/main/java/org/apache/struts2/components/ComponentUrlProvider.java
index 4a5c88c..d8e32c9 100644
--- a/core/src/main/java/org/apache/struts2/components/ComponentUrlProvider.java
+++ b/core/src/main/java/org/apache/struts2/components/ComponentUrlProvider.java
@@ -57,7 +57,7 @@ public class ComponentUrlProvider implements UrlProvider {
     /**
      *
      * @param component The component used to delegate some calls to
-     * @param parameters parameters passed from <param...>
+     * @param parameters parameters passed from &lt;param...&gt;
      */
     public ComponentUrlProvider(Component component, Map parameters) {
         this.component = component;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/ContextBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/ContextBean.java b/core/src/main/java/org/apache/struts2/components/ContextBean.java
index 6ef8b74..fb3f463 100644
--- a/core/src/main/java/org/apache/struts2/components/ContextBean.java
+++ b/core/src/main/java/org/apache/struts2/components/ContextBean.java
@@ -51,6 +51,8 @@ public abstract class ContextBean extends Component {
     /**
      * To keep backward compatibility 
      * TODO remove after 2.1
+     *
+     * @param id the given id
      */
     @StrutsTagAttribute(description="Deprecated. Use 'var' instead")
     public void setId(String id) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Date.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Date.java b/core/src/main/java/org/apache/struts2/components/Date.java
index befc1eb..6500ef5 100644
--- a/core/src/main/java/org/apache/struts2/components/Date.java
+++ b/core/src/main/java/org/apache/struts2/components/Date.java
@@ -47,29 +47,36 @@ import java.util.TimeZone;
  * You can specify a <b>custom format</b> (eg. "dd/MM/yyyy hh:mm"), you can generate
  * <b>easy readable notations</b> (like "in 2 hours, 14 minutes"), or you can just fall back
  * on a <b>predefined format</b> with key 'struts.date.format' in your properties file.
+ * </p>
  *
+ * <p>
  * If that key is not defined, it will finally fall back to the default DateFormat.MEDIUM
  * formatting.
+ * </p>
  *
+ * <p>
  * <b>Note</b>: If the requested Date object isn't found on the stack, a blank will be returned.
  * </p>
  *
- * Configurable attributes are :-
+ * <p>
+ * Configurable attributes are:
+ * </p>
+ *
  * <ul>
  *    <li>name</li>
  *    <li>nice</li>
  *    <li>format</li>
  * </ul>
  *
- * <br>
- *
+ * <p>
  * Following how the date component will work, depending on the value of nice attribute
  * (which by default is false) and the format attribute.
+ * </p>
  *
- * <br>
- *
+ * <p>
  * <b><u>Condition 1: With nice attribute as true</u></b>
- * <table border="1">
+ * </p>
+ * <table border="1" summary="">
  *   <tr>
  *      <td>i18n key</td>
  *      <td>default</td>
@@ -88,31 +95,32 @@ import java.util.TimeZone;
  *   </tr>
  *   <tr>
  *      <td>struts.date.format.minutes</td>
- *      <td>{0,choice,1#one minute|1<{0} minutes}</td>
+ *      <td>{0,choice,1#one minute|1&lt;{0} minutes}</td>
  *   </tr>
  *   <tr>
  *      <td>struts.date.format.hours</td>
- *      <td>{0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}</td>
+ *      <td>{0,choice,1#one hour|1&lt;{0} hours}{1,choice,0#|1#, one minute|1&lt;, {1} minutes}</td>
  *   </tr>
  *   <tr>
  *      <td>struts.date.format.days</td>
- *      <td>{0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}</td>
+ *      <td>{0,choice,1#one day|1&lt;{0} days}{1,choice,0#|1#, one hour|1&lt;, {1} hours}</td>
  *   </tr>
  *   <tr>
  *      <td>struts.date.format.years</td>
- *      <td>{0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}</td>
+ *      <td>{0,choice,1#one year|1&lt;{0} years}{1,choice,0#|1#, one day|1&lt;, {1} days}</td>
  *   </tr>
  * </table>
  *
- * <br>
- *
+ * <p>
  * <b><u>Condition 2: With nice attribute as false and format attribute is specified eg. dd/MM/yyyyy </u></b>
- * <p>In this case the format attribute will be used.</p>
+ * </p>
  *
- * <br>
+ * <p>In this case the format attribute will be used.</p>
  *
+ * <p>
  * <b><u>Condition 3: With nice attribute as false and no format attribute is specified </u></b>
- * <table border="1">
+ * </p>
+ * <table border="1" summary="">
  *    <tr>
  *      <td>i18n key</td>
  *      <td>default</td>
@@ -163,25 +171,25 @@ public class Date extends ContextBean {
     public static final String DATETAG_PROPERTY_SECONDS = "struts.date.format.seconds";
     private static final String DATETAG_DEFAULT_SECONDS = "an instant";
     /**
-     * Property name that defines the minutes notation (default: {0,choice,1#one minute|1<{0} minutes})
+     * Property name that defines the minutes notation (default: {0,choice,1#one minute|1&lt;{0} minutes})
      */
     public static final String DATETAG_PROPERTY_MINUTES = "struts.date.format.minutes";
     private static final String DATETAG_DEFAULT_MINUTES = "{0,choice,1#one minute|1<{0} minutes}";
     /**
-     * Property name that defines the hours notation (default: {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one
-     * minute|1<, {1} minutes})
+     * Property name that defines the hours notation (default: {0,choice,1#one hour|1&lt;{0} hours}{1,choice,0#|1#, one
+     * minute|1&gt;, {1} minutes})
      */
     public static final String DATETAG_PROPERTY_HOURS = "struts.date.format.hours";
     private static final String DATETAG_DEFAULT_HOURS = "{0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}";
     /**
-     * Property name that defines the days notation (default: {0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<,
+     * Property name that defines the days notation (default: {0,choice,1#one day|1&lt;{0} days}{1,choice,0#|1#, one hour|1&lt;,
      * {1} hours})
      */
     public static final String DATETAG_PROPERTY_DAYS = "struts.date.format.days";
     private static final String DATETAG_DEFAULT_DAYS = "{0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}";
     /**
-     * Property name that defines the years notation (default: {0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one
-     * day|1<, {1} days})
+     * Property name that defines the years notation (default: {0,choice,1#one year|1&lt;{0} years}{1,choice,0#|1#, one
+     * day|1&gt;, {1} days})
      */
     public static final String DATETAG_PROPERTY_YEARS = "struts.date.format.years";
     private static final String DATETAG_DEFAULT_YEARS = "{0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}";
@@ -275,7 +283,7 @@ public class Date extends ContextBean {
         java.util.Date date = null;
         // find the name on the valueStack
         try {
-            //suport Calendar also
+            //support Calendar also
             Object dateObject = findValue(name);
             if (dateObject instanceof java.util.Date) {
                 date = (java.util.Date) dateObject;
@@ -374,8 +382,13 @@ public class Date extends ContextBean {
         this.nice = nice;
     }
 
+    @StrutsTagAttribute(description = "The specific timezone in which to format the date", required = false)
+    public void setTimezone(String timezone) {
+        this.timezone = timezone;
+    }
+
     /**
-     * @return Returns the name.
+     * @return the name.
      */
     public String getName() {
         return name;
@@ -387,29 +400,24 @@ public class Date extends ContextBean {
     }
 
     /**
-     * @return Returns the format.
+     * @return the format.
      */
     public String getFormat() {
         return format;
     }
 
     /**
-     * @return Returns the nice.
+     * @return the nice.
      */
     public boolean isNice() {
         return nice;
     }
 
     /**
-     * @return Returns the name.
+     * @return the timezone.
      */
     public String getTimezone() {
         return timezone;
     }
 
-    @StrutsTagAttribute(description = "The specific timezone in which to format the date", required = false)
-    public void setTimezone(String timezone) {
-        this.timezone = timezone;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Form.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Form.java b/core/src/main/java/org/apache/struts2/components/Form.java
index 69ad61e..52aaa7c 100644
--- a/core/src/main/java/org/apache/struts2/components/Form.java
+++ b/core/src/main/java/org/apache/struts2/components/Form.java
@@ -391,9 +391,10 @@ public class Form extends ClosingUIBean {
 
     /**
      * Return type of visited object.
-     * @param actionClass
-     * @param visitorFieldName
-     * @return
+     *
+     * @param actionClass action class
+     * @param visitorFieldName field name
+     * @return type of visited object
      */
     @SuppressWarnings("unchecked")
     protected Class getVisitorReturnType(Class actionClass, String visitorFieldName) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/GenericUIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/GenericUIBean.java b/core/src/main/java/org/apache/struts2/components/GenericUIBean.java
index 53cbef0..0ba693e 100644
--- a/core/src/main/java/org/apache/struts2/components/GenericUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/GenericUIBean.java
@@ -103,7 +103,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  * Freemarker
  * </p>
  * <pre>
- *    &lt;@s..component template="/my/custom/component.ftl" />
+ *    &lt;@s..component template="/my/custom/component.ftl" /&gt;
  *
  *      or
  *
@@ -111,7 +111,7 @@ import com.opensymphony.xwork2.util.ValueStack;
  *       &lt;@s..param name="key1" value="%{'value1'}" /&gt;
  *       &lt;@s..param name="key2" value="%{'value2'}" /&gt;
  *    &lt;/@s..component&gt;
- *
+ * </pre>
  * <!-- END SNIPPET: example -->
  *
  * <p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Include.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Include.java b/core/src/main/java/org/apache/struts2/components/Include.java
index 37e9c43..36f0a87 100644
--- a/core/src/main/java/org/apache/struts2/components/Include.java
+++ b/core/src/main/java/org/apache/struts2/components/Include.java
@@ -238,8 +238,8 @@ public class Include extends Component {
      * @param encoding     the file encoding to use for including the resource; if <tt>null</tt>, it will default to the
      *                     platform encoding
      *
-     * @throws ServletException
-     * @throws IOException
+     * @throws ServletException in case of servlet processing errors
+     * @throws IOException in case of IO errors
      */
     public static void include( String relativePath, Writer writer, ServletRequest request,
                                 HttpServletResponse response, String encoding ) throws ServletException, IOException {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Label.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Label.java b/core/src/main/java/org/apache/struts2/components/Label.java
index d0e9f39..644b389 100644
--- a/core/src/main/java/org/apache/struts2/components/Label.java
+++ b/core/src/main/java/org/apache/struts2/components/Label.java
@@ -32,7 +32,7 @@ import com.opensymphony.xwork2.util.ValueStack;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * Renders an HTML LABEL that will allow you to output label:name combination that has the same format treatment as
+ * <p>Renders an HTML LABEL that will allow you to output label:name combination that has the same format treatment as
  * the rest of your UI controls.</p>
  * <!-- END SNIPPET: javadoc -->
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Param.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Param.java b/core/src/main/java/org/apache/struts2/components/Param.java
index a71cd64..2f7e6bd 100644
--- a/core/src/main/java/org/apache/struts2/components/Param.java
+++ b/core/src/main/java/org/apache/struts2/components/Param.java
@@ -58,11 +58,11 @@ import java.io.Writer;
  * When you declare the param tag, the value can be defined in either a <tt>value</tt> attribute or
  * as text between the start and end tag. Struts behaves a bit different according to these two situations.
  * This is best illustrated using an example:
- * <br/>&lt;param name="color"&gt;blue&lt;/param&gt; &lt;-- (A) --&gt;
- * <br/>&lt;param name="color" value="blue"/&gt; &lt;-- (B) --&gt;
- * <br/>In the first situation (A) the value would be evaluated to the stack as a <tt>java.lang.String</tt> object.
+ * <br>&lt;param name="color"&gt;blue&lt;/param&gt; &lt;-- (A) --&gt;
+ * <br>&lt;param name="color" value="blue"/&gt; &lt;-- (B) --&gt;
+ * <br>In the first situation (A) the value would be evaluated to the stack as a <tt>java.lang.String</tt> object.
  * And in situation (B) the value would be evaluated to the stack as a <tt>java.lang.Object</tt> object.
- * <br/>For more information see <a href="https://issues.apache.org/jira/browse/WW-808">WW-808</a>.
+ * <br>For more information see <a href="https://issues.apache.org/jira/browse/WW-808">WW-808</a>.
  * </p>
  * <!-- END SNIPPET: javadoc -->
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Property.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Property.java b/core/src/main/java/org/apache/struts2/components/Property.java
index 3a34b5b..6baba58 100644
--- a/core/src/main/java/org/apache/struts2/components/Property.java
+++ b/core/src/main/java/org/apache/struts2/components/Property.java
@@ -53,23 +53,21 @@ import java.io.Writer;
  * <pre>
  * <!-- START SNIPPET: example -->
  *
- * <s:push value="myBean">
+ * &lt;s:push value="myBean"&gt;
  *     <!-- Example 1: -->
- *     <s:property value="myBeanProperty" />
+ *     &lt;s:property value="myBeanProperty" /&gt;
  *
  *     <!-- Example 2: -->TextUtils
- *     <s:property value="myBeanProperty" default="a default value" />
- * </s:push>
+ *     &lt;s:property value="myBeanProperty" default="a default value" /&gt;
+ * &lt;/s:push&gt;
  *
  * <!-- END SNIPPET: example -->
  * </pre>
  *
  * <pre>
  * <!-- START SNIPPET: exampledescription -->
- * <p>
  * Example 1 prints the result of myBean's getMyBeanProperty() method.
  * Example 2 prints the result of myBean's getMyBeanProperty() method and if it is null, print 'a default value' instead.
- * </p>
  * <!-- END SNIPPET: exampledescription -->
  * </pre>
  *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Radio.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Radio.java b/core/src/main/java/org/apache/struts2/components/Radio.java
index bc46882..00c6616 100644
--- a/core/src/main/java/org/apache/struts2/components/Radio.java
+++ b/core/src/main/java/org/apache/struts2/components/Radio.java
@@ -52,7 +52,7 @@ import javax.servlet.http.HttpServletResponse;
  * <!-- START SNIPPET: example_fmt -->
  * &lt;@s.radio name="car" list={"ford": "Ford Motor Co", "toyota": "Toyota"} listKey="key" listValue="value" /&gt;
  * <!-- END SNIPPET: example_fmt -->
- *
+ * </pre>
  */
 @StrutsTag(name="radio",
         tldTagClass="org.apache.struts2.views.jsp.ui.RadioTag",

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Text.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Text.java b/core/src/main/java/org/apache/struts2/components/Text.java
index 513a2aa..69c0344 100644
--- a/core/src/main/java/org/apache/struts2/components/Text.java
+++ b/core/src/main/java/org/apache/struts2/components/Text.java
@@ -69,13 +69,9 @@ import java.util.List;
  * Example:
  * </p>
  *
- * <pre>
  * <!-- START SNIPPET: exdescription -->
- *
- * Accessing messages from a given bundle (the i18n Shop example bundle in the first example) and using bundle defined through the framework in the second example.</p>
- *
+ * <p>Accessing messages from a given bundle (the i18n Shop example bundle in the first example) and using bundle defined through the framework in the second example.</p>
  * <!-- END SNIPPET: exdescription -->
- * </pre>
  *
  * <pre>
  * <!-- START SNIPPET: example -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/TextArea.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/TextArea.java b/core/src/main/java/org/apache/struts2/components/TextArea.java
index 968d42e..234810d 100644
--- a/core/src/main/java/org/apache/struts2/components/TextArea.java
+++ b/core/src/main/java/org/apache/struts2/components/TextArea.java
@@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * Render HTML textarea tag.</p>
+ * <p>Render HTML textarea tag.</p>
  * <!-- END SNIPPET: javadoc -->
  *
  * <p><b>Examples</b></p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/Token.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/Token.java b/core/src/main/java/org/apache/struts2/components/Token.java
index 65bedb0..cac7679 100644
--- a/core/src/main/java/org/apache/struts2/components/Token.java
+++ b/core/src/main/java/org/apache/struts2/components/Token.java
@@ -33,8 +33,9 @@ import com.opensymphony.xwork2.util.ValueStack;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * Stop double-submission of forms.</p>
+ * <p>Stop double-submission of forms.</p>
  *
+ * <p>
  * The token tag is used to help with the "double click" submission problem. It is needed if you are using the
  * TokenInterceptor or the TokenSessionInterceptor. The s:token tag merely places a hidden element that contains
  * the unique token.</p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/UIBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java b/core/src/main/java/org/apache/struts2/components/UIBean.java
index cbceefc..aa6a5f2 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -52,7 +52,7 @@ import java.util.Map;
  * </p>
  * <!-- START SNIPPET: templateRelatedAttributes -->
  *
- * <table border="1">
+ * <table border="1" summary="">
  *    <thead>
  *       <tr>
  *          <td>Attribute</td>
@@ -67,26 +67,26 @@ import java.util.Map;
  *          <td>n/a</td>
  *          <td>String</td>
  *          <td>define the template directory</td>
- *       </td>
+ *       </tr>
  *       <tr>
  *          <td>theme</td>
  *          <td>n/a</td>
  *          <td>String</td>
  *          <td>define the theme name</td>
- *       </td>
+ *       </tr>
  *       <tr>
  *          <td>template</td>
  *          <td>n/a</td>
  *          <td>String</td>
  *          <td>define the template name</td>
- *       </td>
+ *       </tr>
  *       <tr>
  *          <td>themeExpansionToken</td>
  *          <td>n/a</td>
  *          <td>String</td>
  *          <td>special token (defined with struts.ui.theme.expansion.token) used to search for template in parent theme
  *          (don't use it separately!)</td>
- *       </td>
+ *       </tr>
  *       <tr>
  *          <td>expandTheme</td>
  *          <td>n/a</td>
@@ -94,7 +94,7 @@ import java.util.Map;
  *          <td>concatenation of themeExpansionToken and theme which tells internal template loader mechanism
  *          to try load template from current theme and then from parent theme (and parent theme, and so on)
  *          when used with &lt;#include/&gt; directive</td>
- *       </td>
+ *       </tr>
  *    </tbody>
  * </table>
  *
@@ -102,7 +102,7 @@ import java.util.Map;
  *
  * <!-- START SNIPPET: generalAttributes -->
  *
- * <table border="1">
+ * <table border="1" summary="">
  *    <thead>
  *       <tr>
  *          <td>Attribute</td>
@@ -203,7 +203,7 @@ import java.util.Map;
  *
  * <!-- START SNIPPET: javascriptRelatedAttributes -->
  *
- * <table border="1">
+ * <table border="1" summary="">
  *    <thead>
  *       <tr>
  *          <td>Attribute</td>
@@ -298,7 +298,7 @@ import java.util.Map;
  *
  * <!-- START SNIPPET: tooltipattributes -->
  *
- * <table border="1">
+ * <table border="1" summary="">
  *  <tr>
  *     <td>Attribute</td>
  *     <td>Data Type</td>
@@ -366,10 +366,10 @@ import java.util.Map;
  * </p>
  *
  * <p>
- * Example 3, 4 and 5 show different ways of setting the tooltip configuration attribute.<br/>
- * <b>Example 3:</b> Set tooltip config through the body of the param tag<br/>
- * <b>Example 4:</b> Set tooltip config through the value attribute of the param tag<br/>
- * <b>Example 5:</b> Set tooltip config through the tooltip attributes of the component tag<br/>
+ * Example 3, 4 and 5 show different ways of setting the tooltip configuration attribute.<br>
+ * <b>Example 3:</b> Set tooltip config through the body of the param tag<br>
+ * <b>Example 4:</b> Set tooltip config through the value attribute of the param tag<br>
+ * <b>Example 5:</b> Set tooltip config through the tooltip attributes of the component tag<br>
  * </p>
  *
  * <!-- END SNIPPET: tooltipdescription -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/URL.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/URL.java b/core/src/main/java/org/apache/struts2/components/URL.java
index 4da6d64..6269271 100644
--- a/core/src/main/java/org/apache/struts2/components/URL.java
+++ b/core/src/main/java/org/apache/struts2/components/URL.java
@@ -50,8 +50,8 @@ import java.io.Writer;
  * <p>When includeParams is 'all' or 'get', the parameter defined in a &lt;param&gt;
  * tag will take precedence over any params included due to the includeParams attribute. For
  * example, in Example 3 below, if there is a id parameter in the url where the page this
- * tag is included like http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=3333&name=John
- * the generated url will be http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=22&name=John
+ * tag is included like http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=3333&amp;name=John
+ * the generated url will be http://&lt;host&gt;:&lt;port&gt;/&lt;context&gt;/editUser.action?id=22&amp;name=John
  * because the parameter defined in the param tag will take precedence.</p>
  *
  * <!-- END SNIPPET: javadoc -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/components/UpDownSelect.java b/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
index 210b419..1529cfd 100644
--- a/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
+++ b/core/src/main/java/org/apache/struts2/components/UpDownSelect.java
@@ -70,7 +70,7 @@ import java.util.Map;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
- * @s.tag name="updownselect" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.UpDownSelectTag"
+ * {@literal @}s.tag name="updownselect" tld-body-content="JSP" tld-tag-class="org.apache.struts2.views.jsp.ui.UpDownSelectTag"
  * description="Render a up down select element"
  */
 @StrutsTag(name="updownselect", tldTagClass="org.apache.struts2.views.jsp.ui.UpDownSelectTag", 


[04/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspRuntimeLibrary.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspRuntimeLibrary.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspRuntimeLibrary.java
index dc0d520..5108a32 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspRuntimeLibrary.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspRuntimeLibrary.java
@@ -17,6 +17,18 @@
 
 package org.apache.struts2.jasper.runtime;
 
+import org.apache.struts2.jasper.Constants;
+import org.apache.struts2.jasper.JasperException;
+import org.apache.struts2.jasper.compiler.Localizer;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.BodyContent;
 import java.beans.PropertyEditor;
 import java.beans.PropertyEditorManager;
 import java.io.ByteArrayOutputStream;
@@ -28,207 +40,197 @@ import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.Enumeration;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.BodyContent;
-
-import org.apache.struts2.jasper.Constants;
-import org.apache.struts2.jasper.JasperException;
-import org.apache.struts2.jasper.compiler.Localizer;
-
 /**
+ * <p>
  * Bunch of util methods that are used by code generated for useBean,
- * getProperty and setProperty.  
+ * getProperty and setProperty.
+ * </p>
  *
+ * <p>
  * The __begin, __end stuff is there so that the JSP engine can
  * actually parse this file and inline them if people don't want
  * runtime dependencies on this class. However, I'm not sure if that
  * works so well right now. It got forgotten at some point. -akv
+ * </p>
  *
  * @author Mandar Raje
  * @author Shawn Bayern
  */
 public class JspRuntimeLibrary {
-    
+
     private static final String SERVLET_EXCEPTION
-	= "javax.servlet.error.exception";
+            = "javax.servlet.error.exception";
     private static final String JSP_EXCEPTION
-	= "javax.servlet.jsp.jspException";
+            = "javax.servlet.jsp.jspException";
 
     protected static class PrivilegedIntrospectHelper
-	implements PrivilegedExceptionAction {
+            implements PrivilegedExceptionAction {
 
-	private Object bean;
-	private String prop;
-	private String value;
-	private ServletRequest request;
-	private String param;
-	private boolean ignoreMethodNF;
+        private Object bean;
+        private String prop;
+        private String value;
+        private ServletRequest request;
+        private String param;
+        private boolean ignoreMethodNF;
 
         PrivilegedIntrospectHelper(Object bean, String prop,
                                    String value, ServletRequest request,
-                                   String param, boolean ignoreMethodNF)
-        {
-	    this.bean = bean;
-	    this.prop = prop;
-	    this.value = value;
+                                   String param, boolean ignoreMethodNF) {
+            this.bean = bean;
+            this.prop = prop;
+            this.value = value;
             this.request = request;
-	    this.param = param;
-	    this.ignoreMethodNF = ignoreMethodNF;
+            this.param = param;
+            this.ignoreMethodNF = ignoreMethodNF;
         }
-         
+
         public Object run() throws JasperException {
-	    internalIntrospecthelper(
-                bean,prop,value,request,param,ignoreMethodNF);
+            internalIntrospecthelper(
+                    bean, prop, value, request, param, ignoreMethodNF);
             return null;
         }
     }
 
     /**
-     * Returns the value of the javax.servlet.error.exception request
-     * attribute value, if present, otherwise the value of the
-     * javax.servlet.jsp.jspException request attribute value.
-     *
      * This method is called at the beginning of the generated servlet code
      * for a JSP error page, when the "exception" implicit scripting language
      * variable is initialized.
+     *
+     * @param request servlet request
+     * @return the value of the javax.servlet.error.exception request
+     * attribute value, if present, otherwise the value of the
+     * javax.servlet.jsp.jspException request attribute value.
      */
     public static Throwable getThrowable(ServletRequest request) {
-	Throwable error = (Throwable) request.getAttribute(SERVLET_EXCEPTION);
-	if (error == null) {
-	    error = (Throwable) request.getAttribute(JSP_EXCEPTION);
-	    if (error != null) {
-		/*
+        Throwable error = (Throwable) request.getAttribute(SERVLET_EXCEPTION);
+        if (error == null) {
+            error = (Throwable) request.getAttribute(JSP_EXCEPTION);
+            if (error != null) {
+        /*
 		 * The only place that sets JSP_EXCEPTION is
 		 * PageContextImpl.handlePageException(). It really should set
 		 * SERVLET_EXCEPTION, but that would interfere with the 
 		 * ErrorReportValve. Therefore, if JSP_EXCEPTION is set, we
 		 * need to set SERVLET_EXCEPTION.
 		 */
-		request.setAttribute(SERVLET_EXCEPTION, error);
-	    }
-	}
+                request.setAttribute(SERVLET_EXCEPTION, error);
+            }
+        }
 
-	return error;
+        return error;
     }
 
     public static boolean coerceToBoolean(String s) {
-	if (s == null || s.length() == 0)
-	    return false;
-	else
-	    return Boolean.valueOf(s).booleanValue();
+        if (s == null || s.length() == 0)
+            return false;
+        else
+            return Boolean.valueOf(s).booleanValue();
     }
 
     public static byte coerceToByte(String s) {
-	if (s == null || s.length() == 0)
-	    return (byte) 0;
-	else
-	    return Byte.valueOf(s).byteValue();
+        if (s == null || s.length() == 0)
+            return (byte) 0;
+        else
+            return Byte.valueOf(s).byteValue();
     }
 
     public static char coerceToChar(String s) {
-	if (s == null || s.length() == 0) {
-	    return (char) 0;
-	} else {
-	    // this trick avoids escaping issues
-	    return (char)(int) s.charAt(0);
-	}
+        if (s == null || s.length() == 0) {
+            return (char) 0;
+        } else {
+            // this trick avoids escaping issues
+            return (char) (int) s.charAt(0);
+        }
     }
 
     public static double coerceToDouble(String s) {
-	if (s == null || s.length() == 0)
-	    return (double) 0;
-	else
-	    return Double.valueOf(s).doubleValue();
+        if (s == null || s.length() == 0)
+            return (double) 0;
+        else
+            return Double.valueOf(s).doubleValue();
     }
 
     public static float coerceToFloat(String s) {
-	if (s == null || s.length() == 0)
-	    return (float) 0;
-	else
-	    return Float.valueOf(s).floatValue();
+        if (s == null || s.length() == 0)
+            return (float) 0;
+        else
+            return Float.valueOf(s).floatValue();
     }
 
     public static int coerceToInt(String s) {
-	if (s == null || s.length() == 0)
-	    return 0;
-	else
-	    return Integer.valueOf(s).intValue();
+        if (s == null || s.length() == 0)
+            return 0;
+        else
+            return Integer.valueOf(s).intValue();
     }
 
     public static short coerceToShort(String s) {
-	if (s == null || s.length() == 0)
-	    return (short) 0;
-	else
-	    return Short.valueOf(s).shortValue();
+        if (s == null || s.length() == 0)
+            return (short) 0;
+        else
+            return Short.valueOf(s).shortValue();
     }
 
     public static long coerceToLong(String s) {
-	if (s == null || s.length() == 0)
-	    return (long) 0;
-	else
-	    return Long.valueOf(s).longValue();
+        if (s == null || s.length() == 0)
+            return (long) 0;
+        else
+            return Long.valueOf(s).longValue();
     }
 
     public static Object coerce(String s, Class target) {
 
-	boolean isNullOrEmpty = (s == null || s.length() == 0);
-
-	if (target == Boolean.class) {
-	    if (isNullOrEmpty) {
-		s = "false";
-	    }
-	    return new Boolean(s);
-	} else if (target == Byte.class) {
-	    if (isNullOrEmpty)
-		return new Byte((byte) 0);
-	    else
-		return new Byte(s);
-	} else if (target == Character.class) {
-	    if (isNullOrEmpty)
-		return new Character((char) 0);
-	    else 
-		return new Character(s.charAt(0));
-	} else if (target == Double.class) {
-	    if (isNullOrEmpty)
-		return new Double(0);
-	    else
-		return new Double(s);
-	} else if (target == Float.class) {
-	    if (isNullOrEmpty)
-		return new Float(0);
-	    else
-		return new Float(s);
-	} else if (target == Integer.class) {
-	    if (isNullOrEmpty)
-		return new Integer(0);
-	    else
-		return new Integer(s);
-	} else if (target == Short.class) {
-	    if (isNullOrEmpty)
-		return new Short((short) 0);
-	    else
-		return new Short(s);
-	} else if (target == Long.class) {
-	    if (isNullOrEmpty)
-		return new Long(0);
-	    else
-		return new Long(s);
-	} else {
-	    return null;
-	}
+        boolean isNullOrEmpty = (s == null || s.length() == 0);
+
+        if (target == Boolean.class) {
+            if (isNullOrEmpty) {
+                s = "false";
+            }
+            return new Boolean(s);
+        } else if (target == Byte.class) {
+            if (isNullOrEmpty)
+                return new Byte((byte) 0);
+            else
+                return new Byte(s);
+        } else if (target == Character.class) {
+            if (isNullOrEmpty)
+                return new Character((char) 0);
+            else
+                return new Character(s.charAt(0));
+        } else if (target == Double.class) {
+            if (isNullOrEmpty)
+                return new Double(0);
+            else
+                return new Double(s);
+        } else if (target == Float.class) {
+            if (isNullOrEmpty)
+                return new Float(0);
+            else
+                return new Float(s);
+        } else if (target == Integer.class) {
+            if (isNullOrEmpty)
+                return new Integer(0);
+            else
+                return new Integer(s);
+        } else if (target == Short.class) {
+            if (isNullOrEmpty)
+                return new Short((short) 0);
+            else
+                return new Short(s);
+        } else if (target == Long.class) {
+            if (isNullOrEmpty)
+                return new Long(0);
+            else
+                return new Long(s);
+        } else {
+            return null;
+        }
     }
 
-   // __begin convertMethod
+    // __begin convertMethod
     public static Object convert(String propertyName, String s, Class t,
-				 Class propertyEditorClass) 
-       throws JasperException 
-    {
+                                 Class propertyEditorClass)
+            throws JasperException {
         try {
             if (s == null) {
                 if (t.equals(Boolean.class) || t.equals(Boolean.TYPE))
@@ -236,38 +238,38 @@ public class JspRuntimeLibrary {
                 else
                     return null;
             }
-	    if (propertyEditorClass != null) {
-		return getValueFromBeanInfoPropertyEditor(
-				    t, propertyName, s, propertyEditorClass);
-	    } else if ( t.equals(Boolean.class) || t.equals(Boolean.TYPE) ) {
+            if (propertyEditorClass != null) {
+                return getValueFromBeanInfoPropertyEditor(
+                        t, propertyName, s, propertyEditorClass);
+            } else if (t.equals(Boolean.class) || t.equals(Boolean.TYPE)) {
                 if (s.equalsIgnoreCase("on") || s.equalsIgnoreCase("true"))
                     s = "true";
                 else
                     s = "false";
                 return new Boolean(s);
-            } else if ( t.equals(Byte.class) || t.equals(Byte.TYPE) ) {
+            } else if (t.equals(Byte.class) || t.equals(Byte.TYPE)) {
                 return new Byte(s);
             } else if (t.equals(Character.class) || t.equals(Character.TYPE)) {
                 return s.length() > 0 ? new Character(s.charAt(0)) : null;
-            } else if ( t.equals(Short.class) || t.equals(Short.TYPE) ) {
+            } else if (t.equals(Short.class) || t.equals(Short.TYPE)) {
                 return new Short(s);
-            } else if ( t.equals(Integer.class) || t.equals(Integer.TYPE) ) {
+            } else if (t.equals(Integer.class) || t.equals(Integer.TYPE)) {
                 return new Integer(s);
-            } else if ( t.equals(Float.class) || t.equals(Float.TYPE) ) {
+            } else if (t.equals(Float.class) || t.equals(Float.TYPE)) {
                 return new Float(s);
-            } else if ( t.equals(Long.class) || t.equals(Long.TYPE) ) {
+            } else if (t.equals(Long.class) || t.equals(Long.TYPE)) {
                 return new Long(s);
-            } else if ( t.equals(Double.class) || t.equals(Double.TYPE) ) {
+            } else if (t.equals(Double.class) || t.equals(Double.TYPE)) {
                 return new Double(s);
-            } else if ( t.equals(String.class) ) {
+            } else if (t.equals(String.class)) {
                 return s;
-            } else if ( t.equals(java.io.File.class) ) {
+            } else if (t.equals(java.io.File.class)) {
                 return new java.io.File(s);
             } else if (t.getName().equals("java.lang.Object")) {
-                return new Object[] {s};
-	    } else {
-		return getValueFromPropertyEditorManager(
-                                            t, propertyName, s);
+                return new Object[]{s};
+            } else {
+                return getValueFromPropertyEditorManager(
+                        t, propertyName, s);
             }
         } catch (Exception ex) {
             throw new JasperException(ex);
@@ -277,106 +279,103 @@ public class JspRuntimeLibrary {
 
     // __begin introspectMethod
     public static void introspect(Object bean, ServletRequest request)
-                                  throws JasperException
-    {
-	Enumeration e = request.getParameterNames();
-	while ( e.hasMoreElements() ) {
-	    String name  = (String) e.nextElement();
-	    String value = request.getParameter(name);
-	    introspecthelper(bean, name, value, request, name, true);
-	}
+            throws JasperException {
+        Enumeration e = request.getParameterNames();
+        while (e.hasMoreElements()) {
+            String name = (String) e.nextElement();
+            String value = request.getParameter(name);
+            introspecthelper(bean, name, value, request, name, true);
+        }
     }
     // __end introspectMethod
-    
+
     // __begin introspecthelperMethod
     public static void introspecthelper(Object bean, String prop,
                                         String value, ServletRequest request,
                                         String param, boolean ignoreMethodNF)
-                                        throws JasperException
-    {
-        if( Constants.IS_SECURITY_ENABLED ) {
+            throws JasperException {
+        if (Constants.IS_SECURITY_ENABLED) {
             try {
                 PrivilegedIntrospectHelper dp =
-		    new PrivilegedIntrospectHelper(
-			bean,prop,value,request,param,ignoreMethodNF);
+                        new PrivilegedIntrospectHelper(
+                                bean, prop, value, request, param, ignoreMethodNF);
                 AccessController.doPrivileged(dp);
-            } catch( PrivilegedActionException pe) {
+            } catch (PrivilegedActionException pe) {
                 Exception e = pe.getException();
-                throw (JasperException)e;
+                throw (JasperException) e;
             }
         } else {
             internalIntrospecthelper(
-		bean,prop,value,request,param,ignoreMethodNF);
+                    bean, prop, value, request, param, ignoreMethodNF);
         }
     }
 
     private static void internalIntrospecthelper(Object bean, String prop,
-					String value, ServletRequest request,
-					String param, boolean ignoreMethodNF) 
-					throws JasperException
-    {
+                                                 String value, ServletRequest request,
+                                                 String param, boolean ignoreMethodNF)
+            throws JasperException {
         Method method = null;
         Class type = null;
         Class propertyEditorClass = null;
-	try {
-	    java.beans.BeanInfo info
-		= java.beans.Introspector.getBeanInfo(bean.getClass());
-	    if ( info != null ) {
-		java.beans.PropertyDescriptor pd[]
-		    = info.getPropertyDescriptors();
-		for (int i = 0 ; i < pd.length ; i++) {
-		    if ( pd[i].getName().equals(prop) ) {
-			method = pd[i].getWriteMethod();
-			type   = pd[i].getPropertyType();
-			propertyEditorClass = pd[i].getPropertyEditorClass();
-			break;
-		    }
-		}
-	    }
-	    if ( method != null ) {
-		if (type.isArray()) {
+        try {
+            java.beans.BeanInfo info
+                    = java.beans.Introspector.getBeanInfo(bean.getClass());
+            if (info != null) {
+                java.beans.PropertyDescriptor pd[]
+                        = info.getPropertyDescriptors();
+                for (int i = 0; i < pd.length; i++) {
+                    if (pd[i].getName().equals(prop)) {
+                        method = pd[i].getWriteMethod();
+                        type = pd[i].getPropertyType();
+                        propertyEditorClass = pd[i].getPropertyEditorClass();
+                        break;
+                    }
+                }
+            }
+            if (method != null) {
+                if (type.isArray()) {
                     if (request == null) {
-			throw new JasperException(
-		            Localizer.getMessage("jsp.error.beans.setproperty.noindexset"));
+                        throw new JasperException(
+                                Localizer.getMessage("jsp.error.beans.setproperty.noindexset"));
+                    }
+                    Class t = type.getComponentType();
+                    String[] values = request.getParameterValues(param);
+                    //XXX Please check.
+                    if (values == null) return;
+                    if (t.equals(String.class)) {
+                        method.invoke(bean, new Object[]{values});
+                    } else {
+                        Object tmpval = null;
+                        createTypedArray(prop, bean, method, values, t,
+                                propertyEditorClass);
                     }
-		    Class t = type.getComponentType();
-		    String[] values = request.getParameterValues(param);
-		    //XXX Please check.
-		    if(values == null) return;
-		    if(t.equals(String.class)) {
-			method.invoke(bean, new Object[] { values });
-		    } else {
-			Object tmpval = null;
-			createTypedArray (prop, bean, method, values, t,
-					  propertyEditorClass); 
-		    }
-		} else {
-		    if(value == null || (param != null && value.equals(""))) return;
-		    Object oval = convert(prop, value, type, propertyEditorClass);
-		    if ( oval != null )
-			method.invoke(bean, new Object[] { oval });
-		}
-	    }
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}
+                } else {
+                    if (value == null || (param != null && value.equals(""))) return;
+                    Object oval = convert(prop, value, type, propertyEditorClass);
+                    if (oval != null)
+                        method.invoke(bean, new Object[]{oval});
+                }
+            }
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
         if (!ignoreMethodNF && (method == null)) {
             if (type == null) {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.noproperty",
-					 prop,
-					 bean.getClass().getName()));
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.noproperty",
+                                prop,
+                                bean.getClass().getName()));
             } else {
-		throw new JasperException(
-	            Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
-					 prop,
-					 type.getName(),
-					 bean.getClass().getName()));
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
+                                prop,
+                                type.getName(),
+                                bean.getClass().getName()));
             }
         }
     }
     // __end introspecthelperMethod
-    
+
     //-------------------------------------------------------------------
     // functions to convert builtin Java data types to string.
     //-------------------------------------------------------------------
@@ -423,233 +422,256 @@ public class JspRuntimeLibrary {
      * Create a typed array.
      * This is a special case where params are passed through
      * the request and the property is indexed.
+     *
+     * @param propertyName        name of property
+     * @param bean                bean
+     * @param method              method
+     * @param values              values as string array
+     * @param t                   class type
+     * @param propertyEditorClass property editor class
+     *
+     * @throws JasperException in case of Jasper errors
      */
     public static void createTypedArray(String propertyName,
-					Object bean,
-					Method method,
-					String[] values,
-					Class t,
-					Class propertyEditorClass)
-	        throws JasperException {
-
-	try {
-	    if (propertyEditorClass != null) {
-		Object[] tmpval = new Integer[values.length];
-		for (int i=0; i<values.length; i++) {
-		    tmpval[i] = getValueFromBeanInfoPropertyEditor(
+                                        Object bean,
+                                        Method method,
+                                        String[] values,
+                                        Class t,
+                                        Class propertyEditorClass)
+            throws JasperException {
+
+        try {
+            if (propertyEditorClass != null) {
+                Object[] tmpval = new Integer[values.length];
+                for (int i = 0; i < values.length; i++) {
+                    tmpval[i] = getValueFromBeanInfoPropertyEditor(
                             t, propertyName, values[i], propertyEditorClass);
-		}
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Integer.class)) {
-		Integer []tmpval = new Integer[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] =  new Integer (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Byte.class)) {
-		Byte[] tmpval = new Byte[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Byte (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Boolean.class)) {
-		Boolean[] tmpval = new Boolean[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Boolean (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Short.class)) {
-		Short[] tmpval = new Short[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Short (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Long.class)) {
-		Long[] tmpval = new Long[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Long (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Double.class)) {
-		Double[] tmpval = new Double[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Double (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Float.class)) {
-		Float[] tmpval = new Float[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Float (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(Character.class)) {
-		Character[] tmpval = new Character[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = new Character(values[i].charAt(0));
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(int.class)) {
-		int []tmpval = new int[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Integer.parseInt (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(byte.class)) {
-		byte[] tmpval = new byte[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Byte.parseByte (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(boolean.class)) {
-		boolean[] tmpval = new boolean[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = (Boolean.valueOf(values[i])).booleanValue();
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(short.class)) {
-		short[] tmpval = new short[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Short.parseShort (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(long.class)) {
-		long[] tmpval = new long[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Long.parseLong (values[i]);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(double.class)) {
-		double[] tmpval = new double[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Double.valueOf(values[i]).doubleValue();
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(float.class)) {
-		float[] tmpval = new float[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = Float.valueOf(values[i]).floatValue();
-		method.invoke (bean, new Object[] {tmpval});
-	    } else if (t.equals(char.class)) {
-		char[] tmpval = new char[values.length];
-		for (int i = 0 ; i < values.length; i++)
-		    tmpval[i] = values[i].charAt(0);
-		method.invoke (bean, new Object[] {tmpval});
-	    } else {
-		Object[] tmpval = new Integer[values.length];
-		for (int i=0; i<values.length; i++) {
-		    tmpval[i] =  
-			getValueFromPropertyEditorManager(
-                                            t, propertyName, values[i]);
-		}
-		method.invoke (bean, new Object[] {tmpval});
-	    }
-	} catch (Exception ex) {
-            throw new JasperException ("error in invoking method", ex);
-	}
+                }
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Integer.class)) {
+                Integer[] tmpval = new Integer[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Integer(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Byte.class)) {
+                Byte[] tmpval = new Byte[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Byte(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Boolean.class)) {
+                Boolean[] tmpval = new Boolean[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Boolean(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Short.class)) {
+                Short[] tmpval = new Short[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Short(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Long.class)) {
+                Long[] tmpval = new Long[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Long(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Double.class)) {
+                Double[] tmpval = new Double[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Double(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Float.class)) {
+                Float[] tmpval = new Float[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Float(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(Character.class)) {
+                Character[] tmpval = new Character[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = new Character(values[i].charAt(0));
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(int.class)) {
+                int[] tmpval = new int[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Integer.parseInt(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(byte.class)) {
+                byte[] tmpval = new byte[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Byte.parseByte(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(boolean.class)) {
+                boolean[] tmpval = new boolean[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = (Boolean.valueOf(values[i])).booleanValue();
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(short.class)) {
+                short[] tmpval = new short[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Short.parseShort(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(long.class)) {
+                long[] tmpval = new long[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Long.parseLong(values[i]);
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(double.class)) {
+                double[] tmpval = new double[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Double.valueOf(values[i]).doubleValue();
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(float.class)) {
+                float[] tmpval = new float[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = Float.valueOf(values[i]).floatValue();
+                method.invoke(bean, new Object[]{tmpval});
+            } else if (t.equals(char.class)) {
+                char[] tmpval = new char[values.length];
+                for (int i = 0; i < values.length; i++)
+                    tmpval[i] = values[i].charAt(0);
+                method.invoke(bean, new Object[]{tmpval});
+            } else {
+                Object[] tmpval = new Integer[values.length];
+                for (int i = 0; i < values.length; i++) {
+                    tmpval[i] =
+                            getValueFromPropertyEditorManager(
+                                    t, propertyName, values[i]);
+                }
+                method.invoke(bean, new Object[]{tmpval});
+            }
+        } catch (Exception ex) {
+            throw new JasperException("error in invoking method", ex);
+        }
     }
 
     /**
      * Escape special shell characters.
+     *
      * @param unescString The string to shell-escape
      * @return The escaped shell string.
      */
 
     public static String escapeQueryString(String unescString) {
-    if ( unescString == null )
-        return null;
-   
-    String escString    = "";
-    String shellSpChars = "&;`'\"|*?~<>^()[]{}$\\\n";
-   
-    for(int index=0; index<unescString.length(); index++) {
-        char nextChar = unescString.charAt(index);
-
-        if( shellSpChars.indexOf(nextChar) != -1 )
-        escString += "\\";
-
-        escString += nextChar;
-    }
-    return escString;
+        if (unescString == null)
+            return null;
+
+        String escString = "";
+        String shellSpChars = "&;`'\"|*?~<>^()[]{}$\\\n";
+
+        for (int index = 0; index < unescString.length(); index++) {
+            char nextChar = unescString.charAt(index);
+
+            if (shellSpChars.indexOf(nextChar) != -1)
+                escString += "\\";
+
+            escString += nextChar;
+        }
+        return escString;
     }
 
     /**
      * Decode an URL formatted string.
+     *
      * @param encoded The string to decode.
      * @return The decoded string.
      */
 
     public static String decode(String encoded) {
         // speedily leave if we're not needed
-    if (encoded == null) return null;
+        if (encoded == null) return null;
         if (encoded.indexOf('%') == -1 && encoded.indexOf('+') == -1)
-        return encoded;
+            return encoded;
 
-    //allocate the buffer - use byte[] to avoid calls to new.
+        //allocate the buffer - use byte[] to avoid calls to new.
         byte holdbuffer[] = new byte[encoded.length()];
 
         char holdchar;
         int bufcount = 0;
 
         for (int count = 0; count < encoded.length(); count++) {
-        char cur = encoded.charAt(count);
+            char cur = encoded.charAt(count);
             if (cur == '%') {
-            holdbuffer[bufcount++] =
-          (byte)Integer.parseInt(encoded.substring(count+1,count+3),16);
+                holdbuffer[bufcount++] =
+                        (byte) Integer.parseInt(encoded.substring(count + 1, count + 3), 16);
                 if (count + 2 >= encoded.length())
                     count = encoded.length();
                 else
                     count += 2;
             } else if (cur == '+') {
-        holdbuffer[bufcount++] = (byte) ' ';
-        } else {
-            holdbuffer[bufcount++] = (byte) cur;
+                holdbuffer[bufcount++] = (byte) ' ';
+            } else {
+                holdbuffer[bufcount++] = (byte) cur;
             }
         }
-	// REVISIT -- remedy for Deprecated warning.
-    //return new String(holdbuffer,0,0,bufcount);
-    return new String(holdbuffer,0,bufcount);
+        // REVISIT -- remedy for Deprecated warning.
+        //return new String(holdbuffer,0,0,bufcount);
+        return new String(holdbuffer, 0, bufcount);
     }
 
     // __begin lookupReadMethodMethod
     public static Object handleGetProperty(Object o, String prop)
-    throws JasperException {
+            throws JasperException {
         if (o == null) {
-	    throw new JasperException(
-	            Localizer.getMessage("jsp.error.beans.nullbean"));
+            throw new JasperException(
+                    Localizer.getMessage("jsp.error.beans.nullbean"));
         }
-	Object value = null;
+        Object value = null;
         try {
             Method method = getReadMethod(o.getClass(), prop);
-	    value = method.invoke(o, (Object[]) null);
+            value = method.invoke(o, (Object[]) null);
         } catch (Exception ex) {
-	    throw new JasperException (ex);
+            throw new JasperException(ex);
         }
         return value;
     }
     // __end lookupReadMethodMethod
 
     // handles <jsp:setProperty> with EL expression for 'value' attribute
-/** Use proprietaryEvaluate
-    public static void handleSetPropertyExpression(Object bean,
-        String prop, String expression, PageContext pageContext,
-        VariableResolver variableResolver, FunctionMapper functionMapper )
-	throws JasperException
-    {
-	try {
-            Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { 
-		pageContext.getExpressionEvaluator().evaluate(
-		    expression,
-		    method.getParameterTypes()[0],
-                    variableResolver,
-                    functionMapper,
-                    null )
-	    });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}
-    }
-**/
+
+    /**
+     * Use proprietaryEvaluate
+     *
+     * <pre>
+     * public static void handleSetPropertyExpression(Object bean,
+     * String prop, String expression, PageContext pageContext,
+     * VariableResolver variableResolver, FunctionMapper functionMapper )
+     * throws JasperException
+     * {
+     * try {
+     * Method method = getWriteMethod(bean.getClass(), prop);
+     * method.invoke(bean, new Object[] {
+     * pageContext.getExpressionEvaluator().evaluate(
+     * expression,
+     * method.getParameterTypes()[0],
+     * variableResolver,
+     * functionMapper,
+     * null )
+     * });
+     * } catch (Exception ex) {
+     * throw new JasperException(ex);
+     * }
+     * }
+     * </pre>
+     *
+     * @param bean bean
+     * @param prop property
+     * @param expression expression
+     * @param pageContext page context
+     * @param functionMapper function mapper
+     *
+     * @throws JasperException in case of Jasper errors
+     */
     public static void handleSetPropertyExpression(Object bean,
-        String prop, String expression, PageContext pageContext,
-	ProtectedFunctionMapper functionMapper )
-        throws JasperException
-    {
+                                                   String prop, String expression, PageContext pageContext,
+                                                   ProtectedFunctionMapper functionMapper)
+            throws JasperException {
         try {
             Method method = getWriteMethod(bean.getClass(), prop);
-            method.invoke(bean, new Object[] {
-                PageContextImpl.proprietaryEvaluate(
-                    expression,
-                    method.getParameterTypes()[0],
-		    pageContext,
-                    functionMapper,
-                    false )
+            method.invoke(bean, new Object[]{
+                    PageContextImpl.proprietaryEvaluate(
+                            expression,
+                            method.getParameterTypes()[0],
+                            pageContext,
+                            functionMapper,
+                            false)
             });
         } catch (Exception ex) {
             throw new JasperException(ex);
@@ -657,238 +679,227 @@ public class JspRuntimeLibrary {
     }
 
     public static void handleSetProperty(Object bean, String prop,
-					 Object value)
-	throws JasperException
-    {
-	try {
+                                         Object value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { value });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}
+            method.invoke(bean, new Object[]{value});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 int value)
-	throws JasperException
-    {
-	try {
+                                         int value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Integer(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Integer(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 short value)
-	throws JasperException
-    {
-	try {
+                                         short value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Short(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Short(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 long value)
-	throws JasperException
-    {
-	try {
+                                         long value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Long(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
-    } 
-    
+            method.invoke(bean, new Object[]{new Long(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
+    }
+
     public static void handleSetProperty(Object bean, String prop,
-					 double value)
-	throws JasperException
-    {
-	try {
+                                         double value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Double(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Double(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 float value)
-	throws JasperException
-    {
-	try {
+                                         float value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Float(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Float(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 char value)
-	throws JasperException
-    {
-	try {
+                                         char value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Character(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Character(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
 
     public static void handleSetProperty(Object bean, String prop,
-					 byte value)
-	throws JasperException
-    {
-	try {
+                                         byte value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Byte(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Byte(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static void handleSetProperty(Object bean, String prop,
-					 boolean value)
-	throws JasperException
-    {
-	try {
+                                         boolean value)
+            throws JasperException {
+        try {
             Method method = getWriteMethod(bean.getClass(), prop);
-	    method.invoke(bean, new Object[] { new Boolean(value) });
-	} catch (Exception ex) {
-	    throw new JasperException(ex);
-	}	
+            method.invoke(bean, new Object[]{new Boolean(value)});
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
     }
-    
+
     public static Method getWriteMethod(Class beanClass, String prop)
-    throws JasperException {
-	Method method = null;	
+            throws JasperException {
+        Method method = null;
         Class type = null;
-	try {
-	    java.beans.BeanInfo info
-                = java.beans.Introspector.getBeanInfo(beanClass);
-	    if ( info != null ) {
-		java.beans.PropertyDescriptor pd[]
-		    = info.getPropertyDescriptors();
-		for (int i = 0 ; i < pd.length ; i++) {
-		    if ( pd[i].getName().equals(prop) ) {
-			method = pd[i].getWriteMethod();
-			type   = pd[i].getPropertyType();
-			break;
-		    }
-		}
-            } else {        
+        try {
+            java.beans.BeanInfo info
+                    = java.beans.Introspector.getBeanInfo(beanClass);
+            if (info != null) {
+                java.beans.PropertyDescriptor pd[]
+                        = info.getPropertyDescriptors();
+                for (int i = 0; i < pd.length; i++) {
+                    if (pd[i].getName().equals(prop)) {
+                        method = pd[i].getWriteMethod();
+                        type = pd[i].getPropertyType();
+                        break;
+                    }
+                }
+            } else {
                 // just in case introspection silently fails.
                 throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nobeaninfo",
-					 beanClass.getName()));
+                        Localizer.getMessage("jsp.error.beans.nobeaninfo",
+                                beanClass.getName()));
             }
         } catch (Exception ex) {
-            throw new JasperException (ex);
+            throw new JasperException(ex);
         }
         if (method == null) {
             if (type == null) {
-		throw new JasperException(
+                throw new JasperException(
                         Localizer.getMessage("jsp.error.beans.noproperty",
-					     prop,
-					     beanClass.getName()));
+                                prop,
+                                beanClass.getName()));
             } else {
-		throw new JasperException(
-		    Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
-					 prop,
-					 type.getName(),
-					 beanClass.getName()));
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
+                                prop,
+                                type.getName(),
+                                beanClass.getName()));
             }
         }
         return method;
     }
 
     public static Method getReadMethod(Class beanClass, String prop)
-	    throws JasperException {
+            throws JasperException {
 
-        Method method = null;        
+        Method method = null;
         Class type = null;
         try {
             java.beans.BeanInfo info
-                = java.beans.Introspector.getBeanInfo(beanClass);
-            if ( info != null ) {
+                    = java.beans.Introspector.getBeanInfo(beanClass);
+            if (info != null) {
                 java.beans.PropertyDescriptor pd[]
-                    = info.getPropertyDescriptors();
-                for (int i = 0 ; i < pd.length ; i++) {
-                    if ( pd[i].getName().equals(prop) ) {
+                        = info.getPropertyDescriptors();
+                for (int i = 0; i < pd.length; i++) {
+                    if (pd[i].getName().equals(prop)) {
                         method = pd[i].getReadMethod();
-                        type   = pd[i].getPropertyType();
+                        type = pd[i].getPropertyType();
                         break;
                     }
                 }
-            } else {        
+            } else {
                 // just in case introspection silently fails.
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nobeaninfo",
-					 beanClass.getName()));
-	    }
-	} catch (Exception ex) {
-	    throw new JasperException (ex);
-	}
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.nobeaninfo",
+                                beanClass.getName()));
+            }
+        } catch (Exception ex) {
+            throw new JasperException(ex);
+        }
         if (method == null) {
             if (type == null) {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.noproperty", prop,
-					 beanClass.getName()));
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.noproperty", prop,
+                                beanClass.getName()));
             } else {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nomethod", prop,
-					 beanClass.getName()));
+                throw new JasperException(
+                        Localizer.getMessage("jsp.error.beans.nomethod", prop,
+                                beanClass.getName()));
             }
         }
 
-	return method;
+        return method;
     }
 
     //*********************************************************************
     // PropertyEditor Support
 
     public static Object getValueFromBeanInfoPropertyEditor(
-		           Class attrClass, String attrName, String attrValue,
-			   Class propertyEditorClass) 
-	throws JasperException 
-    {
-	try {
-	    PropertyEditor pe = (PropertyEditor)propertyEditorClass.newInstance();
-	    pe.setAsText(attrValue);
-	    return pe.getValue();
-	} catch (Exception ex) {
-	    throw new JasperException(
-                Localizer.getMessage("jsp.error.beans.property.conversion",
-				     attrValue, attrClass.getName(), attrName,
-				     ex.getMessage()));
-	}
+            Class attrClass, String attrName, String attrValue,
+            Class propertyEditorClass)
+            throws JasperException {
+        try {
+            PropertyEditor pe = (PropertyEditor) propertyEditorClass.newInstance();
+            pe.setAsText(attrValue);
+            return pe.getValue();
+        } catch (Exception ex) {
+            throw new JasperException(
+                    Localizer.getMessage("jsp.error.beans.property.conversion",
+                            attrValue, attrClass.getName(), attrName,
+                            ex.getMessage()));
+        }
     }
 
     public static Object getValueFromPropertyEditorManager(
-	             Class attrClass, String attrName, String attrValue) 
-	throws JasperException 
-    {
-	try {
-	    PropertyEditor propEditor = 
-		PropertyEditorManager.findEditor(attrClass);
-	    if (propEditor != null) {
-		propEditor.setAsText(attrValue);
-		return propEditor.getValue();
-	    } else {
-		throw new IllegalArgumentException(
-                    Localizer.getMessage("jsp.error.beans.propertyeditor.notregistered"));
-	    }
-	} catch (IllegalArgumentException ex) {
-	    throw new JasperException(
-                Localizer.getMessage("jsp.error.beans.property.conversion",
-				     attrValue, attrClass.getName(), attrName,
-				     ex.getMessage()));
-	}
+            Class attrClass, String attrName, String attrValue)
+            throws JasperException {
+        try {
+            PropertyEditor propEditor =
+                    PropertyEditorManager.findEditor(attrClass);
+            if (propEditor != null) {
+                propEditor.setAsText(attrValue);
+                return propEditor.getValue();
+            } else {
+                throw new IllegalArgumentException(
+                        Localizer.getMessage("jsp.error.beans.propertyeditor.notregistered"));
+            }
+        } catch (IllegalArgumentException ex) {
+            throw new JasperException(
+                    Localizer.getMessage("jsp.error.beans.property.conversion",
+                            attrValue, attrClass.getName(), attrName,
+                            ex.getMessage()));
+        }
     }
 
 
@@ -901,8 +912,9 @@ public class JspRuntimeLibrary {
      * Convert a possibly relative resource path into a context-relative
      * resource path that starts with a '/'.
      *
-     * @param request The servlet request we are processing
+     * @param request      The servlet request we are processing
      * @param relativePath The possibly relative resource path
+     * @return context-relative resource path
      */
     public static String getContextRelativePath(ServletRequest request,
                                                 String relativePath) {
@@ -935,21 +947,20 @@ public class JspRuntimeLibrary {
      * Perform a RequestDispatcher.include() operation, with optional flushing
      * of the response beforehand.
      *
-     * @param request The servlet request we are processing
-     * @param response The servlet response we are processing
+     * @param request      The servlet request we are processing
+     * @param response     The servlet response we are processing
      * @param relativePath The relative path of the resource to be included
-     * @param out The Writer to whom we are currently writing
-     * @param flush Should we flush before the include is processed?
-     *
-     * @exception IOException if thrown by the included servlet
-     * @exception ServletException if thrown by the included servlet
+     * @param out          The Writer to whom we are currently writing
+     * @param flush        Should we flush before the include is processed?
+     * @throws IOException      if thrown by the included servlet
+     * @throws ServletException if thrown by the included servlet
      */
     public static void include(ServletRequest request,
                                ServletResponse response,
                                String relativePath,
                                JspWriter out,
                                boolean flush)
-        throws IOException, ServletException {
+            throws IOException, ServletException {
 
         if (flush && !(out instanceof BodyContent))
             out.flush();
@@ -965,7 +976,7 @@ public class JspRuntimeLibrary {
         RequestDispatcher rd = request.getRequestDispatcher(resourcePath);
 
         rd.include(request,
-                   new ServletResponseWrapperInclude(response, out));
+                new ServletResponseWrapperInclude(response, out));
 
     }
 
@@ -974,73 +985,74 @@ public class JspRuntimeLibrary {
      * This performs the same function as java.next.URLEncode.encode
      * in J2SDK1.4, and should be removed if the only platform supported
      * is 1.4 or higher.
-     * @param s The String to be URL encoded.
-     * @param enc The character encoding 
+     *
+     * @param s   The String to be URL encoded.
+     * @param enc The character encoding
      * @return The URL encoded String
      */
     public static String URLEncode(String s, String enc) {
 
-	if (s == null) {
-	    return "null";
-	}
-
-	if (enc == null) {
-	    enc = "ISO-8859-1";	// The default request encoding 
-	}
-
-	StringBuffer out = new StringBuffer(s.length());
-	ByteArrayOutputStream buf = new ByteArrayOutputStream();
-	OutputStreamWriter writer = null;
-	try {
-	    writer = new OutputStreamWriter(buf, enc);
-	} catch (java.io.UnsupportedEncodingException ex) {
-	    // Use the default encoding?
-	    writer = new OutputStreamWriter(buf);
-	}
-	
-	for (int i = 0; i < s.length(); i++) {
-	    int c = s.charAt(i);
-	    if (c == ' ') {
-		out.append('+');
-	    } else if (isSafeChar(c)) {
-		out.append((char)c);
-	    } else {
-		// convert to external encoding before hex conversion
-		try {
-		    writer.write(c);
-		    writer.flush();
-		} catch(IOException e) {
-		    buf.reset();
-		    continue;
-		}
-		byte[] ba = buf.toByteArray();
-		for (int j = 0; j < ba.length; j++) {
-		    out.append('%');
-		    // Converting each byte in the buffer
-		    out.append(Character.forDigit((ba[j]>>4) & 0xf, 16));
-		    out.append(Character.forDigit(ba[j] & 0xf, 16));
-		}
-		buf.reset();
-	    }
-	}
-	return out.toString();
+        if (s == null) {
+            return "null";
+        }
+
+        if (enc == null) {
+            enc = "ISO-8859-1";    // The default request encoding
+        }
+
+        StringBuffer out = new StringBuffer(s.length());
+        ByteArrayOutputStream buf = new ByteArrayOutputStream();
+        OutputStreamWriter writer = null;
+        try {
+            writer = new OutputStreamWriter(buf, enc);
+        } catch (java.io.UnsupportedEncodingException ex) {
+            // Use the default encoding?
+            writer = new OutputStreamWriter(buf);
+        }
+
+        for (int i = 0; i < s.length(); i++) {
+            int c = s.charAt(i);
+            if (c == ' ') {
+                out.append('+');
+            } else if (isSafeChar(c)) {
+                out.append((char) c);
+            } else {
+                // convert to external encoding before hex conversion
+                try {
+                    writer.write(c);
+                    writer.flush();
+                } catch (IOException e) {
+                    buf.reset();
+                    continue;
+                }
+                byte[] ba = buf.toByteArray();
+                for (int j = 0; j < ba.length; j++) {
+                    out.append('%');
+                    // Converting each byte in the buffer
+                    out.append(Character.forDigit((ba[j] >> 4) & 0xf, 16));
+                    out.append(Character.forDigit(ba[j] & 0xf, 16));
+                }
+                buf.reset();
+            }
+        }
+        return out.toString();
     }
 
     private static boolean isSafeChar(int c) {
-	if (c >= 'a' && c <= 'z') {
-	    return true;
-	}
-	if (c >= 'A' && c <= 'Z') {
-	    return true;
-	}
-	if (c >= '0' && c <= '9') {
-	    return true;
-	}
-	if (c == '-' || c == '_' || c == '.' || c == '!' ||
-	    c == '~' || c == '*' || c == '\'' || c == '(' || c == ')') {
-	    return true;
-	}
-	return false;
+        if (c >= 'a' && c <= 'z') {
+            return true;
+        }
+        if (c >= 'A' && c <= 'Z') {
+            return true;
+        }
+        if (c >= '0' && c <= '9') {
+            return true;
+        }
+        if (c == '-' || c == '_' || c == '.' || c == '!' ||
+                c == '~' || c == '*' || c == '\'' || c == '(' || c == ')') {
+            return true;
+        }
+        return false;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspSourceDependent.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspSourceDependent.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspSourceDependent.java
index ae273a0..ed9abfc 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspSourceDependent.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspSourceDependent.java
@@ -29,7 +29,7 @@ package org.apache.struts2.jasper.runtime;
 public interface JspSourceDependent {
 
    /**
-    * Returns a list of files names that the current page has a source
+    * @return a list of files names that the current page has a source
     * dependency on.
     */
     // FIXME: Type used is Object due to very weird behavior 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspWriterImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspWriterImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspWriterImpl.java
index f1bb279..143ed2f 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspWriterImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/JspWriterImpl.java
@@ -71,8 +71,9 @@ public class JspWriterImpl extends JspWriter {
      *
      * @param  response A Servlet Response
      * @param  sz   	Output-buffer size, a positive integer
+     * @param autoFlush enable auto flush
      *
-     * @exception  IllegalArgumentException  If sz is <= 0
+     * @exception  IllegalArgumentException  If sz is &lt;= 0
      */
     public JspWriterImpl(ServletResponse response, int sz, 
             boolean autoFlush) {
@@ -107,6 +108,8 @@ public class JspWriterImpl extends JspWriter {
      * Flush the output buffer to the underlying character stream, without
      * flushing the stream itself.  This method is non-private only so that it
      * may be invoked by PrintStream.
+     *
+     * @throws IOException in case of IO errors
      */
     protected final void flushBuffer() throws IOException {
         if (bufferSize == 0)
@@ -168,6 +171,7 @@ public class JspWriterImpl extends JspWriter {
     /**
      * Flush the stream.
      *
+     * @throws IOException in case of IO errors
      */
     public void flush()  throws IOException {
         flushBuffer();
@@ -179,6 +183,7 @@ public class JspWriterImpl extends JspWriter {
     /**
      * Close the stream.
      *
+     * @throws IOException in case of IO errors
      */
     public void close() throws IOException {
         if (response == null || closed)
@@ -198,7 +203,10 @@ public class JspWriterImpl extends JspWriter {
         return bufferSize - nextChar;
     }
     
-    /** check to make sure that the stream has not been closed */
+    /** check to make sure that the stream has not been closed
+     *
+     * @throws IOException in case of IO errors
+     */
     private void ensureOpen() throws IOException {
         if (response == null || closed)
             throw new IOException("Stream closed");
@@ -207,6 +215,7 @@ public class JspWriterImpl extends JspWriter {
     
     /**
      * Write a single character.
+     * @throws IOException in case of IO errors
      */
     public void write(int c) throws IOException {
         ensureOpen();
@@ -246,6 +255,8 @@ public class JspWriterImpl extends JspWriter {
      * @param  cbuf  A character array
      * @param  off   Offset from which to start reading characters
      * @param  len   Number of characters to write
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(char cbuf[], int off, int len) 
     throws IOException 
@@ -296,6 +307,7 @@ public class JspWriterImpl extends JspWriter {
     /**
      * Write an array of characters.  This method cannot be inherited from the
      * Writer class because it must suppress I/O exceptions.
+     * @throws IOException in case of IO errors
      */
     public void write(char buf[]) throws IOException {
         write(buf, 0, buf.length);
@@ -307,6 +319,8 @@ public class JspWriterImpl extends JspWriter {
      * @param  s     String to be written
      * @param  off   Offset from which to start reading characters
      * @param  len   Number of characters to be written
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(String s, int off, int len) throws IOException {
         ensureOpen();
@@ -332,6 +346,8 @@ public class JspWriterImpl extends JspWriter {
     /**
      * Write a string.  This method cannot be inherited from the Writer class
      * because it must suppress I/O exceptions.
+     *
+     * @throws IOException in case of IO errors
      */
     public void write(String s) throws IOException {
         // Simple fix for Bugzilla 35410
@@ -351,7 +367,7 @@ public class JspWriterImpl extends JspWriter {
      * system property <tt>line.separator</tt>, and is not necessarily a single
      * newline ('\n') character.
      *
-     * @exception  IOException  If an I/O error occurs
+     * @throws IOException in case of IO errors
      */
     
     public void newLine() throws IOException {
@@ -369,6 +385,8 @@ public class JspWriterImpl extends JspWriter {
      * #write(int)}</code> method.
      *
      * @param      b   The <code>boolean</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(boolean b) throws IOException {
         write(b ? "true" : "false");
@@ -381,6 +399,8 @@ public class JspWriterImpl extends JspWriter {
      * #write(int)}</code> method.
      *
      * @param      c   The <code>char</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(char c) throws IOException {
         write(String.valueOf(c));
@@ -394,6 +414,8 @@ public class JspWriterImpl extends JspWriter {
      * method.
      *
      * @param      i   The <code>int</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(int i) throws IOException {
         write(String.valueOf(i));
@@ -407,6 +429,8 @@ public class JspWriterImpl extends JspWriter {
      * method.
      *
      * @param      l   The <code>long</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(long l) throws IOException {
         write(String.valueOf(l));
@@ -420,6 +444,8 @@ public class JspWriterImpl extends JspWriter {
      * method.
      *
      * @param      f   The <code>float</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(float f) throws IOException {
         write(String.valueOf(f));
@@ -433,6 +459,8 @@ public class JspWriterImpl extends JspWriter {
      * #write(int)}</code> method.
      *
      * @param      d   The <code>double</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(double d) throws IOException {
         write(String.valueOf(d));
@@ -447,6 +475,7 @@ public class JspWriterImpl extends JspWriter {
      * @param      s   The array of chars to be printed
      *
      * @throws  NullPointerException  If <code>s</code> is <code>null</code>
+     * @throws IOException in case of IO errors
      */
     public void print(char s[]) throws IOException {
         write(s);
@@ -460,6 +489,8 @@ public class JspWriterImpl extends JspWriter {
      * <code>{@link #write(int)}</code> method.
      *
      * @param      s   The <code>String</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(String s) throws IOException {
         if (s == null) {
@@ -476,6 +507,8 @@ public class JspWriterImpl extends JspWriter {
      * method.
      *
      * @param      obj   The <code>Object</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void print(Object obj) throws IOException {
         write(String.valueOf(obj));
@@ -491,7 +524,9 @@ public class JspWriterImpl extends JspWriter {
      *
      * Need to change this from PrintWriter because the default
      * println() writes  to the sink directly instead of through the
-     * write method...  
+     * write method...
+     *
+     * @throws IOException in case of IO errors
      */
     public void println() throws IOException {
         newLine();
@@ -501,6 +536,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a boolean value and then terminate the line.  This method behaves
      * as though it invokes <code>{@link #print(boolean)}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>boolean</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(boolean x) throws IOException {
         print(x);
@@ -511,6 +550,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a character and then terminate the line.  This method behaves as
      * though it invokes <code>{@link #print(char)}</code> and then <code>{@link
      * #println()}</code>.
+     *
+     * @param      x   The <code>char</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(char x) throws IOException {
         print(x);
@@ -521,6 +564,10 @@ public class JspWriterImpl extends JspWriter {
      * Print an integer and then terminate the line.  This method behaves as
      * though it invokes <code>{@link #print(int)}</code> and then <code>{@link
      * #println()}</code>.
+     *
+     * @param      x   The <code>int</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(int x) throws IOException {
         print(x);
@@ -531,6 +578,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a long integer and then terminate the line.  This method behaves
      * as though it invokes <code>{@link #print(long)}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>long</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(long x) throws IOException {
         print(x);
@@ -541,6 +592,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a floating-point number and then terminate the line.  This method
      * behaves as though it invokes <code>{@link #print(float)}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>float</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(float x) throws IOException {
         print(x);
@@ -551,6 +606,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a double-precision floating-point number and then terminate the
      * line.  This method behaves as though it invokes <code>{@link
      * #print(double)}</code> and then <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>double</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(double x) throws IOException {
         print(x);
@@ -561,6 +620,10 @@ public class JspWriterImpl extends JspWriter {
      * Print an array of characters and then terminate the line.  This method
      * behaves as though it invokes <code>{@link #print(char[])}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>char[]</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(char x[]) throws IOException {
         print(x);
@@ -571,6 +634,10 @@ public class JspWriterImpl extends JspWriter {
      * Print a String and then terminate the line.  This method behaves as
      * though it invokes <code>{@link #print(String)}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>String</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(String x) throws IOException {
         print(x);
@@ -581,6 +648,10 @@ public class JspWriterImpl extends JspWriter {
      * Print an Object and then terminate the line.  This method behaves as
      * though it invokes <code>{@link #print(Object)}</code> and then
      * <code>{@link #println()}</code>.
+     *
+     * @param      x   The <code>Object</code> to be printed
+     *
+     * @throws IOException in case of IO errors
      */
     public void println(Object x) throws IOException {
         print(x);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/PageContextImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/PageContextImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/PageContextImpl.java
index 4fbccad..0d4d4f0 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/PageContextImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/PageContextImpl.java
@@ -900,7 +900,12 @@ public class PageContextImpl extends PageContext {
 	 *            The page context
 	 * @param functionMap
 	 *            Maps prefix and name to Method
+	 * @param escape
+	 *            enable escaping
+	 *
 	 * @return The result of the evaluation
+     *
+     * @throws ELException in case of errors
 	 */
 	public static Object proprietaryEvaluate(final String expression,
 			final Class expectedType, final PageContext pageContext,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/ProtectedFunctionMapper.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/ProtectedFunctionMapper.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/ProtectedFunctionMapper.java
index e585444..14539c1 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/ProtectedFunctionMapper.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/runtime/ProtectedFunctionMapper.java
@@ -135,6 +135,9 @@ public final class ProtectedFunctionMapper extends javax.el.FunctionMapper
      *            The name of the Java method
      * @param args
      *            The arguments of the Java method
+     *
+     * @return function mapper
+     *
      * @throws RuntimeException
      *             if no method with the given signature could be found.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/security/SecurityUtil.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/security/SecurityUtil.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/security/SecurityUtil.java
index 6ecdb3d..25b06c4 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/security/SecurityUtil.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/security/SecurityUtil.java
@@ -30,7 +30,7 @@ public final class SecurityUtil{
          System.getProperty("package.definition") == null ? false : true;
     
     /**
-     * Return the <code>SecurityManager</code> only if Security is enabled AND
+     * @return  the <code>SecurityManager</code> only if Security is enabled AND
      * package protection mechanism is enabled.
      */
     public static boolean isPackageProtectionEnabled(){
@@ -47,6 +47,7 @@ public final class SecurityUtil{
      * codes in the request URL that is often reported in error messages.
      *
      * @param message The message string to be filtered
+     * @return filtered message
      */
     public static String filter(String message) {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/servlet/JspCServletContext.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/servlet/JspCServletContext.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/servlet/JspCServletContext.java
index 60646ba..219c759 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/servlet/JspCServletContext.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/servlet/JspCServletContext.java
@@ -78,7 +78,7 @@ public class JspCServletContext implements ServletContext {
      * Create a new instance of this ServletContext implementation.
      *
      * @param aLogWriter PrintWriter which is used for <code>log()</code> calls
-     * @param aResourceBaseURL Resource base URL
+     * @param classLoaderInterface classloader interface
      */
     public JspCServletContext(PrintWriter aLogWriter, ClassLoaderInterface classLoaderInterface) {
 
@@ -92,7 +92,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the specified context attribute, if any.
+     * @return  the specified context attribute, if any.
      *
      * @param name Name of the requested attribute
      */
@@ -104,7 +104,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return an enumeration of context attribute names.
+     * @return  an enumeration of context attribute names.
      */
     public Enumeration getAttributeNames() {
 
@@ -114,7 +114,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the servlet context for the specified path.
+     * @return  the servlet context for the specified path.
      *
      * @param uripath Server-relative path starting with '/'
      */
@@ -126,7 +126,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the context path.
+     * @return  the context path.
      */
     public String getContextPath() {
 
@@ -136,7 +136,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the specified context initialization parameter.
+     * @return  the specified context initialization parameter.
      *
      * @param name Name of the requested parameter
      */
@@ -148,7 +148,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return an enumeration of the names of context initialization
+     * @return  an enumeration of the names of context initialization
      * parameters.
      */
     public Enumeration getInitParameterNames() {
@@ -159,7 +159,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the Servlet API major version number.
+     * @return  the Servlet API major version number.
      */
     public int getMajorVersion() {
 
@@ -169,7 +169,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the MIME type for the specified filename.
+     * @return  the MIME type for the specified filename.
      *
      * @param file Filename whose MIME type is requested
      */
@@ -181,7 +181,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the Servlet API minor version number.
+     * @return  the Servlet API minor version number.
      */
     public int getMinorVersion() {
 
@@ -191,7 +191,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return a request dispatcher for the specified servlet name.
+     * @return  a request dispatcher for the specified servlet name.
      *
      * @param name Name of the requested servlet
      */
@@ -203,7 +203,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the real path for the specified context-relative
+     * @return  the real path for the specified context-relative
      * virtual path.
      *
      * @param path The context-relative virtual path to resolve
@@ -219,7 +219,7 @@ public class JspCServletContext implements ServletContext {
             
             
     /**
-     * Return a request dispatcher for the specified context-relative path.
+     * @return  a request dispatcher for the specified context-relative path.
      *
      * @param path Context-relative path for which to acquire a dispatcher
      */
@@ -231,7 +231,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return a URL object of a resource that is mapped to the
+     * @return  a URL object of a resource that is mapped to the
      * specified context-relative path.
      *
      * @param path Context-relative path of the desired resource
@@ -253,7 +253,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return an InputStream allowing access to the resource at the
+     * @return  an InputStream allowing access to the resource at the
      * specified context-relative path.
      *
      * @param path Context-relative path of the desired resource
@@ -268,7 +268,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the set of resource paths for the "directory" at the
+     * @return  the set of resource paths for the "directory" at the
      * specified context path.
      *
      * @param path Context-relative base path
@@ -298,7 +298,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return descriptive information about this server.
+     * @return  descriptive information about this server.
      */
     public String getServerInfo() {
 
@@ -308,7 +308,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return a null reference for the specified servlet name.
+     * @return  a null reference for the specified servlet name.
      *
      * @param name Name of the requested servlet
      *
@@ -322,7 +322,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return the name of this servlet context.
+     * @return  the name of this servlet context.
      */
     public String getServletContextName() {
 
@@ -332,7 +332,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return an empty enumeration of servlet names.
+     * @return  an empty enumeration of servlet names.
      *
      * @deprecated This method has been deprecated with no replacement
      */
@@ -344,7 +344,7 @@ public class JspCServletContext implements ServletContext {
 
 
     /**
-     * Return an empty enumeration of servlets.
+     * @return  an empty enumeration of servlets.
      *
      * @deprecated This method has been deprecated with no replacement
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/tagplugins/jstl/Util.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/tagplugins/jstl/Util.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/tagplugins/jstl/Util.java
index 869e359..ec4503f 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/tagplugins/jstl/Util.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/tagplugins/jstl/Util.java
@@ -88,7 +88,9 @@ public class Util {
     }
     
     /**
-     * Returns <tt>true</tt> if our current URL is absolute,
+     * @param url the URL
+     *
+     * @return  <tt>true</tt> if our current URL is absolute,
      * <tt>false</tt> otherwise.
      * taken from org.apache.taglibs.standard.tag.common.core.ImportSupport
      */
@@ -112,7 +114,11 @@ public class Util {
     }
     
     /**
-     * Get the value associated with a content-type attribute.
+     *
+     * @param input input string
+     * @param name name of attribute
+     *
+     * @return the value associated with a content-type attribute.
      * Syntax defined in RFC 2045, section 5.1.
      * taken from org.apache.taglibs.standard.tag.common.core.Util
      */
@@ -148,6 +154,9 @@ public class Util {
      * and either EOS or a subsequent ';' (exclusive).
      * 
      * taken from org.apache.taglibs.standard.tag.common.core.ImportSupport
+     *
+     * @param url the URL
+     * @return servlet session ID from URL
      */
     public static String stripSession(String url) {
         StringBuffer u = new StringBuffer(url);
@@ -165,18 +174,25 @@ public class Util {
     
     
     /**
+     * <p>
      * Performs the following substring replacements
      * (to facilitate output to XML/HTML pages):
+     * </p>
      *
-     *    & -> &amp;
-     *    < -> &lt;
-     *    > -> &gt;
-     *    " -> &#034;
-     *    ' -> &#039;
+     * <pre>
+     *    &amp; -&gt; &amp;amp;
+     *    &lt; -&gt; &amp;lt;
+     *    &gt; -&gt; &amp;gt;
+     *    " -&gt; &amp;#034;
+     *    ' -&gt; &amp;#039;
+     * </pre>
      *
      * See also OutSupport.writeEscapedXml().
      * 
      * taken from org.apache.taglibs.standard.tag.common.core.Util
+     *
+     * @param buffer string
+     * @return escaped string
      */
     public static String escapeXml(String buffer) {
         int start = 0;
@@ -214,8 +230,16 @@ public class Util {
         return escapedBuffer.toString();
     }
     
-    /** Utility methods
+    /**
+     * Utility methods
      * taken from org.apache.taglibs.standard.tag.common.core.UrlSupport
+     *
+     * @param url URL
+     * @param context context
+     * @param pageContext page context
+     *
+     * @return the URL
+     * @throws JspException in case of errors
      */
     public static String resolveUrl(
             String url, String context, PageContext pageContext)
@@ -271,27 +295,35 @@ public class Util {
         }
         
         public PrintWriter getWriter() {
-            if (isStreamUsed)
-                throw new IllegalStateException("Unexpected internal error during &lt;import&gt: " +
-                "Target servlet called getWriter(), then getOutputStream()");
+            if (isStreamUsed) {
+                throw new IllegalStateException("Unexpected internal error during &lt;import&gt: Target servlet called getWriter(), then getOutputStream()");
+            }
             isWriterUsed = true;
             return new PrintWriter(sw);
         }
         
         public ServletOutputStream getOutputStream() {
-            if (isWriterUsed)
-                throw new IllegalStateException("Unexpected internal error during &lt;import&gt: " +
-                "Target servlet called getOutputStream(), then getWriter()");
+            if (isWriterUsed) {
+                throw new IllegalStateException("Unexpected internal error during &lt;import&gt: Target servlet called getOutputStream(), then getWriter()");
+            }
             isStreamUsed = true;
             return sos;
         }
         
-        /** Has no effect. */
+        /**
+         * Has no effect.
+         *
+         * @param x content type
+         */
         public void setContentType(String x) {
             // ignore
         }
         
-        /** Has no effect. */
+        /**
+         * Has no effect.
+         *
+         * @param x locale
+         */
         public void setLocale(Locale x) {
             // ignore
         }


[06/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorDispatcher.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorDispatcher.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorDispatcher.java
index 4e00266..6457904 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorDispatcher.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorDispatcher.java
@@ -16,26 +16,32 @@
  */
 package org.apache.struts2.jasper.compiler;
 
+import org.apache.struts2.jasper.JasperException;
+import org.apache.struts2.jasper.JspCompilationContext;
+import org.xml.sax.SAXException;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.StringReader;
 import java.net.MalformedURLException;
 import java.util.ArrayList;
 
-import org.apache.struts2.jasper.JasperException;
-import org.apache.struts2.jasper.JspCompilationContext;
-import org.xml.sax.SAXException;
-
 /**
+ * <p>
  * Class responsible for dispatching JSP parse and javac compilation errors
  * to the configured error handler.
+ * </p>
  *
+ * <p>
  * This class is also responsible for localizing any error codes before they
  * are passed on to the configured error handler.
- * 
+ * </p>
+ *
+ * <p>
  * In the case of a Java compilation error, the compiler error message is
- * parsed into an array of JavacErrorDetail instances, which is passed on to 
+ * parsed into an array of JavacErrorDetail instances, which is passed on to
  * the configured error handler.
+ * </p>
  *
  * @author Jan Luehe
  * @author Kin-man Chung
@@ -49,280 +55,354 @@ public class ErrorDispatcher {
     private boolean jspcMode = false;
 
 
-    /*
+    /**
      * Constructor.
      *
-     * @param jspcMode true if compilation has been initiated by JspC, false
-     * otherwise
+     * @param jspcMode true if compilation has been initiated by JspC, false otherwise
      */
     public ErrorDispatcher(boolean jspcMode) {
-	// XXX check web.xml for custom error handler
-	errHandler = new DefaultErrorHandler();
+        // XXX check web.xml for custom error handler
+        errHandler = new DefaultErrorHandler();
         this.jspcMode = jspcMode;
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
      * @param errCode Error code
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(String errCode) throws JasperException {
-	dispatch(null, errCode, null, null);
+        dispatch(null, errCode, null, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
-     *
-     * @param where Error location
+     * </p>
+     * @param where   Error location
      * @param errCode Error code
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Mark where, String errCode) throws JasperException {
-	dispatch(where, errCode, null, null);
+        dispatch(where, errCode, null, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param n Node that caused the error
+     * @param n       Node that caused the error
      * @param errCode Error code
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Node n, String errCode) throws JasperException {
-	dispatch(n.getStart(), errCode, null, null);
+        dispatch(n.getStart(), errCode, null, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
      * @param errCode Error code
-     * @param arg Argument for parametric replacement
+     * @param arg     Argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(String errCode, String arg) throws JasperException {
-	dispatch(null, errCode, new Object[] {arg}, null);
+        dispatch(null, errCode, new Object[]{arg}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param where Error location
+     * @param where   Error location
      * @param errCode Error code
-     * @param arg Argument for parametric replacement
+     * @param arg     Argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Mark where, String errCode, String arg)
-	        throws JasperException {
-	dispatch(where, errCode, new Object[] {arg}, null);
+            throws JasperException {
+        dispatch(where, errCode, new Object[]{arg}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param n Node that caused the error
+     * @param n       Node that caused the error
      * @param errCode Error code
-     * @param arg Argument for parametric replacement
+     * @param arg     Argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Node n, String errCode, String arg)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg}, null);
+            throws JasperException {
+        dispatch(n.getStart(), errCode, new Object[]{arg}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(String errCode, String arg1, String arg2)
-	        throws JasperException {
-	dispatch(null, errCode, new Object[] {arg1, arg2}, null);
+            throws JasperException {
+        dispatch(null, errCode, new Object[]{arg1, arg2}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     * @param arg3 Third argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @param arg3    Third argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(String errCode, String arg1, String arg2, String arg3)
-	        throws JasperException {
-	dispatch(null, errCode, new Object[] {arg1, arg2, arg3}, null);
+            throws JasperException {
+        dispatch(null, errCode, new Object[]{arg1, arg2, arg3}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param where Error location
+     * @param where   Error location
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Mark where, String errCode, String arg1, String arg2)
-	        throws JasperException {
-	dispatch(where, errCode, new Object[] {arg1, arg2}, null);
+            throws JasperException {
+        dispatch(where, errCode, new Object[]{arg1, arg2}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param where Error location
+     * @param where   Error location
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     * @param arg3 Third argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @param arg3    Third argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
-
     public void jspError(Mark where, String errCode, String arg1, String arg2,
                          String arg3)
-                throws JasperException {
-        dispatch(where, errCode, new Object[] {arg1, arg2, arg3}, null);
+            throws JasperException {
+        dispatch(where, errCode, new Object[]{arg1, arg2, arg3}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param n Node that caused the error
+     * @param n       Node that caused the error
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
-
     public void jspError(Node n, String errCode, String arg1, String arg2)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg1, arg2}, null);
+            throws JasperException {
+        dispatch(n.getStart(), errCode, new Object[]{arg1, arg2}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param n Node that caused the error
+     * @param n       Node that caused the error
      * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     * @param arg3 Third argument for parametric replacement
+     * @param arg1    First argument for parametric replacement
+     * @param arg2    Second argument for parametric replacement
+     * @param arg3    Third argument for parametric replacement
+     * @throws JasperException in case of Jasper errors
      */
-
     public void jspError(Node n, String errCode, String arg1, String arg2,
                          String arg3)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg1, arg2, arg3}, null);
+            throws JasperException {
+        dispatch(n.getStart(), errCode, new Object[]{arg1, arg2, arg3}, null);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given parsing exception to the configured error handler.
+     * </p>
      *
      * @param e Parsing exception
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Exception e) throws JasperException {
-	dispatch(null, null, null, e);
+        dispatch(null, null, null, e);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
      * @param errCode Error code
-     * @param arg Argument for parametric replacement
-     * @param e Parsing exception
+     * @param arg     Argument for parametric replacement
+     * @param e       Parsing exception
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(String errCode, String arg, Exception e)
-	        throws JasperException {
-	dispatch(null, errCode, new Object[] {arg}, e);
+            throws JasperException {
+        dispatch(null, errCode, new Object[]{arg}, e);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given JSP parse error to the configured error handler.
+     * </p>
      *
+     * <p>
      * The given error code is localized. If it is not found in the
      * resource bundle for localized error messages, it is used as the error
      * message.
+     * </p>
      *
-     * @param n Node that caused the error
+     * @param n       Node that caused the error
      * @param errCode Error code
-     * @param arg Argument for parametric replacement
-     * @param e Parsing exception
+     * @param arg     Argument for parametric replacement
+     * @param e       Parsing exception
+     * @throws JasperException in case of Jasper errors
      */
     public void jspError(Node n, String errCode, String arg, Exception e)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg}, e);
+            throws JasperException {
+        dispatch(n.getStart(), errCode, new Object[]{arg}, e);
     }
 
     /**
+     * <p>
      * Parses the given error message into an array of javac compilation error
      * messages (one per javac compilation error line number).
+     * </p>
      *
      * @param errMsg Error message
-     * @param fname Name of Java source file whose compilation failed
-     * @param page Node representation of JSP page from which the Java source
-     * file was generated
-     *
+     * @param fname  Name of Java source file whose compilation failed
+     * @param page   Node representation of JSP page from which the Java source
+     *               file was generated
      * @return Array of javac compilation errors, or null if the given error
      * message does not contain any compilation error line numbers
+     * @throws JasperException in case of Jasper errors
+     * @throws IOException     in case of IO errors
      */
     public static JavacErrorDetail[] parseJavacErrors(String errMsg,
                                                       String fname,
                                                       Node.Nodes page)
             throws JasperException, IOException {
 
-	return parseJavacMessage(errMsg, fname, page);
+        return parseJavacMessage(errMsg, fname, page);
     }
 
-    /*
+    /**
+     * <p>
      * Dispatches the given javac compilation errors to the configured error
      * handler.
+     * </p>
      *
      * @param javacErrors Array of javac compilation errors
+     * @throws JasperException in case of Jasper errors
      */
     public void javacError(JavacErrorDetail[] javacErrors)
             throws JasperException {
@@ -331,15 +411,18 @@ public class ErrorDispatcher {
     }
 
 
-    /*
+    /**
+     * <p>
      * Dispatches the given compilation error report and exception to the
      * configured error handler.
+     * </p>
      *
      * @param errorReport Compilation error report
-     * @param e Compilation exception
+     * @param e           Compilation exception
+     * @throws JasperException in case of Jasper errors
      */
     public void javacError(String errorReport, Exception e)
-                throws JasperException {
+            throws JasperException {
 
         errHandler.javacError(errorReport, e);
     }
@@ -361,23 +444,23 @@ public class ErrorDispatcher {
      * @param e Parsing exception
      */
     private void dispatch(Mark where, String errCode, Object[] args,
-			  Exception e) throws JasperException {
-	String file = null;
-	String errMsg = null;
-	int line = -1;
-	int column = -1;
-	boolean hasLocation = false;
-
-	// Localize
-	if (errCode != null) {
-	    errMsg = Localizer.getMessage(errCode, args);
-	} else if (e != null) {
-	    // give a hint about what's wrong
-	    errMsg = e.getMessage();
-	}
-
-	// Get error location
-	if (where != null) {
+                          Exception e) throws JasperException {
+        String file = null;
+        String errMsg = null;
+        int line = -1;
+        int column = -1;
+        boolean hasLocation = false;
+
+        // Localize
+        if (errCode != null) {
+            errMsg = Localizer.getMessage(errCode, args);
+        } else if (e != null) {
+            // give a hint about what's wrong
+            errMsg = e.getMessage();
+        }
+
+        // Get error location
+        if (where != null) {
             if (jspcMode) {
                 // Get the full URL of the resource that caused the error
                 try {
@@ -391,22 +474,22 @@ public class ErrorDispatcher {
                 // disclose any local filesystem details
                 file = where.getFile();
             }
-	    line = where.getLineNumber();
-	    column = where.getColumnNumber();
-	    hasLocation = true;
-	}
-	// Get nested exception
-	Exception nestedEx = e;
-	if ((e instanceof SAXException)
-	        && (((SAXException) e).getException() != null)) {
-	    nestedEx = ((SAXException) e).getException();
-	}
-
-	if (hasLocation) {
-	    errHandler.jspError(file, line, column, errMsg, nestedEx);
-	} else {
-	    errHandler.jspError(errMsg, nestedEx);
-	}
+            line = where.getLineNumber();
+            column = where.getColumnNumber();
+            hasLocation = true;
+        }
+        // Get nested exception
+        Exception nestedEx = e;
+        if ((e instanceof SAXException)
+                && (((SAXException) e).getException() != null)) {
+            nestedEx = ((SAXException) e).getException();
+        }
+
+        if (hasLocation) {
+            errHandler.jspError(file, line, column, errMsg, nestedEx);
+        } else {
+            errHandler.jspError(errMsg, nestedEx);
+        }
     }
 
     /*
@@ -426,14 +509,14 @@ public class ErrorDispatcher {
      * compilation errors
      */
     private static JavacErrorDetail[] parseJavacMessage(
-                                String errMsg, String fname, Node.Nodes page)
-	        throws IOException, JasperException {
+            String errMsg, String fname, Node.Nodes page)
+            throws IOException, JasperException {
 
         ArrayList<JavacErrorDetail> errors = new ArrayList<JavacErrorDetail>();
         StringBuffer errMsgBuf = null;
         int lineNum = -1;
         JavacErrorDetail javacError = null;
-        
+
         BufferedReader reader = new BufferedReader(new StringReader(errMsg));
         
         /*
@@ -449,77 +532,77 @@ public class ErrorDispatcher {
              * Ignore colon following drive letter on Windows (fromIndex = 2).
              * XXX Handle deprecation warnings that don't have line info
              */
-            int beginColon = line.indexOf(':', 2); 
+            int beginColon = line.indexOf(':', 2);
             int endColon = line.indexOf(':', beginColon + 1);
             if ((beginColon >= 0) && (endColon >= 0)) {
                 if (javacError != null) {
                     // add previous error to error vector
                     errors.add(javacError);
                 }
-                
+
                 String lineNumStr = line.substring(beginColon + 1, endColon);
                 try {
                     lineNum = Integer.parseInt(lineNumStr);
                 } catch (NumberFormatException e) {
                     lineNum = -1;
                 }
-                
+
                 errMsgBuf = new StringBuffer();
-                
+
                 javacError = createJavacError(fname, page, errMsgBuf, lineNum);
             }
-            
+
             // Ignore messages preceding first error
             if (errMsgBuf != null) {
                 errMsgBuf.append(line);
                 errMsgBuf.append("\n");
             }
         }
-        
+
         // Add last error to error vector
         if (javacError != null) {
             errors.add(javacError);
-        } 
-        
+        }
+
         reader.close();
-        
+
         JavacErrorDetail[] errDetails = null;
         if (errors.size() > 0) {
             errDetails = new JavacErrorDetail[errors.size()];
             errors.toArray(errDetails);
         }
-        
+
         return errDetails;
     }
 
 
     /**
-     * @param fname
-     * @param page
-     * @param errMsgBuf
-     * @param lineNum
+     * @param fname     Name of the JSP file in which the parse error occurred
+     * @param page      page
+     * @param errMsgBuf error message buffer
+     * @param lineNum   line number
      * @return JavacErrorDetail The error details
-     * @throws JasperException
+     * @throws JasperException in case of Jasper errors
      */
     public static JavacErrorDetail createJavacError(String fname,
-            Node.Nodes page, StringBuffer errMsgBuf, int lineNum)
-    throws JasperException {
+                                                    Node.Nodes page, StringBuffer errMsgBuf, int lineNum)
+            throws JasperException {
         return createJavacError(fname, page, errMsgBuf, lineNum, null);
     }
-    
-    
+
+
     /**
-     * @param fname
-     * @param page
-     * @param errMsgBuf
-     * @param lineNum
-     * @param ctxt
+     * @param fname     Name of the JSP file in which the parse error occurred
+     * @param page      page
+     * @param errMsgBuf error message buffer
+     * @param lineNum   line number
+     * @param ctxt      JSP compilation context
      * @return JavacErrorDetail The error details
-     * @throws JasperException
+     * @throws JasperException in case of Jasper errors
      */
     public static JavacErrorDetail createJavacError(String fname,
-            Node.Nodes page, StringBuffer errMsgBuf, int lineNum,
-            JspCompilationContext ctxt) throws JasperException {
+                                                    Node.Nodes page, StringBuffer errMsgBuf, int lineNum,
+                                                    JspCompilationContext ctxt) throws JasperException {
         JavacErrorDetail javacError;
         // Attempt to map javac error line number to line in JSP page
         ErrorVisitor errVisitor = new ErrorVisitor(lineNum);
@@ -534,7 +617,7 @@ public class ErrorDispatcher {
                         lineNum,
                         errNode.getStart().getFile(),
                         errNode.getStart().getLineNumber() + lineNum -
-                            errVisitor.getJspSourceNode().getBeginJavaLine(),
+                                errVisitor.getJspSourceNode().getBeginJavaLine(),
                         errMsgBuf,
                         ctxt);
             } else {
@@ -575,40 +658,40 @@ public class ErrorDispatcher {
      */
     static class ErrorVisitor extends Node.Visitor {
 
-	// Java source line number to be mapped
-	private int lineNum;
-
-	/*
-	 * JSP node whose Java source code range in the generated servlet
-	 * contains the Java source line number to be mapped
-	 */
-	Node found;
-
-	/*
-	 * Constructor.
-	 *
-	 * @param lineNum Source line number in the generated servlet code
-	 */
-	public ErrorVisitor(int lineNum) {
-	    this.lineNum = lineNum;
-	}
-
-	public void doVisit(Node n) throws JasperException {
-	    if ((lineNum >= n.getBeginJavaLine())
-		    && (lineNum < n.getEndJavaLine())) {
-		found = n;
-	    }
+        // Java source line number to be mapped
+        private int lineNum;
+
+        /*
+         * JSP node whose Java source code range in the generated servlet
+         * contains the Java source line number to be mapped
+         */
+        Node found;
+
+        /**
+         * Constructor.
+         *
+         * @param lineNum Source line number in the generated servlet code
+         */
+        public ErrorVisitor(int lineNum) {
+            this.lineNum = lineNum;
+        }
+
+        public void doVisit(Node n) throws JasperException {
+            if ((lineNum >= n.getBeginJavaLine())
+                    && (lineNum < n.getEndJavaLine())) {
+                found = n;
+            }
         }
 
-	/*
-	 * Gets the JSP node to which the source line number in the generated
-	 * servlet code was mapped.
-	 *
-	 * @return JSP node to which the source line number in the generated
-	 * servlet code was mapped
-	 */
-	public Node getJspSourceNode() {
-	    return found;
-	}
+        /**
+         * Gets the JSP node to which the source line number in the generated
+         * servlet code was mapped.
+         *
+         * @return JSP node to which the source line number in the generated
+         * servlet code was mapped
+         */
+        public Node getJspSourceNode() {
+            return found;
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorHandler.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorHandler.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorHandler.java
index 4fa6980..a7a73f0 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorHandler.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/ErrorHandler.java
@@ -20,12 +20,16 @@ package org.apache.struts2.jasper.compiler;
 import org.apache.struts2.jasper.JasperException;
 
 /**
+ * <p>
  * Interface for handling JSP parse and javac compilation errors.
- * 
+ * </p>
+ *
+ * <p>
  * An implementation of this interface may be registered with the
  * ErrorDispatcher by setting the XXX initialization parameter in the JSP
  * page compiler and execution servlet in Catalina's web.xml file to the
  * implementation's fully qualified class name.
+ * </p>
  *
  * @author Jan Luehe
  * @author Kin-man Chung
@@ -35,39 +39,40 @@ public interface ErrorHandler {
     /**
      * Processes the given JSP parse error.
      *
-     * @param fname Name of the JSP file in which the parse error occurred
-     * @param line Parse error line number
-     * @param column Parse error column number
-     * @param msg Parse error message
+     * @param fname     Name of the JSP file in which the parse error occurred
+     * @param line      Parse error line number
+     * @param column    Parse error column number
+     * @param msg       Parse error message
      * @param exception Parse exception
+     * @throws JasperException in case of Jasper errors
      */
-    public void jspError(String fname, int line, int column, String msg,
-			 Exception exception) throws JasperException;
+    public void jspError(String fname, int line, int column, String msg, Exception exception) throws JasperException;
 
     /**
      * Processes the given JSP parse error.
      *
-     * @param msg Parse error message
+     * @param msg       Parse error message
      * @param exception Parse exception
+     * @throws JasperException in case of Jasper errors
      */
-    public void jspError(String msg, Exception exception)
-	throws JasperException;
+    public void jspError(String msg, Exception exception) throws JasperException;
 
     /**
      * Processes the given javac compilation errors.
      *
      * @param details Array of JavacErrorDetail instances corresponding to the
-     * compilation errors
+     *                compilation errors
+     * @throws JasperException in case of Jasper errors
      */
     public void javacError(JavacErrorDetail[] details)
-	throws JasperException;
+            throws JasperException;
 
     /**
      * Processes the given javac error report and exception.
      *
      * @param errorReport Compilation error report
-     * @param exception Compilation exception
+     * @param exception   Compilation exception
+     * @throws JasperException in case of Jasper errors
      */
-    public void javacError(String errorReport, Exception exception)
-        throws JasperException;
+    public void javacError(String errorReport, Exception exception) throws JasperException;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspConfig.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspConfig.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspConfig.java
index 67aef45..5ec0118 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspConfig.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspConfig.java
@@ -267,6 +267,7 @@ public class JspConfig {
      * Find a property that best matches the supplied resource.
      * @param uri the resource supplied.
      * @return a JspProperty indicating the best match, or some default.
+     * @throws JasperException in case of Jasper errors
      */
     public JspProperty findJspProperty(String uri) throws JasperException {
 
@@ -400,6 +401,10 @@ public class JspConfig {
     /**
      * To find out if an uri matches an url pattern in jsp config.  If so,
      * then the uri is a JSP page.  This is used primarily for jspc.
+     *
+     * @param uri the uri
+     * @return true if uri is a JSP page
+     * @throws JasperException in case of Jasper errors
      */
     public boolean isJspPage(String uri) throws JasperException {
 
@@ -419,10 +424,9 @@ public class JspConfig {
             uriExtension = uri.substring(index+1);
         }
 
-        Iterator iter = jspProperties.iterator();
-        while (iter.hasNext()) {
+        for (Object jspProperty : jspProperties) {
 
-            JspPropertyGroup jpg = (JspPropertyGroup) iter.next();
+            JspPropertyGroup jpg = (JspPropertyGroup) jspProperty;
             JspProperty jp = jpg.getJspProperty();
 
             String extension = jpg.getExtension();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspRuntimeContext.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspRuntimeContext.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspRuntimeContext.java
index 20c9da3..851f972 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspRuntimeContext.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/jasper/compiler/JspRuntimeContext.java
@@ -17,6 +17,18 @@
 
 package org.apache.struts2.jasper.compiler;
 
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+import org.apache.struts2.jasper.Constants;
+import org.apache.struts2.jasper.JspCompilationContext;
+import org.apache.struts2.jasper.Options;
+import org.apache.struts2.jasper.runtime.JspFactoryImpl;
+import org.apache.struts2.jasper.security.SecurityClassLoad;
+import org.apache.struts2.jasper.servlet.JspCServletContext;
+import org.apache.struts2.jasper.servlet.JspServletWrapper;
+
+import javax.servlet.ServletContext;
+import javax.servlet.jsp.JspFactory;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FilePermission;
@@ -26,32 +38,24 @@ import java.security.CodeSource;
 import java.security.PermissionCollection;
 import java.security.Policy;
 import java.security.cert.Certificate;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.ServletContext;
-import javax.servlet.jsp.JspFactory;
-
-import org.apache.struts2.jasper.Constants;
-import org.apache.struts2.jasper.JspCompilationContext;
-import org.apache.struts2.jasper.Options;
-import org.apache.struts2.jasper.runtime.JspFactoryImpl;
-import org.apache.struts2.jasper.security.SecurityClassLoad;
-import org.apache.struts2.jasper.servlet.JspServletWrapper;
-import org.apache.struts2.jasper.servlet.JspCServletContext;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-
 /**
+ * <p>
  * Class for tracking JSP compile time file dependencies when the
- * &060;%@include file="..."%&062; directive is used.
+ * &#060;%{@literal @}include file="..."%&#062; directive is used.
+ * </p>
  *
+ * <p>
  * A background thread periodically checks the files a JSP page
- * is dependent upon.  If a dpendent file changes the JSP page
+ * is dependent upon.  If a dependent file changes the JSP page
  * which included it is recompiled.
+ * </p>
  *
+ * <p>
  * Only used if a web application context is a directory.
+ * </p>
  *
  * @author Glenn L. Nielsen
  * @version $Revision: 505593 $
@@ -73,21 +77,21 @@ public final class JspRuntimeContext {
     static {
         JspFactoryImpl factory = new JspFactoryImpl();
         SecurityClassLoad.securityClassLoad(factory.getClass().getClassLoader());
-        if( System.getSecurityManager() != null ) {
+        if (System.getSecurityManager() != null) {
             String basePackage = "org.apache.struts2.jasper.";
             try {
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "runtime.JspFactoryImpl$PrivilegedGetPageContext");
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "runtime.JspFactoryImpl$PrivilegedReleasePageContext");
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "runtime.JspRuntimeLibrary");
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "runtime.JspRuntimeLibrary$PrivilegedIntrospectHelper");
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "runtime.ServletResponseWrapperInclude");
-                factory.getClass().getClassLoader().loadClass( basePackage +
-                                                               "servlet.JspServletWrapper");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "runtime.JspFactoryImpl$PrivilegedGetPageContext");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "runtime.JspFactoryImpl$PrivilegedReleasePageContext");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "runtime.JspRuntimeLibrary");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "runtime.JspRuntimeLibrary$PrivilegedIntrospectHelper");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "runtime.ServletResponseWrapperInclude");
+                factory.getClass().getClassLoader().loadClass(basePackage +
+                        "servlet.JspServletWrapper");
             } catch (ClassNotFoundException ex) {
                 throw new IllegalStateException(ex);
             }
@@ -99,11 +103,16 @@ public final class JspRuntimeContext {
     // ----------------------------------------------------------- Constructors
 
     /**
+     * <p>
      * Create a JspRuntimeContext for a web application context.
+     * </p>
      *
+     * <p>
      * Loads in any previously generated dependencies from file.
+     * </p>
      *
      * @param context ServletContext for web application
+     * @param options options
      */
     public JspRuntimeContext(ServletContext context, Options options) {
 
@@ -112,27 +121,27 @@ public final class JspRuntimeContext {
 
         // Get the parent class loader
         parentClassLoader =
-            (URLClassLoader) Thread.currentThread().getContextClassLoader();
+                (URLClassLoader) Thread.currentThread().getContextClassLoader();
         if (parentClassLoader == null) {
             parentClassLoader =
-                (URLClassLoader)this.getClass().getClassLoader();
+                    (URLClassLoader) this.getClass().getClassLoader();
         }
 
-	if (log.isDebugEnabled()) {
-	    if (parentClassLoader != null) {
-		log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
-					       parentClassLoader.toString()));
-	    } else {
-		log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
-					       "<none>"));
-	    }
+        if (log.isDebugEnabled()) {
+            if (parentClassLoader != null) {
+                log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
+                        parentClassLoader.toString()));
+            } else {
+                log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
+                        "<none>"));
+            }
         }
 
         initClassPath();
 
-	if (context instanceof JspCServletContext) {
-	    return;
-	}
+        if (context instanceof JspCServletContext) {
+            return;
+        }
 
         if (Constants.IS_SECURITY_ENABLED) {
             initSecurity();
@@ -140,12 +149,12 @@ public final class JspRuntimeContext {
 
         // If this web application context is running from a
         // directory, start the background compilation thread
-        String appBase = context.getRealPath("/");         
+        String appBase = context.getRealPath("/");
         if (!options.getDevelopment()
                 && appBase != null
                 && options.getCheckInterval() > 0) {
             lastCheck = System.currentTimeMillis();
-        }                                            
+        }
     }
 
     // ----------------------------------------------------- Instance Variables
@@ -157,15 +166,15 @@ public final class JspRuntimeContext {
     private Options options;
     private URLClassLoader parentClassLoader;
     private PermissionCollection permissionCollection;
-    private CodeSource codeSource;                    
+    private CodeSource codeSource;
     private String classpath;
     private long lastCheck = -1L;
 
     /**
      * Maps JSP pages to their JspServletWrapper's
      */
-    private Map<String, JspServletWrapper> jsps = new ConcurrentHashMap<String, JspServletWrapper>();
- 
+    private Map<String, JspServletWrapper> jsps = new ConcurrentHashMap<>();
+
 
     // ------------------------------------------------------ Public Methods
 
@@ -173,7 +182,7 @@ public final class JspRuntimeContext {
      * Add a new JspServletWrapper.
      *
      * @param jspUri JSP URI
-     * @param jsw Servlet wrapper for JSP
+     * @param jsw    Servlet wrapper for JSP
      */
     public void addWrapper(String jspUri, JspServletWrapper jsw) {
         jsps.put(jspUri, jsw);
@@ -238,12 +247,11 @@ public final class JspRuntimeContext {
     }
 
     /**
-     * Process a "destory" event for this web application context.
-     */                                                        
+     * Process a "destroy" event for this web application context.
+     */
     public void destroy() {
-        Iterator servlets = jsps.values().iterator();
-        while (servlets.hasNext()) {
-            ((JspServletWrapper) servlets.next()).destroy();
+        for (Object o : jsps.values()) {
+            ((JspServletWrapper) o).destroy();
         }
     }
 
@@ -289,21 +297,21 @@ public final class JspRuntimeContext {
         } else {
             return;
         }
-        
-        Object [] wrappers = jsps.values().toArray();
-        for (int i = 0; i < wrappers.length; i++ ) {
-            JspServletWrapper jsw = (JspServletWrapper)wrappers[i];
+
+        Object[] wrappers = jsps.values().toArray();
+        for (Object wrapper : wrappers) {
+            JspServletWrapper jsw = (JspServletWrapper) wrapper;
             JspCompilationContext ctxt = jsw.getJspEngineContext();
             // JspServletWrapper also synchronizes on this when
             // it detects it has to do a reload
-            synchronized(jsw) {
+            synchronized (jsw) {
                 try {
                     ctxt.compile();
                 } catch (FileNotFoundException ex) {
                     ctxt.incrementRemoved();
                 } catch (Throwable t) {
                     jsw.getServletContext().log("Background compile failed",
-						t);
+                            t);
                 }
             }
         }
@@ -311,7 +319,7 @@ public final class JspRuntimeContext {
     }
 
     /**
-     * The classpath that is passed off to the Java compiler.
+     * @return The classpath that is passed off to the Java compiler.
      */
     public String getClassPath() {
         return classpath;
@@ -326,22 +334,22 @@ public final class JspRuntimeContext {
      */
     private void initClassPath() {
 
-        URL [] urls = parentClassLoader.getURLs();
+        URL[] urls = parentClassLoader.getURLs();
         StringBuffer cpath = new StringBuffer();
         String sep = System.getProperty("path.separator");
 
-        for(int i = 0; i < urls.length; i++) {
+        for (int i = 0; i < urls.length; i++) {
             // Tomcat 4 can use URL's other than file URL's,
             // a protocol other than file: will generate a
             // bad file system path, so only add file:
             // protocol URL's to the classpath.
-            
-            if( urls[i].getProtocol().equals("file") ) {
-                cpath.append((String)urls[i].getFile()+sep);
+
+            if (urls[i].getProtocol().equals("file")) {
+                cpath.append((String) urls[i].getFile() + sep);
             }
-        }    
+        }
 
-	cpath.append(options.getScratchDir() + sep);
+        cpath.append(options.getScratchDir() + sep);
 
         String cp = (String) context.getAttribute(Constants.SERVLET_CLASSPATH);
         if (cp == null || cp.equals("")) {
@@ -350,7 +358,7 @@ public final class JspRuntimeContext {
 
         classpath = cpath.toString() + cp;
 
-        if(log.isDebugEnabled()) {
+        if (log.isDebugEnabled()) {
             log.debug("Compilation classpath initialized: " + getClassPath());
         }
     }
@@ -365,80 +373,80 @@ public final class JspRuntimeContext {
         // web app context directory, then add a file read permission
         // for that directory.
         Policy policy = Policy.getPolicy();
-        if( policy != null ) {
-            try {          
+        if (policy != null) {
+            try {
                 // Get the permissions for the web app context
                 String docBase = context.getRealPath("/");
-                if( docBase == null ) {
+                if (docBase == null) {
                     docBase = options.getScratchDir().toString();
                 }
                 String codeBase = docBase;
-                if (!codeBase.endsWith(File.separator)){
+                if (!codeBase.endsWith(File.separator)) {
                     codeBase = codeBase + File.separator;
                 }
                 File contextDir = new File(codeBase);
                 URL url = contextDir.getCanonicalFile().toURL();
-                codeSource = new CodeSource(url,(Certificate[])null);
+                codeSource = new CodeSource(url, (Certificate[]) null);
                 permissionCollection = policy.getPermissions(codeSource);
 
                 // Create a file read permission for web app context directory
-                if (!docBase.endsWith(File.separator)){
+                if (!docBase.endsWith(File.separator)) {
                     permissionCollection.add
-                        (new FilePermission(docBase,"read"));
+                            (new FilePermission(docBase, "read"));
                     docBase = docBase + File.separator;
                 } else {
                     permissionCollection.add
-                        (new FilePermission
-                            (docBase.substring(0,docBase.length() - 1),"read"));
+                            (new FilePermission
+                                    (docBase.substring(0, docBase.length() - 1), "read"));
                 }
                 docBase = docBase + "-";
-                permissionCollection.add(new FilePermission(docBase,"read"));
+                permissionCollection.add(new FilePermission(docBase, "read"));
 
                 // Create a file read permission for web app tempdir (work)
                 // directory
                 String workDir = options.getScratchDir().toString();
-                if (!workDir.endsWith(File.separator)){
+                if (!workDir.endsWith(File.separator)) {
                     permissionCollection.add
-                        (new FilePermission(workDir,"read"));
+                            (new FilePermission(workDir, "read"));
                     workDir = workDir + File.separator;
                 }
                 workDir = workDir + "-";
-                permissionCollection.add(new FilePermission(workDir,"read"));
+                permissionCollection.add(new FilePermission(workDir, "read"));
 
                 // Allow the JSP to access org.apache.struts2.jasper.runtime.HttpJspBase
-                permissionCollection.add( new RuntimePermission(
-                    "accessClassInPackage.org.apache.struts2.jasper.runtime") );
+                permissionCollection.add(new RuntimePermission(
+                        "accessClassInPackage.org.apache.struts2.jasper.runtime"));
 
                 if (parentClassLoader instanceof URLClassLoader) {
-                    URL [] urls = parentClassLoader.getURLs();
+                    URL[] urls = parentClassLoader.getURLs();
                     String jarUrl = null;
                     String jndiUrl = null;
-                    for (int i=0; i<urls.length; i++) {
+                    for (int i = 0; i < urls.length; i++) {
                         if (jndiUrl == null
-                                && urls[i].toString().startsWith("jndi:") ) {
+                                && urls[i].toString().startsWith("jndi:")) {
                             jndiUrl = urls[i].toString() + "-";
                         }
                         if (jarUrl == null
                                 && urls[i].toString().startsWith("jar:jndi:")
                                 ) {
                             jarUrl = urls[i].toString();
-                            jarUrl = jarUrl.substring(0,jarUrl.length() - 2);
+                            jarUrl = jarUrl.substring(0, jarUrl.length() - 2);
                             jarUrl = jarUrl.substring(0,
-                                     jarUrl.lastIndexOf('/')) + "/-";
+                                    jarUrl.lastIndexOf('/')) + "/-";
                         }
                     }
                     if (jarUrl != null) {
                         permissionCollection.add(
-                                new FilePermission(jarUrl,"read"));
+                                new FilePermission(jarUrl, "read"));
                         permissionCollection.add(
-                                new FilePermission(jarUrl.substring(4),"read"));
+                                new FilePermission(jarUrl.substring(4), "read"));
                     }
                     if (jndiUrl != null)
                         permissionCollection.add(
-                                new FilePermission(jndiUrl,"read") );
+                                new FilePermission(jndiUrl, "read"));
                 }
-            } catch(Exception e) {
-                context.log("Security Init for context failed",e);
+            } catch (Exception e) {
+                context.log("Security Init for context failed", e);
             }
         }
     }


[10/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
index 88e3c53..acabef0 100644
--- a/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
@@ -50,7 +50,8 @@ public abstract class AbstractDirective extends Directive {
     public abstract String getBeanName();
 
     /**
-     * All components, unless otherwise stated, are LINE-level directives.
+     * @return All components, unless otherwise stated, are LINE-level directives.
+     *
      */
     public int getType() {
         return LINE;
@@ -82,12 +83,18 @@ public abstract class AbstractDirective extends Directive {
     }
 
     /**
-     * create a Map of properties that the user has passed in.  for example,
+     * <p>
+     * Create a Map of properties that the user has passed in. For example:
+     * </p>
+     *
      * <pre>
      * #xxx("name=hello" "value=world" "template=foo")
      * </pre>
-     * would yield a params that contains {["name", "hello"], ["value", "world"], ["template", "foo"]}
      *
+     * <p>
+     * would yield a params that contains {["name", "hello"], ["value", "world"], ["template", "foo"]}
+     * </p>
+     * @param contextAdapter the context adapter
      * @param node the Node passed in to the render method
      * @return a Map of the user specified properties
      * @throws org.apache.velocity.exception.ParseErrorException
@@ -132,7 +139,11 @@ public abstract class AbstractDirective extends Directive {
      * then the key, rows, would be added to the propertyMap with the String value, 20.
      *
      * @param propertyMap a params containing all the properties that we wish to set
+     * @param contextAdapter the context adapter
      * @param node        the parameter to set expressed in "name=value" format
+     *
+     * @throws ParseErrorException in case of parsing errors
+     * @throws MethodInvocationException in case of method invocation errors
      */
     protected void putProperty(Map propertyMap, InternalContextAdapter contextAdapter, Node node) throws ParseErrorException, MethodInvocationException {
         // node.value uses the StrutsValueStack to evaluate the directive's value parameter

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
index d110d2d..78fea2d 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
@@ -93,10 +93,10 @@ public abstract class AbstractAdapterNode implements AdapterNode {
 
     /**
      *
-     * @param adapterFactory
-     * @param parent
-     * @param propertyName
-     * @param value
+     * @param adapterFactory the adapter factory
+     * @param parent the parent adapter node
+     * @param propertyName the property name
+     * @param value value
      */
     protected void setContext(AdapterFactory adapterFactory, AdapterNode parent, String propertyName, Object value) {
         setAdapterFactory(adapterFactory);
@@ -116,6 +116,8 @@ public abstract class AbstractAdapterNode implements AdapterNode {
 
     /**
      * Lazily initialize child childAdapters
+     *
+     * @return node list
      */
     protected List<Node> getChildAdapters() {
         if (childAdapters == null) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java b/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
index 67202fc..159ccf4 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
@@ -29,60 +29,77 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
+ * <p>
  * AdapterFactory produces Node adapters for Java object types.
  * Adapter classes are generally instantiated dynamically via a no-args constructor
  * and populated with their context information via the AdapterNode interface.
+ * </p>
  *
+ * <p>
  * This factory supports proxying of generic DOM Node trees, allowing arbitrary
  * Node types to be mixed together.  You may simply return a Document or Node
  * type as an object property and it will appear as a sub-tree in the XML as
  * you'd expect. See #proxyNode().
+ * </p>
  *
+ * <p>
  * Customization of the result XML can be accomplished by providing
  * alternate adapters for Java types.  Adapters are associated with Java
  * types through the registerAdapterType() method.
+ * </p>
  *
+ * <p>
  * For example, since there is no default Date adapter, Date objects will be
  * rendered with the generic Bean introspecting adapter, producing output
  * like:
+ * </p>
+ *
  * <pre>
-     <date>
-        <date>19</date>
-        <day>1</day>
-        <hours>0</hours>
-        <minutes>7</minutes>
-        <month>8</month>
-        <seconds>4</seconds>
-        <time>1127106424531</time>
-        <timezoneOffset>300</timezoneOffset>
-        <year>105</year>
-    </date>
+ *     &lt;date&gt;
+ *      &lt;date&gt;19&lt;/date&gt;
+ *      &lt;day&gt;1&lt;/day&gt;
+ *      &lt;hours&gt;0&lt;/hours&gt;
+ *      &lt;minutes&gt;7&lt;/minutes&gt;
+ *      &lt;month&gt;8&lt;/month&gt;
+ *      &lt;seconds&gt;4&lt;/seconds&gt;
+ *      &lt;time&gt;1127106424531&lt;/time&gt;
+ *      &lt;timezoneOffset&gt;300&lt;/timezoneOffset&gt;
+ *      &lt;year&gt;105&lt;/year&gt;
+ *     &lt;/date&gt;
  * </pre>
  *
+ * <p>
  * By extending the StringAdapter and overriding its normal behavior we can
  * create a custom Date formatter:
+ * </p>
  *
  * <pre>
-      public static class CustomDateAdapter extends StringAdapter {
-        protected String getStringValue() {
-            Date date = (Date)getPropertyValue();
-            return DateFormat.getTimeInstance( DateFormat.FULL ).format( date );
-        }
-    }
+ *     public static class CustomDateAdapter extends StringAdapter {
+ *       protected String getStringValue() {
+ *           Date date = (Date)getPropertyValue();
+ *           return DateFormat.getTimeInstance( DateFormat.FULL ).format( date );
+ *       }
+ *   }
  * </pre>
  *
+ * <p>
  * Producing output like:
+ * </p>
  *
-<pre>
-     <date>12:02:54 AM CDT</date>
- </pre>
+ * <pre>
+ *    &lt;date&gt;12:02:54 AM CDT&lt;/date&gt;
+ * </pre>
  *
+ * <p>
  * The StringAdapter (which is normally invoked only to adapt String values)
  * is a useful base for these kinds of customizations and can produce
  * structured XML output as well as plain text by setting its parseStringAsXML()
  * property to true.
+ * </p>
  *
+ * <p>
  * See provided examples.
+ * </p>
  */
 public class AdapterFactory {
 
@@ -103,10 +120,13 @@ public class AdapterFactory {
      * The document will have a root element with the specified property name
      * and contain the specified Java object content.
      *
-     * @param propertyName The name of the root document element
-     * @return
-     * @throws IllegalAccessException
-     * @throws InstantiationException
+     * @param propertyName the name of the root document element
+     * @param propertyValue the property value
+     *
+     * @return the document object
+     *
+     * @throws IllegalAccessException in case of illegal access
+     * @throws InstantiationException in case of instantiation errors
      */
     public Document adaptDocument(String propertyName, Object propertyValue)
             throws IllegalAccessException, InstantiationException {
@@ -120,6 +140,12 @@ public class AdapterFactory {
      * the child node itself may be any type of Node.
      *
      * @see #adaptDocument( String, Object )
+     *
+     * @param parent the parent adapter node
+     * @param propertyName the name of th property
+     * @param value the value
+     *
+     * @return a node
      */
     public Node adaptNode(AdapterNode parent, String propertyName, Object value) {
         Class adapterClass = getAdapterForValue(value);
@@ -172,6 +198,11 @@ public class AdapterFactory {
      * <p>
      * This method is primarily for use by the adapter node classes.
      * </p>
+     *
+     * @param parent parent adapter node
+     * @param node node
+     *
+     * @return proxy node
      */
     public Node proxyNode(AdapterNode parent, Node node) {
         // If the property is a Document, "unwrap" it to the root element
@@ -202,6 +233,13 @@ public class AdapterFactory {
     /**
      * Create an instance of an adapter dynamically and set its context via
      * the AdapterNode interface.
+     *
+     * @param adapterClass  adapter class
+     * @param parent parent adapter node
+     * @param propertyName the property name
+     * @param propertyValue the property value
+     *
+     * @return the new node
      */
     private Node constructAdapterInstance(Class adapterClass, AdapterNode parent, String propertyName, Object propertyValue) {
         // Check to see if the class has a no-args constructor
@@ -228,8 +266,10 @@ public class AdapterFactory {
     /**
      * Create an appropriate adapter for a null value.
      *
-     * @param parent
-     * @param propertyName
+     * @param parent parent adapter node
+     * @param propertyName the property name
+     *
+     * @return the new node
      */
     public Node adaptNullValue(AdapterNode parent, String propertyName) {
         return new StringAdapter(this, parent, propertyName, "null");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/AdapterNode.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/AdapterNode.java b/core/src/main/java/org/apache/struts2/views/xslt/AdapterNode.java
index c5063e2..4b76cb6 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/AdapterNode.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/AdapterNode.java
@@ -29,51 +29,68 @@ public interface AdapterNode extends Node {
 
     /**
      * The adapter factory that created this node.
+     *
+     * @return the adapter factory
      */
     AdapterFactory getAdapterFactory();
 
     /**
-     * The adapter factory that created this node.
+     * @param factory the adapter factory that created this node.
+     *
      */
     void setAdapterFactory(AdapterFactory factory);
 
     /**
      * The parent adapter node of this node. Note that our parent must be another adapter node, but our children may be any
      * kind of Node.
+     *
+     * @return the parent adapter node
      */
     AdapterNode getParent();
 
     /**
-     * The parent adapter node of this node. Note that our parent must be another adapter node, but our children may be any
+     * @param parent the parent adapter node of this node. Note that our parent must be another adapter node, but our children may be any
      * kind of Node.
      */
     void setParent(AdapterNode parent);
 
     /**
      * The child node before the specified sibling
+     *
+     * @param thisNode this node
+     * @return the child node before
      */
     Node getChildBefore(Node thisNode);
 
     /**
      * The child node after the specified sibling
+     *
+     * @param thisNode this node
+     * @return the child node after
      */
     Node getChildAfter(Node thisNode);
 
     /**
      * The name of the Java object (property) that we are adapting
+     *
+     * @return the property name
      */
     String getPropertyName();
 
     /**
-     * The name of the Java object (property) that we are adapting
+     * @param name the name of the Java object (property) that we are adapting
      */
     void setPropertyName(String name);
 
     /**
      * The Java object (property) that we are adapting
+     *
+     * @return the property object
      */
     Object getPropertyValue();
 
-    /** The Java object (property) that we are adapting */
+    /**
+     * @param prop the Java object (property) that we are adapting
+     */
     void setPropertyValue(Object prop );
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java b/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
index e9b8413..41c940a 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/BeanAdapter.java
@@ -51,7 +51,7 @@ import java.util.Map;
  * }
  * </pre>
  *
- * would be rendered as: <myPerson> <firstName>...</firstName> <lastName>...</lastName> </myPerson>
+ * would be rendered as: &lt;myPerson&gt; &lt;firstName&gt;...&lt;/firstName&gt; &lt;lastName&gt;...&lt;/lastName&gt; &lt;/myPerson&gt;
  */
 public class BeanAdapter extends AbstractAdapterElement {
     //Static fields/initializer

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/MapAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/MapAdapter.java b/core/src/main/java/org/apache/struts2/views/xslt/MapAdapter.java
index 8566637..4050e38 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/MapAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/MapAdapter.java
@@ -31,13 +31,13 @@ import java.util.Map;
  * MapAdapter adapters a java.util.Map type to an XML DOM with the following
  * structure:
  * <pre>
- *  <myMap>
- *      <entry>
- *          <key>...</key>
- *          <value>...</value>
- *      </entry>
+ *  &lt;myMap&gt;
+ *      &lt;entry&gt;
+ *          &lt;key&gt;...&lt;/key&gt;
+ *          &lt;value&gt;...&lt;/value&gt;
+ *      &lt;/entry&gt;
  *      ...
- *  </myMap>
+ *  &lt;/myMap&gt;
  * </pre>
  */
 public class MapAdapter extends AbstractAdapterElement {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java b/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
index 31dca8b..36fc570 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ProxyElementAdapter.java
@@ -29,13 +29,17 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
+ * <p>
  * ProxyElementAdapter is a pass-through adapter for objects which already
  * implement the Element interface.  All methods are proxied to the underlying
  * Node except getParent(), getNextSibling() and getPreviousSibling(), which
  * are implemented by the abstract adapter node to work with the parent adapter.
+ * </p>
  *
+ * <p>
  * Note: this class wants to be (extend) both an AbstractElementAdapter
  * and ProxyElementAdapter, but its proxy-ness is winning right now.
+ * </p>
  */
 public class ProxyElementAdapter extends ProxyNodeAdapter implements Element {
 
@@ -46,7 +50,7 @@ public class ProxyElementAdapter extends ProxyNodeAdapter implements Element {
     }
 
     /**
-     * Get the proxied Element
+     * @return the proxied Element
      */
     protected Element element() {
         return (Element) getPropertyValue();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java b/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
index f7ce1bb..3ccdc61 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/ProxyNodeAdapter.java
@@ -46,16 +46,15 @@ public abstract class ProxyNodeAdapter extends AbstractAdapterNode {
     }
 
     /**
-     * Get the proxied Node value
+     * @return the proxied Node value
      */
     protected Node node() {
         return (Node) getPropertyValue();
     }
 
     /**
-     * Get and adapter to wrap the proxied node.
-     *
-     * @param node
+     * @param node the node
+     * @return adapter to wrap the proxied node.
      */
     protected Node wrap(Node node) {
         return getAdapterFactory().proxyNode(this, node);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java b/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
index 194d52b..93daf41 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/StringAdapter.java
@@ -32,17 +32,20 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
+ * <p>
  * StringAdapter adapts a Java String value to a DOM Element with the specified
  * property name containing the String's text.
- * e.g. a property <pre>String getFoo() { return "My Text!"; }</pre>
+ * e.g. a property <code>String getFoo() { return "My Text!"; }</code>
  * will appear in the result DOM as:
- * <foo>MyText!</foo>
+ * &lt;foo&gt;MyText!&lt;/foo&gt;
+ * </p>
  *
+ * <p>
  * Subclasses may override the getStringValue() method in order to use StringAdapter
  * as a simplified custom XML adapter for Java types.  A subclass can enable XML
  * parsing of the value string via the setParseStringAsXML() method and then
  * override getStringValue() to return a String containing the custom formatted XML.
- *
+ * </p>
  */
 public class StringAdapter extends AbstractAdapterElement {
 
@@ -68,6 +71,8 @@ public class StringAdapter extends AbstractAdapterElement {
      * setParseStringAsXML() method and then override getStringValue() to return a
      * String containing the custom formatted XML.
      * </p>
+     *
+     * @return the string value
      */
     protected String getStringValue() {
         return getPropertyValue().toString();
@@ -92,7 +97,7 @@ public class StringAdapter extends AbstractAdapterElement {
     }
 
     /**
-     * Is this StringAdapter to interpret its string values as containing
+     * @return is this StringAdapter to interpret its string values as containing
      * XML Text?
      *
      * @see #setParseStringAsXML(boolean)
@@ -107,7 +112,7 @@ public class StringAdapter extends AbstractAdapterElement {
      * Element will be a child of this String element. (i.e. wrapped in an
      * element of the property name specified for this StringAdapter).
      *
-     * @param parseStringAsXML
+     * @param parseStringAsXML when set to true the StringAdapter will interpret its String value as containing XML text
      * @see #getParseStringAsXML()
      */
     public void setParseStringAsXML(boolean parseStringAsXML) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
index 68b92ae..5ebbf67 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
@@ -115,7 +115,7 @@ import java.util.Map;
  *
  * <p>
  * <b>Note:</b> In your .xsl file the root match must be named <tt>result</tt>.
- * <br/>This example will output the username by using <tt>getUsername</tt> on your
+ * <br>This example will output the username by using <tt>getUsername</tt> on your
  * action class:
  * <pre>
  * &lt;xsl:template match="result"&gt;
@@ -191,12 +191,15 @@ import java.util.Map;
  * </ul>
  *
  * <!-- END SNIPPET: params -->
- *
+ * <p>
  * <b>Example:</b>
+ * </p>
  *
- * <pre><!-- START SNIPPET: example -->
+ * <pre>
+ * <!-- START SNIPPET: example -->
  * &lt;result name="success" type="xslt"&gt;foo.xslt&lt;/result&gt;
- * <!-- END SNIPPET: example --></pre>
+ * <!-- END SNIPPET: example -->
+ * </pre>
  *
  */
 public class XSLTResult implements Result {
@@ -295,9 +298,7 @@ public class XSLTResult implements Result {
     }
 
     /**
-     * If true, parse the stylesheet location for OGNL expressions.
-     *
-     * @param parse
+     * @param parse if true, parse the stylesheet location for OGNL expressions.
      */
     public void setParse(boolean parse) {
         this.parse = parse;
@@ -395,7 +396,7 @@ public class XSLTResult implements Result {
     }
 
     /**
-     * Get the URI Resolver to be called by the processor when it encounters an xsl:include, xsl:import, or document()
+     * @return the URI Resolver to be called by the processor when it encounters an xsl:include, xsl:import, or document()
      * function. The default is an instance of ServletURIResolver, which operates relative to the servlet context.
      */
     protected URIResolver getURIResolver() {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/constraints/FieldMatch.java
----------------------------------------------------------------------
diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/constraints/FieldMatch.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/constraints/FieldMatch.java
index 1c765fb..f478344 100644
--- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/constraints/FieldMatch.java
+++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/constraints/FieldMatch.java
@@ -41,16 +41,16 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
  * </p>
  * <pre>
  *
- * @FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match")
+ * {@literal @}FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match")
  * </pre>
  *
  * <p>
  * Example, compare more than 1 pair of fields:
  * </p>
  * <pre>
- * @FieldMatch.List({
- *      @FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match"),
- *      @FieldMatch(first = "email", second = "confirmEmail", message = "The email fields must match")
+ * {@literal @}FieldMatch.List({
+ *      {@literal @}FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match"),
+ *      {@literal @}FieldMatch(first = "email", second = "confirmEmail", message = "The email fields must match")
  * })
  * </pre>
  */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
index aaed47d..3cd56e9 100644
--- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
+++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
@@ -166,6 +166,10 @@ public class BeanValidationInterceptor extends MethodFilterInterceptor {
 
     /**
      * Decide if a violation should be added to the fieldErrors or actionErrors
+     *
+     * @param violation the violation
+     *
+     * @return true if violation should be added to the fieldErrors or actionErrors
      */
     protected boolean isActionError(ConstraintViolation<Object> violation) {
         return violation.getLeafBean() == violation.getInvalidValue();
@@ -173,6 +177,13 @@ public class BeanValidationInterceptor extends MethodFilterInterceptor {
 
     /**
      * This is copied from DefaultActionInvocation
+     *
+     * @param actionClass the action class
+     * @param methodName the method name
+     *
+     * @return Method
+     *
+     * @throws NoSuchMethodException if no method with this name was found
      */
     protected Method getActionMethod(Class<?> actionClass, String methodName) throws NoSuchMethodException {
         Method method;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/DefaultBeanValidationManager.java
----------------------------------------------------------------------
diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/DefaultBeanValidationManager.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/DefaultBeanValidationManager.java
index 69707bf..9bae97a 100644
--- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/DefaultBeanValidationManager.java
+++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/DefaultBeanValidationManager.java
@@ -44,11 +44,13 @@ import javax.validation.ValidatorFactory;
  * almost always use the default Validator anyway. You need to pass provider class in order for this plugin to hook
  * itself to underlying validation Factory. Any of following Validation provider can be provided using
  * <code>struts.beanValidation.providerClass</code>
+ * </p>
+ *
  * <ul>
  * <li>Hibernate Validator - <code>org.hibernate.validator.HibernateValidator</code></li>
  * <li>Apache Bval - <code>org.apache.bval.jsr303.ApacheValidationProvider</code></li>
  * </ul>
- * </p>
+ *
  */
 public class DefaultBeanValidationManager implements BeanValidationManager {
 
@@ -107,10 +109,14 @@ public class DefaultBeanValidationManager implements BeanValidationManager {
      * <p>
      * In this case, the default validation provider resolver will be used to locate available providers. The chosen
      * provider is defined as followed:
+     * </p>
+     * <ul>
      * <li>if the XML configuration defines a provider, this provider is used</li>
      * <li>if the XML configuration does not define a provider or if no XML configuration is present the first provider
      * returned by the ValidationProviderResolver instance is used.</li>
-     * </p>
+     * </ul>
+     *
+     * @return validator instance
      */
     public Validator getValidator() {
         return this.validationFactory.getValidator();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java
index f5e7973..32aec96 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ClasspathConfigurationProvider.java
@@ -70,6 +70,8 @@ public class ClasspathConfigurationProvider implements ConfigurationProvider, Di
 
     /**
      * Not used.
+     *
+     * @param configuration configuration
      */
     public void init(Configuration configuration) {
         if (devMode && reload && !listeningToDispatcher) {
@@ -82,6 +84,11 @@ public class ClasspathConfigurationProvider implements ConfigurationProvider, Di
 
     /**
      * Does nothing.
+     *
+     * @param containerBuilder container builder
+     * @param locatableProperties locatable properties
+     *
+     * @throws ConfigurationException in case of configuration errors
      */
     public void register(ContainerBuilder containerBuilder, LocatableProperties locatableProperties)
             throws ConfigurationException {
@@ -90,14 +97,13 @@ public class ClasspathConfigurationProvider implements ConfigurationProvider, Di
     /**
      * Loads the packages using the {@link ActionConfigBuilder}.
      *
-     * @throws ConfigurationException
+     * @throws ConfigurationException in case of configuration errors
      */
     public void loadPackages() throws ConfigurationException {
     }
 
     /**
-     * Depends on devMode, relead and actionConfigBuilder.needsReload()
-     * @return Always false.
+     * @return true if devMode, reload and actionConfigBuilder.needsReload()
      */
     public boolean needsReload() {
         return devMode && reload && actionConfigBuilder.needsReload();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
index 767b534..87fb970 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
@@ -32,6 +32,7 @@ import com.opensymphony.xwork2.util.finder.ClassLoaderInterface;
 import com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate;
 import com.opensymphony.xwork2.util.finder.ResourceFinder;
 import com.opensymphony.xwork2.util.finder.Test;
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
@@ -53,7 +54,7 @@ import java.util.*;
  * </p>
  *
  * <pre>
- * /resultPath/namespace/action-&lt;result>.jsp
+ * /resultPath/namespace/action-&lt;result&gt;.jsp
  * </pre>
  *
  * <p>
@@ -102,14 +103,14 @@ import java.util.*;
  * table below:
  * </p>
  *
- * <table>
+ * <table summary="">
  * <tr><th>Extension</th><th>Type</th></tr>
- * <tr><td>.jsp</td><td>dispatcher</td</tr>
- * <tr><td>.jspx</td><td>dispatcher</td</tr>
- * <tr><td>.html</td><td>dispatcher</td</tr>
- * <tr><td>.htm</td><td>dispatcher</td</tr>
- * <tr><td>.vm</td><td>velocity</td</tr>
- * <tr><td>.ftl</td><td>freemarker</td</tr>
+ * <tr><td>.jsp</td><td>dispatcher</td></tr>
+ * <tr><td>.jspx</td><td>dispatcher</td></tr>
+ * <tr><td>.html</td><td>dispatcher</td></tr>
+ * <tr><td>.htm</td><td>dispatcher</td></tr>
+ * <tr><td>.vm</td><td>velocity</td></tr>
+ * <tr><td>.ftl</td><td>freemarker</td></tr>
  * </table>
  */
 public class DefaultResultMapBuilder implements ResultMapBuilder {
@@ -142,7 +143,7 @@ public class DefaultResultMapBuilder implements ResultMapBuilder {
      */
     @Inject("struts.convention.result.flatLayout")
     public void setFlatResultLayout(String flatResultLayout) {
-        this.flatResultLayout = "true".equals(flatResultLayout);
+        this.flatResultLayout = BooleanUtils.toBoolean(flatResultLayout);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
index cac3566..b4a8be9 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
@@ -131,7 +131,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
     }
 
     /**
-     * Reload configuration when classes change. Defaults to "false" and should not be used
+     * @param reload Reload configuration when classes change. Defaults to "false" and should not be used
      * in production.
      */
     @Inject("struts.convention.classes.reload")
@@ -146,7 +146,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
     }
 
     /**
-     * Exclude URLs found by the parent class loader. Defaults to "true", set to true for JBoss
+     * @param exclude Exclude URLs found by the parent class loader. Defaults to "true", set to true for JBoss
      */
     @Inject("struts.convention.exclude.parentClassLoader")
     public void setExcludeParentClassLoader(String exclude) {
@@ -154,7 +154,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
     }
 
     /**
-     * If this constant is true, and there is an "execute" method(not annotated), a mapping will be added
+     * @param alwaysMapExecute  If this constant is true, and there is an "execute" method(not annotated), a mapping will be added
      * pointing to it, even if there are other mapping in the class
      */
     @Inject("struts.convention.action.alwaysMapExecute")
@@ -186,8 +186,9 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
      */
     @Inject(value = "struts.convention.action.includeJars", required = false)
     public void setIncludeJars(String includeJars) {
-        if (StringUtils.isNotEmpty(includeJars))
+        if (StringUtils.isNotEmpty(includeJars)) {
             this.includeJars = includeJars.split("\\s*[,]\\s*");
+        }
     }
 
     /**
@@ -1031,7 +1032,7 @@ public class PackageBasedActionConfigBuilder implements ActionConfigBuilder {
      * 1. Loop over all the namespaces such as /foo and see if it has an action named index
      * 2. If an action doesn't exists in the parent namespace of the same name, create an action
      * in the parent namespace of the same name as the namespace that points to the index
-     * action in the namespace. e.g. /foo -> /foo/index
+     * action in the namespace. e.g. /foo -&gt; /foo/index
      * 3. Create the action in the namespace for empty string if it doesn't exist. e.g. /foo/
      * the action is "" and the namespace is /foo
      *

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java b/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
index 7140fe9..3db5327 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/ReflectionTools.java
@@ -51,6 +51,7 @@ public class ReflectionTools {
     /**
      * Retrieves the annotation from the given method in the given class.
      *
+     * @param   <T> type of annotated class
      * @param   clazz The class.
      * @param   methodName The method.
      * @param   annotationClass The annotation to get.

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/Namespace.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/Namespace.java b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/Namespace.java
index a0c4739..9e60df5 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/Namespace.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/Namespace.java
@@ -46,7 +46,7 @@ import java.lang.annotation.ElementType;
  * </p>
  *
  * <pre>
- * &lt;java-package>#&lt;parent-xwork-package>#&lt;namespace>
+ * &lt;java-package&gt;#&lt;parent-xwork-package&gt;#&lt;namespace&gt;
  * </pre>
  *
  * <p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ParentPackage.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ParentPackage.java b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ParentPackage.java
index 7a2c6f8..2e0b1f9 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ParentPackage.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ParentPackage.java
@@ -44,7 +44,7 @@ import java.lang.annotation.Target;
  * </p>
  *
  * <pre>
- * &lt;java-package>#&lt;parent-xwork-package>#&lt;namespace>
+ * &lt;java-package&gt;#&lt;parent-xwork-package&gt;#&lt;namespace&gt;
  * </pre>
  *
  * <p>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
index 320fdc7..4e06e7c 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
@@ -54,7 +54,7 @@ import java.lang.annotation.Target;
  * </p>
  *
  * <pre>
- * /WEB-INF/jsps/foo/do-something-&lt;resultCode>.ext
+ * /WEB-INF/jsps/foo/do-something-&lt;resultCode&gt;.ext
  * </pre>
  *  <!-- END SNIPPET: javadoc -->
  */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/JSPRuntime.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/JSPRuntime.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/JSPRuntime.java
index 71c008b..182fda4 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/JSPRuntime.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/JSPRuntime.java
@@ -30,7 +30,7 @@ import javax.servlet.jsp.HttpJspPage;
 import java.util.Map;
 
 /**
- * Maintains a cache of jsp locations -> servlet instances for those jsps. When a jsp is requested
+ * Maintains a cache of jsp locations -&gt; servlet instances for those jsps. When a jsp is requested
  * from the cache, the cache will block if the jsp was not compiled already, and wait for the compilation
  */
 public abstract class JSPRuntime {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/compiler/MemoryClassLoader.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/compiler/MemoryClassLoader.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/compiler/MemoryClassLoader.java
index 7a20ed8..a6cc61b 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/compiler/MemoryClassLoader.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/compiler/MemoryClassLoader.java
@@ -24,11 +24,11 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
- * Keeps a cache of class name -> MemoryJavaFileObject. If the requested class name is in the cache
+ * Keeps a cache of class name -&gt; MemoryJavaFileObject. If the requested class name is in the cache
  * a new class is defined for it, otherwise findClass delegates to the parent class loader
  */
 public class MemoryClassLoader extends ClassLoader {
-    private Map<String, MemoryJavaFileObject> cachedObjects = new ConcurrentHashMap<String, MemoryJavaFileObject>();
+    private Map<String, MemoryJavaFileObject> cachedObjects = new ConcurrentHashMap<>();
 
     public MemoryClassLoader() {
         //without this, the tests will not run, because the tests are loaded by a custom classloader

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/MethodExpressionImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/MethodExpressionImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/MethodExpressionImpl.java
index 4a1815d..60f6314 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/MethodExpressionImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/MethodExpressionImpl.java
@@ -44,7 +44,7 @@ import org.apache.struts2.el.util.ReflectionUtil;
  * An <code>Expression</code> that refers to a method on an object.
  * 
  * <p>
- * <code>The {@link ExpressionFactory#createMethodExpression} method
+ * The {@link ExpressionFactory#createMethodExpression} method
  * can be used to parse an expression string and return a concrete instance
  * of <code>MethodExpression</code> that encapsulates the parsed expression.
  * The {@link FunctionMapper} is used at parse time, not evaluation time, 
@@ -100,11 +100,12 @@ public final class MethodExpressionImpl extends MethodExpression implements
     }
 
     /**
-     * @param expr
-     * @param node
-     * @param fnMapper
-     * @param expectedType
-     * @param paramTypes
+     * @param expr expression
+     * @param node node
+     * @param fnMapper function mapper
+     * @param varMapper variable mapper
+     * @param expectedType expected type
+     * @param paramTypes parameter types array
      */
     public MethodExpressionImpl(String expr, Node node,
             FunctionMapper fnMapper, VariableMapper varMapper,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/ValueExpressionImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/ValueExpressionImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/ValueExpressionImpl.java
index 57e1b5b..7dc16de 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/ValueExpressionImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/ValueExpressionImpl.java
@@ -57,7 +57,7 @@ import org.apache.struts2.el.util.ReflectionUtil;
  * </p>
  * 
  * <p>
- * <code>The {@link ExpressionFactory#createValueExpression} method
+ * The {@link ExpressionFactory#createValueExpression} method
  * can be used to parse an expression string and return a concrete instance
  * of <code>ValueExpression</code> that encapsulates the parsed expression.
  * The {@link FunctionMapper} is used at parse time, not evaluation time, 
@@ -107,7 +107,11 @@ public final class ValueExpressionImpl extends ValueExpression implements
     }
 
     /**
-     * 
+     * @param expr expression
+     * @param node node
+     * @param fnMapper function mapper
+     * @param varMapper variable mapper
+     * @param expectedType expected type
      */
     public ValueExpressionImpl(String expr, Node node, FunctionMapper fnMapper,
             VariableMapper varMapper, Class expectedType) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ELSupport.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ELSupport.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ELSupport.java
index 2c349a2..7ed5e71 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ELSupport.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ELSupport.java
@@ -50,10 +50,10 @@ public class ELSupport {
     }
 
     /**
-     * @param obj0
-     * @param obj1
-     * @return
-     * @throws EvaluationException
+     * @param obj0 first object
+     * @param obj1 second object
+     * @return 0 if objects are equals
+     * @throws ELException in case of errors
      */
     public final static int compare(final Object obj0, final Object obj1)
             throws ELException {
@@ -93,10 +93,10 @@ public class ELSupport {
     }
 
     /**
-     * @param obj0
-     * @param obj1
-     * @return
-     * @throws EvaluationException
+     * @param obj0 first object
+     * @param obj1 second object
+     * @return true if objects are equals
+     * @throws ELException in case of errors
      */
     public final static boolean equals(final Object obj0, final Object obj1)
             throws ELException {
@@ -139,9 +139,9 @@ public class ELSupport {
     }
 
     /**
-     * @param obj
-     * @param type
-     * @return
+     * @param obj object
+     * @param type class ytpe
+     * @return enum
      */
     public final static Enum coerceToEnum(final Object obj, Class type) {
         if (obj == null || "".equals(obj)) {
@@ -154,8 +154,8 @@ public class ELSupport {
     }
 
     /**
-     * @param obj
-     * @return
+     * @param obj object
+     * @return boolean
      */
     public final static Boolean coerceToBoolean(final Object obj)
             throws IllegalArgumentException {
@@ -304,8 +304,8 @@ public class ELSupport {
     }
 
     /**
-     * @param obj
-     * @return
+     * @param obj object
+     * @return String
      */
     public final static String coerceToString(final Object obj) {
         if (obj == null) {
@@ -377,8 +377,8 @@ public class ELSupport {
     }
 
     /**
-     * @param obj
-     * @return
+     * @param obj object array
+     * @return true if object array contains null values
      */
     public final static boolean containsNulls(final Object[] obj) {
         for (int i = 0; i < obj.length; i++) {
@@ -466,9 +466,6 @@ public class ELSupport {
         }
     }
 
-    /**
-     * 
-     */
     public ELSupport() {
         super();
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ExpressionBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ExpressionBuilder.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ExpressionBuilder.java
index b1d38d0..a60b89d 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ExpressionBuilder.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/ExpressionBuilder.java
@@ -58,9 +58,6 @@ public final class ExpressionBuilder implements NodeVisitor {
 
     private String expression;
 
-    /**
-     *
-     */
     public ExpressionBuilder(String expression, ELContext ctx)
             throws ELException {
         this.expression = expression;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/FunctionMapperImpl.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/FunctionMapperImpl.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/FunctionMapperImpl.java
index d0f7a16..7bebefb 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/FunctionMapperImpl.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/lang/FunctionMapperImpl.java
@@ -93,9 +93,6 @@ public class FunctionMapperImpl extends FunctionMapper implements
         protected String prefix;
         protected String localName;
 
-        /**
-         * 
-         */
         public Function(String prefix, String localName, Method m) {
             if (localName == null) {
                 throw new NullPointerException("LocalName cannot be null");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ArithmeticNode.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ArithmeticNode.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ArithmeticNode.java
index 230ed16..1dd5fca 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ArithmeticNode.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ArithmeticNode.java
@@ -29,7 +29,7 @@ import org.apache.struts2.el.lang.EvaluationContext;
 public class ArithmeticNode extends SimpleNode {
 
     /**
-     * @param i
+     * @param i i
      */
     public ArithmeticNode(int i) {
         super(i);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/BooleanNode.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/BooleanNode.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/BooleanNode.java
index e3d65e8..e82a741 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/BooleanNode.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/BooleanNode.java
@@ -27,7 +27,7 @@ import org.apache.struts2.el.lang.EvaluationContext;
  */
 public class BooleanNode extends SimpleNode {
     /**
-     * @param i
+     * @param i i
      */
     public BooleanNode(int i) {
         super(i);


[08/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParserTokenManager.java
----------------------------------------------------------------------
diff --git a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParserTokenManager.java b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParserTokenManager.java
index d793787..e3ea7c5 100644
--- a/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParserTokenManager.java
+++ b/plugins/embeddedjsp/src/main/java/org/apache/struts2/el/parser/ELParserTokenManager.java
@@ -1,1340 +1,1325 @@
 /* Generated By:JJTree&JavaCC: Do not edit this line. ELParserTokenManager.java */
 package org.apache.struts2.el.parser;
-import java.io.StringReader;
-import javax.el.ELException;
 
-/** Token Manager. */
-public class ELParserTokenManager implements ELParserConstants
-{
+/**
+ * Token Manager.
+ */
+public class ELParserTokenManager implements ELParserConstants {
 
-  /** Debug output. */
-  public  java.io.PrintStream debugStream = System.out;
-  /** Set debug output. */
-  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
-private final int jjStopStringLiteralDfa_0(int pos, long active0)
-{
-   switch (pos)
-   {
-      case 0:
-         if ((active0 & 0x10L) != 0L)
-            return 2;
-         if ((active0 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 1;
-            return 4;
-         }
-         if ((active0 & 0x8L) != 0L)
-         {
-            jjmatchedKind = 1;
-            return 6;
-         }
-         return -1;
-      default :
-         return -1;
-   }
-}
-private final int jjStartNfa_0(int pos, long active0)
-{
-   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
-}
-private int jjStopAtPos(int pos, int kind)
-{
-   jjmatchedKind = kind;
-   jjmatchedPos = pos;
-   return pos + 1;
-}
-private int jjMoveStringLiteralDfa0_0()
-{
-   switch(curChar)
-   {
-      case 35:
-         return jjMoveStringLiteralDfa1_0(0x8L);
-      case 36:
-         return jjMoveStringLiteralDfa1_0(0x4L);
-      case 92:
-         return jjStartNfaWithStates_0(0, 4, 2);
-      default :
-         return jjMoveNfa_0(7, 0);
-   }
-}
-private int jjMoveStringLiteralDfa1_0(long active0)
-{
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(0, active0);
-      return 1;
-   }
-   switch(curChar)
-   {
-      case 123:
-         if ((active0 & 0x4L) != 0L)
-            return jjStopAtPos(1, 2);
-         else if ((active0 & 0x8L) != 0L)
-            return jjStopAtPos(1, 3);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_0(0, active0);
-}
-private int jjStartNfaWithStates_0(int pos, int kind, int state)
-{
-   jjmatchedKind = kind;
-   jjmatchedPos = pos;
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) { return pos + 1; }
-   return jjMoveNfa_0(state, pos + 1);
-}
-static final long[] jjbitVec0 = {
-   0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
-static final long[] jjbitVec2 = {
-   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
-private int jjMoveNfa_0(int startState, int curPos)
-{
-   int startsAt = 0;
-   jjnewStateCnt = 8;
-   int i = 1;
-   jjstateSet[0] = startState;
-   int kind = 0x7fffffff;
-   for (;;)
-   {
-      if (++jjround == 0x7fffffff)
-         ReInitRounds();
-      if (curChar < 64)
-      {
-         long l = 1L << curChar;
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 7:
-                  if ((0xffffffe7ffffffffL & l) != 0L)
-                  {
-                     if (kind > 1)
-                        kind = 1;
-                     jjCheckNAddStates(0, 3);
-                  }
-                  else if ((0x1800000000L & l) != 0L)
-                  {
-                     if (kind > 1)
-                        kind = 1;
-                  }
-                  if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 6;
-                  else if (curChar == 36)
-                     jjstateSet[jjnewStateCnt++] = 4;
-                  break;
-               case 0:
-                  if ((0xffffffe7ffffffffL & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               case 2:
-                  if ((0x1800000000L & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               case 3:
-                  if (curChar == 36)
-                     jjstateSet[jjnewStateCnt++] = 4;
-                  break;
-               case 4:
-                  if ((0xffffffefffffffffL & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               case 5:
-                  if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 6;
-                  break;
-               case 6:
-                  if ((0xfffffff7ffffffffL & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               default : break;
+    /**
+     * Debug output.
+     */
+    public java.io.PrintStream debugStream = System.out;
+
+    /**
+     * @param ds Set debug output.
+     */
+    public void setDebugStream(java.io.PrintStream ds) {
+        debugStream = ds;
+    }
+
+    private final int jjStopStringLiteralDfa_0(int pos, long active0) {
+        switch (pos) {
+            case 0:
+                if ((active0 & 0x10L) != 0L)
+                    return 2;
+                if ((active0 & 0x4L) != 0L) {
+                    jjmatchedKind = 1;
+                    return 4;
+                }
+                if ((active0 & 0x8L) != 0L) {
+                    jjmatchedKind = 1;
+                    return 6;
+                }
+                return -1;
+            default:
+                return -1;
+        }
+    }
+
+    private final int jjStartNfa_0(int pos, long active0) {
+        return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+    }
+
+    private int jjStopAtPos(int pos, int kind) {
+        jjmatchedKind = kind;
+        jjmatchedPos = pos;
+        return pos + 1;
+    }
+
+    private int jjMoveStringLiteralDfa0_0() {
+        switch (curChar) {
+            case 35:
+                return jjMoveStringLiteralDfa1_0(0x8L);
+            case 36:
+                return jjMoveStringLiteralDfa1_0(0x4L);
+            case 92:
+                return jjStartNfaWithStates_0(0, 4, 2);
+            default:
+                return jjMoveNfa_0(7, 0);
+        }
+    }
+
+    private int jjMoveStringLiteralDfa1_0(long active0) {
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(0, active0);
+            return 1;
+        }
+        switch (curChar) {
+            case 123:
+                if ((active0 & 0x4L) != 0L)
+                    return jjStopAtPos(1, 2);
+                else if ((active0 & 0x8L) != 0L)
+                    return jjStopAtPos(1, 3);
+                break;
+            default:
+                break;
+        }
+        return jjStartNfa_0(0, active0);
+    }
+
+    private int jjStartNfaWithStates_0(int pos, int kind, int state) {
+        jjmatchedKind = kind;
+        jjmatchedPos = pos;
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            return pos + 1;
+        }
+        return jjMoveNfa_0(state, pos + 1);
+    }
+
+    static final long[] jjbitVec0 = {
+            0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+    };
+    static final long[] jjbitVec2 = {
+            0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
+    };
+
+    private int jjMoveNfa_0(int startState, int curPos) {
+        int startsAt = 0;
+        jjnewStateCnt = 8;
+        int i = 1;
+        jjstateSet[0] = startState;
+        int kind = 0x7fffffff;
+        for (; ; ) {
+            if (++jjround == 0x7fffffff)
+                ReInitRounds();
+            if (curChar < 64) {
+                long l = 1L << curChar;
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 7:
+                            if ((0xffffffe7ffffffffL & l) != 0L) {
+                                if (kind > 1)
+                                    kind = 1;
+                                jjCheckNAddStates(0, 3);
+                            } else if ((0x1800000000L & l) != 0L) {
+                                if (kind > 1)
+                                    kind = 1;
+                            }
+                            if (curChar == 35)
+                                jjstateSet[jjnewStateCnt++] = 6;
+                            else if (curChar == 36)
+                                jjstateSet[jjnewStateCnt++] = 4;
+                            break;
+                        case 0:
+                            if ((0xffffffe7ffffffffL & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        case 2:
+                            if ((0x1800000000L & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        case 3:
+                            if (curChar == 36)
+                                jjstateSet[jjnewStateCnt++] = 4;
+                            break;
+                        case 4:
+                            if ((0xffffffefffffffffL & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        case 5:
+                            if (curChar == 35)
+                                jjstateSet[jjnewStateCnt++] = 6;
+                            break;
+                        case 6:
+                            if ((0xfffffff7ffffffffL & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
+            } else if (curChar < 128) {
+                long l = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 7:
+                            if ((0xffffffffefffffffL & l) != 0L) {
+                                if (kind > 1)
+                                    kind = 1;
+                                jjCheckNAddStates(0, 3);
+                            } else if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 2;
+                            break;
+                        case 0:
+                            if ((0xffffffffefffffffL & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        case 1:
+                            if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 2;
+                            break;
+                        case 2:
+                            if (curChar != 92)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        case 4:
+                        case 6:
+                            if ((0xf7ffffffffffffffL & l) == 0L)
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
+            } else {
+                int hiByte = (int) (curChar >> 8);
+                int i1 = hiByte >> 6;
+                long l1 = 1L << (hiByte & 077);
+                int i2 = (curChar & 0xff) >> 6;
+                long l2 = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 7:
+                        case 0:
+                        case 4:
+                        case 6:
+                            if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+                                break;
+                            if (kind > 1)
+                                kind = 1;
+                            jjCheckNAddStates(0, 3);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
             }
-         } while(i != startsAt);
-      }
-      else if (curChar < 128)
-      {
-         long l = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 7:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                  {
-                     if (kind > 1)
-                        kind = 1;
-                     jjCheckNAddStates(0, 3);
-                  }
-                  else if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 2;
-                  break;
-               case 0:
-                  if ((0xffffffffefffffffL & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               case 1:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 2;
-                  break;
-               case 2:
-                  if (curChar != 92)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               case 4:
-               case 6:
-                  if ((0xf7ffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               default : break;
+            if (kind != 0x7fffffff) {
+                jjmatchedKind = kind;
+                jjmatchedPos = curPos;
+                kind = 0x7fffffff;
             }
-         } while(i != startsAt);
-      }
-      else
-      {
-         int hiByte = (int)(curChar >> 8);
-         int i1 = hiByte >> 6;
-         long l1 = 1L << (hiByte & 077);
-         int i2 = (curChar & 0xff) >> 6;
-         long l2 = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 7:
-               case 0:
-               case 4:
-               case 6:
-                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAddStates(0, 3);
-                  break;
-               default : break;
+            ++curPos;
+            if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
+                return curPos;
+            try {
+                curChar = input_stream.readChar();
+            } catch (java.io.IOException e) {
+                return curPos;
             }
-         } while(i != startsAt);
-      }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
-         return curPos;
-      try { curChar = input_stream.readChar(); }
-      catch(java.io.IOException e) { return curPos; }
-   }
-}
-private final int jjStopStringLiteralDfa_1(int pos, long active0)
-{
-   switch (pos)
-   {
-      case 0:
-         if ((active0 & 0x40000L) != 0L)
+        }
+    }
+
+    private final int jjStopStringLiteralDfa_1(int pos, long active0) {
+        switch (pos) {
+            case 0:
+                if ((active0 & 0x40000L) != 0L)
+                    return 1;
+                if ((active0 & 0x141d555401c000L) != 0L) {
+                    jjmatchedKind = 53;
+                    return 36;
+                }
+                return -1;
+            case 1:
+                if ((active0 & 0x41554000000L) != 0L)
+                    return 36;
+                if ((active0 & 0x1419400001c000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 1;
+                    return 36;
+                }
+                return -1;
+            case 2:
+                if ((active0 & 0x18000001c000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 2;
+                    return 36;
+                }
+                if ((active0 & 0x14014000000000L) != 0L)
+                    return 36;
+                return -1;
+            case 3:
+                if ((active0 & 0x14000L) != 0L)
+                    return 36;
+                if ((active0 & 0x180000008000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 3;
+                    return 36;
+                }
+                return -1;
+            case 4:
+                if ((active0 & 0x80000008000L) != 0L)
+                    return 36;
+                if ((active0 & 0x100000000000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 4;
+                    return 36;
+                }
+                return -1;
+            case 5:
+                if ((active0 & 0x100000000000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 5;
+                    return 36;
+                }
+                return -1;
+            case 6:
+                if ((active0 & 0x100000000000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 6;
+                    return 36;
+                }
+                return -1;
+            case 7:
+                if ((active0 & 0x100000000000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 7;
+                    return 36;
+                }
+                return -1;
+            case 8:
+                if ((active0 & 0x100000000000L) != 0L) {
+                    jjmatchedKind = 53;
+                    jjmatchedPos = 8;
+                    return 36;
+                }
+                return -1;
+            default:
+                return -1;
+        }
+    }
+
+    private final int jjStartNfa_1(int pos, long active0) {
+        return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
+    }
+
+    private int jjMoveStringLiteralDfa0_1() {
+        switch (curChar) {
+            case 33:
+                jjmatchedKind = 37;
+                return jjMoveStringLiteralDfa1_1(0x800000000L);
+            case 37:
+                return jjStopAtPos(0, 51);
+            case 38:
+                return jjMoveStringLiteralDfa1_1(0x8000000000L);
+            case 40:
+                return jjStopAtPos(0, 19);
+            case 41:
+                return jjStopAtPos(0, 20);
+            case 42:
+                return jjStopAtPos(0, 45);
+            case 43:
+                return jjStopAtPos(0, 46);
+            case 44:
+                return jjStopAtPos(0, 24);
+            case 45:
+                return jjStopAtPos(0, 47);
+            case 46:
+                return jjStartNfaWithStates_1(0, 18, 1);
+            case 47:
+                return jjStopAtPos(0, 49);
+            case 58:
+                return jjStopAtPos(0, 23);
+            case 60:
+                jjmatchedKind = 27;
+                return jjMoveStringLiteralDfa1_1(0x80000000L);
+            case 61:
+                return jjMoveStringLiteralDfa1_1(0x200000000L);
+            case 62:
+                jjmatchedKind = 25;
+                return jjMoveStringLiteralDfa1_1(0x20000000L);
+            case 63:
+                return jjStopAtPos(0, 48);
+            case 91:
+                return jjStopAtPos(0, 21);
+            case 93:
+                return jjStopAtPos(0, 22);
+            case 97:
+                return jjMoveStringLiteralDfa1_1(0x10000000000L);
+            case 100:
+                return jjMoveStringLiteralDfa1_1(0x4000000000000L);
+            case 101:
+                return jjMoveStringLiteralDfa1_1(0x80400000000L);
+            case 102:
+                return jjMoveStringLiteralDfa1_1(0x8000L);
+            case 103:
+                return jjMoveStringLiteralDfa1_1(0x44000000L);
+            case 105:
+                return jjMoveStringLiteralDfa1_1(0x100000000000L);
+            case 108:
+                return jjMoveStringLiteralDfa1_1(0x110000000L);
+            case 109:
+                return jjMoveStringLiteralDfa1_1(0x10000000000000L);
+            case 110:
+                return jjMoveStringLiteralDfa1_1(0x5000010000L);
+            case 111:
+                return jjMoveStringLiteralDfa1_1(0x40000000000L);
+            case 116:
+                return jjMoveStringLiteralDfa1_1(0x4000L);
+            case 124:
+                return jjMoveStringLiteralDfa1_1(0x20000000000L);
+            case 125:
+                return jjStopAtPos(0, 17);
+            default:
+                return jjMoveNfa_1(0, 0);
+        }
+    }
+
+    private int jjMoveStringLiteralDfa1_1(long active0) {
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(0, active0);
             return 1;
-         if ((active0 & 0x141d555401c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            return 36;
-         }
-         return -1;
-      case 1:
-         if ((active0 & 0x41554000000L) != 0L)
-            return 36;
-         if ((active0 & 0x1419400001c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 1;
-            return 36;
-         }
-         return -1;
-      case 2:
-         if ((active0 & 0x18000001c000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 2;
-            return 36;
-         }
-         if ((active0 & 0x14014000000000L) != 0L)
-            return 36;
-         return -1;
-      case 3:
-         if ((active0 & 0x14000L) != 0L)
-            return 36;
-         if ((active0 & 0x180000008000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 3;
-            return 36;
-         }
-         return -1;
-      case 4:
-         if ((active0 & 0x80000008000L) != 0L)
-            return 36;
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 4;
-            return 36;
-         }
-         return -1;
-      case 5:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 5;
-            return 36;
-         }
-         return -1;
-      case 6:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 6;
-            return 36;
-         }
-         return -1;
-      case 7:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 7;
-            return 36;
-         }
-         return -1;
-      case 8:
-         if ((active0 & 0x100000000000L) != 0L)
-         {
-            jjmatchedKind = 53;
-            jjmatchedPos = 8;
-            return 36;
-         }
-         return -1;
-      default :
-         return -1;
-   }
-}
-private final int jjStartNfa_1(int pos, long active0)
-{
-   return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1);
-}
-private int jjMoveStringLiteralDfa0_1()
-{
-   switch(curChar)
-   {
-      case 33:
-         jjmatchedKind = 37;
-         return jjMoveStringLiteralDfa1_1(0x800000000L);
-      case 37:
-         return jjStopAtPos(0, 51);
-      case 38:
-         return jjMoveStringLiteralDfa1_1(0x8000000000L);
-      case 40:
-         return jjStopAtPos(0, 19);
-      case 41:
-         return jjStopAtPos(0, 20);
-      case 42:
-         return jjStopAtPos(0, 45);
-      case 43:
-         return jjStopAtPos(0, 46);
-      case 44:
-         return jjStopAtPos(0, 24);
-      case 45:
-         return jjStopAtPos(0, 47);
-      case 46:
-         return jjStartNfaWithStates_1(0, 18, 1);
-      case 47:
-         return jjStopAtPos(0, 49);
-      case 58:
-         return jjStopAtPos(0, 23);
-      case 60:
-         jjmatchedKind = 27;
-         return jjMoveStringLiteralDfa1_1(0x80000000L);
-      case 61:
-         return jjMoveStringLiteralDfa1_1(0x200000000L);
-      case 62:
-         jjmatchedKind = 25;
-         return jjMoveStringLiteralDfa1_1(0x20000000L);
-      case 63:
-         return jjStopAtPos(0, 48);
-      case 91:
-         return jjStopAtPos(0, 21);
-      case 93:
-         return jjStopAtPos(0, 22);
-      case 97:
-         return jjMoveStringLiteralDfa1_1(0x10000000000L);
-      case 100:
-         return jjMoveStringLiteralDfa1_1(0x4000000000000L);
-      case 101:
-         return jjMoveStringLiteralDfa1_1(0x80400000000L);
-      case 102:
-         return jjMoveStringLiteralDfa1_1(0x8000L);
-      case 103:
-         return jjMoveStringLiteralDfa1_1(0x44000000L);
-      case 105:
-         return jjMoveStringLiteralDfa1_1(0x100000000000L);
-      case 108:
-         return jjMoveStringLiteralDfa1_1(0x110000000L);
-      case 109:
-         return jjMoveStringLiteralDfa1_1(0x10000000000000L);
-      case 110:
-         return jjMoveStringLiteralDfa1_1(0x5000010000L);
-      case 111:
-         return jjMoveStringLiteralDfa1_1(0x40000000000L);
-      case 116:
-         return jjMoveStringLiteralDfa1_1(0x4000L);
-      case 124:
-         return jjMoveStringLiteralDfa1_1(0x20000000000L);
-      case 125:
-         return jjStopAtPos(0, 17);
-      default :
-         return jjMoveNfa_1(0, 0);
-   }
-}
-private int jjMoveStringLiteralDfa1_1(long active0)
-{
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(0, active0);
-      return 1;
-   }
-   switch(curChar)
-   {
-      case 38:
-         if ((active0 & 0x8000000000L) != 0L)
-            return jjStopAtPos(1, 39);
-         break;
-      case 61:
-         if ((active0 & 0x20000000L) != 0L)
-            return jjStopAtPos(1, 29);
-         else if ((active0 & 0x80000000L) != 0L)
-            return jjStopAtPos(1, 31);
-         else if ((active0 & 0x200000000L) != 0L)
-            return jjStopAtPos(1, 33);
-         else if ((active0 & 0x800000000L) != 0L)
-            return jjStopAtPos(1, 35);
-         break;
-      case 97:
-         return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
-      case 101:
-         if ((active0 & 0x40000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 30, 36);
-         else if ((active0 & 0x100000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 32, 36);
-         else if ((active0 & 0x1000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 36, 36);
-         break;
-      case 105:
-         return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
-      case 109:
-         return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
-      case 110:
-         return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
-      case 111:
-         return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
-      case 113:
-         if ((active0 & 0x400000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 34, 36);
-         break;
-      case 114:
-         if ((active0 & 0x40000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 42, 36);
-         return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
-      case 116:
-         if ((active0 & 0x4000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 26, 36);
-         else if ((active0 & 0x10000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 28, 36);
-         break;
-      case 117:
-         return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
-      case 124:
-         if ((active0 & 0x20000000000L) != 0L)
-            return jjStopAtPos(1, 41);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_1(0, active0);
-}
-private int jjMoveStringLiteralDfa2_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(0, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(1, active0);
-      return 2;
-   }
-   switch(curChar)
-   {
-      case 100:
-         if ((active0 & 0x10000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 40, 36);
-         else if ((active0 & 0x10000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 52, 36);
-         break;
-      case 108:
-         return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
-      case 112:
-         return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
-      case 115:
-         return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
-      case 116:
-         if ((active0 & 0x4000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 38, 36);
-         break;
-      case 117:
-         return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
-      case 118:
-         if ((active0 & 0x4000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 50, 36);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_1(1, active0);
-}
-private int jjMoveStringLiteralDfa3_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(1, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(2, active0);
-      return 3;
-   }
-   switch(curChar)
-   {
-      case 101:
-         if ((active0 & 0x4000L) != 0L)
-            return jjStartNfaWithStates_1(3, 14, 36);
-         break;
-      case 108:
-         if ((active0 & 0x10000L) != 0L)
-            return jjStartNfaWithStates_1(3, 16, 36);
-         break;
-      case 115:
-         return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
-      case 116:
-         return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
-      default :
-         break;
-   }
-   return jjStartNfa_1(2, active0);
-}
-private int jjMoveStringLiteralDfa4_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(2, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(3, active0);
-      return 4;
-   }
-   switch(curChar)
-   {
-      case 97:
-         return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
-      case 101:
-         if ((active0 & 0x8000L) != 0L)
-            return jjStartNfaWithStates_1(4, 15, 36);
-         break;
-      case 121:
-         if ((active0 & 0x80000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 43, 36);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_1(3, active0);
-}
-private int jjMoveStringLiteralDfa5_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(3, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(4, active0);
-      return 5;
-   }
-   switch(curChar)
-   {
-      case 110:
-         return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
-      default :
-         break;
-   }
-   return jjStartNfa_1(4, active0);
-}
-private int jjMoveStringLiteralDfa6_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(4, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(5, active0);
-      return 6;
-   }
-   switch(curChar)
-   {
-      case 99:
-         return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
-      default :
-         break;
-   }
-   return jjStartNfa_1(5, active0);
-}
-private int jjMoveStringLiteralDfa7_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(5, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(6, active0);
-      return 7;
-   }
-   switch(curChar)
-   {
-      case 101:
-         return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
-      default :
-         break;
-   }
-   return jjStartNfa_1(6, active0);
-}
-private int jjMoveStringLiteralDfa8_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(6, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(7, active0);
-      return 8;
-   }
-   switch(curChar)
-   {
-      case 111:
-         return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
-      default :
-         break;
-   }
-   return jjStartNfa_1(7, active0);
-}
-private int jjMoveStringLiteralDfa9_1(long old0, long active0)
-{
-   if (((active0 &= old0)) == 0L)
-      return jjStartNfa_1(7, old0);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_1(8, active0);
-      return 9;
-   }
-   switch(curChar)
-   {
-      case 102:
-         if ((active0 & 0x100000000000L) != 0L)
-            return jjStartNfaWithStates_1(9, 44, 36);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_1(8, active0);
-}
-private int jjStartNfaWithStates_1(int pos, int kind, int state)
-{
-   jjmatchedKind = kind;
-   jjmatchedPos = pos;
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) { return pos + 1; }
-   return jjMoveNfa_1(state, pos + 1);
-}
-static final long[] jjbitVec3 = {
-   0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L
-};
-static final long[] jjbitVec4 = {
-   0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
-};
-static final long[] jjbitVec5 = {
-   0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
-static final long[] jjbitVec6 = {
-   0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
-};
-static final long[] jjbitVec7 = {
-   0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
-};
-static final long[] jjbitVec8 = {
-   0x3fffffffffffL, 0x0L, 0x0L, 0x0L
-};
-private int jjMoveNfa_1(int startState, int curPos)
-{
-   int startsAt = 0;
-   jjnewStateCnt = 36;
-   int i = 1;
-   jjstateSet[0] = startState;
-   int kind = 0x7fffffff;
-   for (;;)
-   {
-      if (++jjround == 0x7fffffff)
-         ReInitRounds();
-      if (curChar < 64)
-      {
-         long l = 1L << curChar;
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-                  if ((0x3ff000000000000L & l) != 0L)
-                  {
-                     if (kind > 9)
-                        kind = 9;
-                     jjCheckNAddStates(4, 8);
-                  }
-                  else if ((0x1800000000L & l) != 0L)
-                  {
-                     if (kind > 53)
-                        kind = 53;
-                     jjCheckNAddTwoStates(34, 35);
-                  }
-                  else if (curChar == 39)
-                     jjCheckNAddStates(9, 13);
-                  else if (curChar == 34)
-                     jjCheckNAddStates(14, 18);
-                  else if (curChar == 46)
-                     jjCheckNAdd(1);
-                  break;
-               case 36:
-                  if ((0x3ff001000000000L & l) != 0L)
-                  {
-                     if (kind > 54)
-                        kind = 54;
-                     jjCheckNAdd(35);
-                  }
-                  if ((0x3ff001000000000L & l) != 0L)
-                  {
-                     if (kind > 53)
-                        kind = 53;
-                     jjCheckNAdd(34);
-                  }
-                  break;
-               case 1:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAddTwoStates(1, 2);
-                  break;
-               case 3:
-                  if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(4);
-                  break;
-               case 4:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAdd(4);
-                  break;
-               case 5:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 9)
-                     kind = 9;
-                  jjCheckNAddStates(4, 8);
-                  break;
-               case 6:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 9)
-                     kind = 9;
-                  jjCheckNAdd(6);
-                  break;
-               case 7:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(7, 8);
-                  break;
-               case 8:
-                  if (curChar != 46)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAddTwoStates(9, 10);
-                  break;
-               case 9:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAddTwoStates(9, 10);
-                  break;
-               case 11:
-                  if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(12);
-                  break;
-               case 12:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAdd(12);
-                  break;
-               case 13:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(13, 14);
-                  break;
-               case 15:
-                  if ((0x280000000000L & l) != 0L)
-                     jjCheckNAdd(16);
-                  break;
-               case 16:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 10)
-                     kind = 10;
-                  jjCheckNAdd(16);
-                  break;
-               case 17:
-                  if (curChar == 34)
-                     jjCheckNAddStates(14, 18);
-                  break;
-               case 18:
-                  if ((0xfffffffbffffffffL & l) != 0L)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 20:
-                  if (curChar == 34)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 21:
-                  if (curChar == 34 && kind > 12)
-                     kind = 12;
-                  break;
-               case 22:
-                  if ((0xfffffffbffffffffL & l) != 0L)
-                     jjCheckNAddTwoStates(22, 23);
-                  break;
-               case 24:
-                  if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               case 25:
-                  if (curChar == 39)
-                     jjCheckNAddStates(9, 13);
-                  break;
-               case 26:
-                  if ((0xffffff7fffffffffL & l) != 0L)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 28:
-                  if (curChar == 39)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 29:
-                  if (curChar == 39 && kind > 12)
-                     kind = 12;
-                  break;
-               case 30:
-                  if ((0xffffff7fffffffffL & l) != 0L)
-                     jjCheckNAddTwoStates(30, 31);
-                  break;
-               case 32:
-                  if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               case 33:
-                  if ((0x1800000000L & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAddTwoStates(34, 35);
-                  break;
-               case 34:
-                  if ((0x3ff001000000000L & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(34);
-                  break;
-               case 35:
-                  if ((0x3ff001000000000L & l) == 0L)
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(35);
-                  break;
-               default : break;
+        }
+        switch (curChar) {
+            case 38:
+                if ((active0 & 0x8000000000L) != 0L)
+                    return jjStopAtPos(1, 39);
+                break;
+            case 61:
+                if ((active0 & 0x20000000L) != 0L)
+                    return jjStopAtPos(1, 29);
+                else if ((active0 & 0x80000000L) != 0L)
+                    return jjStopAtPos(1, 31);
+                else if ((active0 & 0x200000000L) != 0L)
+                    return jjStopAtPos(1, 33);
+                else if ((active0 & 0x800000000L) != 0L)
+                    return jjStopAtPos(1, 35);
+                break;
+            case 97:
+                return jjMoveStringLiteralDfa2_1(active0, 0x8000L);
+            case 101:
+                if ((active0 & 0x40000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 30, 36);
+                else if ((active0 & 0x100000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 32, 36);
+                else if ((active0 & 0x1000000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 36, 36);
+                break;
+            case 105:
+                return jjMoveStringLiteralDfa2_1(active0, 0x4000000000000L);
+            case 109:
+                return jjMoveStringLiteralDfa2_1(active0, 0x80000000000L);
+            case 110:
+                return jjMoveStringLiteralDfa2_1(active0, 0x110000000000L);
+            case 111:
+                return jjMoveStringLiteralDfa2_1(active0, 0x10004000000000L);
+            case 113:
+                if ((active0 & 0x400000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 34, 36);
+                break;
+            case 114:
+                if ((active0 & 0x40000000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 42, 36);
+                return jjMoveStringLiteralDfa2_1(active0, 0x4000L);
+            case 116:
+                if ((active0 & 0x4000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 26, 36);
+                else if ((active0 & 0x10000000L) != 0L)
+                    return jjStartNfaWithStates_1(1, 28, 36);
+                break;
+            case 117:
+                return jjMoveStringLiteralDfa2_1(active0, 0x10000L);
+            case 124:
+                if ((active0 & 0x20000000000L) != 0L)
+                    return jjStopAtPos(1, 41);
+                break;
+            default:
+                break;
+        }
+        return jjStartNfa_1(0, active0);
+    }
+
+    private int jjMoveStringLiteralDfa2_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(0, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(1, active0);
+            return 2;
+        }
+        switch (curChar) {
+            case 100:
+                if ((active0 & 0x10000000000L) != 0L)
+                    return jjStartNfaWithStates_1(2, 40, 36);
+                else if ((active0 & 0x10000000000000L) != 0L)
+                    return jjStartNfaWithStates_1(2, 52, 36);
+                break;
+            case 108:
+                return jjMoveStringLiteralDfa3_1(active0, 0x18000L);
+            case 112:
+                return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L);
+            case 115:
+                return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L);
+            case 116:
+                if ((active0 & 0x4000000000L) != 0L)
+                    return jjStartNfaWithStates_1(2, 38, 36);
+                break;
+            case 117:
+                return jjMoveStringLiteralDfa3_1(active0, 0x4000L);
+            case 118:
+                if ((active0 & 0x4000000000000L) != 0L)
+                    return jjStartNfaWithStates_1(2, 50, 36);
+                break;
+            default:
+                break;
+        }
+        return jjStartNfa_1(1, active0);
+    }
+
+    private int jjMoveStringLiteralDfa3_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(1, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(2, active0);
+            return 3;
+        }
+        switch (curChar) {
+            case 101:
+                if ((active0 & 0x4000L) != 0L)
+                    return jjStartNfaWithStates_1(3, 14, 36);
+                break;
+            case 108:
+                if ((active0 & 0x10000L) != 0L)
+                    return jjStartNfaWithStates_1(3, 16, 36);
+                break;
+            case 115:
+                return jjMoveStringLiteralDfa4_1(active0, 0x8000L);
+            case 116:
+                return jjMoveStringLiteralDfa4_1(active0, 0x180000000000L);
+            default:
+                break;
+        }
+        return jjStartNfa_1(2, active0);
+    }
+
+    private int jjMoveStringLiteralDfa4_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(2, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(3, active0);
+            return 4;
+        }
+        switch (curChar) {
+            case 97:
+                return jjMoveStringLiteralDfa5_1(active0, 0x100000000000L);
+            case 101:
+                if ((active0 & 0x8000L) != 0L)
+                    return jjStartNfaWithStates_1(4, 15, 36);
+                break;
+            case 121:
+                if ((active0 & 0x80000000000L) != 0L)
+                    return jjStartNfaWithStates_1(4, 43, 36);
+                break;
+            default:
+                break;
+        }
+        return jjStartNfa_1(3, active0);
+    }
+
+    private int jjMoveStringLiteralDfa5_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(3, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(4, active0);
+            return 5;
+        }
+        switch (curChar) {
+            case 110:
+                return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L);
+            default:
+                break;
+        }
+        return jjStartNfa_1(4, active0);
+    }
+
+    private int jjMoveStringLiteralDfa6_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(4, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(5, active0);
+            return 6;
+        }
+        switch (curChar) {
+            case 99:
+                return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L);
+            default:
+                break;
+        }
+        return jjStartNfa_1(5, active0);
+    }
+
+    private int jjMoveStringLiteralDfa7_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(5, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(6, active0);
+            return 7;
+        }
+        switch (curChar) {
+            case 101:
+                return jjMoveStringLiteralDfa8_1(active0, 0x100000000000L);
+            default:
+                break;
+        }
+        return jjStartNfa_1(6, active0);
+    }
+
+    private int jjMoveStringLiteralDfa8_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(6, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(7, active0);
+            return 8;
+        }
+        switch (curChar) {
+            case 111:
+                return jjMoveStringLiteralDfa9_1(active0, 0x100000000000L);
+            default:
+                break;
+        }
+        return jjStartNfa_1(7, active0);
+    }
+
+    private int jjMoveStringLiteralDfa9_1(long old0, long active0) {
+        if (((active0 &= old0)) == 0L)
+            return jjStartNfa_1(7, old0);
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_1(8, active0);
+            return 9;
+        }
+        switch (curChar) {
+            case 102:
+                if ((active0 & 0x100000000000L) != 0L)
+                    return jjStartNfaWithStates_1(9, 44, 36);
+                break;
+            default:
+                break;
+        }
+        return jjStartNfa_1(8, active0);
+    }
+
+    private int jjStartNfaWithStates_1(int pos, int kind, int state) {
+        jjmatchedKind = kind;
+        jjmatchedPos = pos;
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            return pos + 1;
+        }
+        return jjMoveNfa_1(state, pos + 1);
+    }
+
+    static final long[] jjbitVec3 = {
+            0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L
+    };
+    static final long[] jjbitVec4 = {
+            0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
+    };
+    static final long[] jjbitVec5 = {
+            0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
+    };
+    static final long[] jjbitVec6 = {
+            0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
+    };
+    static final long[] jjbitVec7 = {
+            0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
+    };
+    static final long[] jjbitVec8 = {
+            0x3fffffffffffL, 0x0L, 0x0L, 0x0L
+    };
+
+    private int jjMoveNfa_1(int startState, int curPos) {
+        int startsAt = 0;
+        jjnewStateCnt = 36;
+        int i = 1;
+        jjstateSet[0] = startState;
+        int kind = 0x7fffffff;
+        for (; ; ) {
+            if (++jjround == 0x7fffffff)
+                ReInitRounds();
+            if (curChar < 64) {
+                long l = 1L << curChar;
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 0:
+                            if ((0x3ff000000000000L & l) != 0L) {
+                                if (kind > 9)
+                                    kind = 9;
+                                jjCheckNAddStates(4, 8);
+                            } else if ((0x1800000000L & l) != 0L) {
+                                if (kind > 53)
+                                    kind = 53;
+                                jjCheckNAddTwoStates(34, 35);
+                            } else if (curChar == 39)
+                                jjCheckNAddStates(9, 13);
+                            else if (curChar == 34)
+                                jjCheckNAddStates(14, 18);
+                            else if (curChar == 46)
+                                jjCheckNAdd(1);
+                            break;
+                        case 36:
+                            if ((0x3ff001000000000L & l) != 0L) {
+                                if (kind > 54)
+                                    kind = 54;
+                                jjCheckNAdd(35);
+                            }
+                            if ((0x3ff001000000000L & l) != 0L) {
+                                if (kind > 53)
+                                    kind = 53;
+                                jjCheckNAdd(34);
+                            }
+                            break;
+                        case 1:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAddTwoStates(1, 2);
+                            break;
+                        case 3:
+                            if ((0x280000000000L & l) != 0L)
+                                jjCheckNAdd(4);
+                            break;
+                        case 4:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAdd(4);
+                            break;
+                        case 5:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 9)
+                                kind = 9;
+                            jjCheckNAddStates(4, 8);
+                            break;
+                        case 6:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 9)
+                                kind = 9;
+                            jjCheckNAdd(6);
+                            break;
+                        case 7:
+                            if ((0x3ff000000000000L & l) != 0L)
+                                jjCheckNAddTwoStates(7, 8);
+                            break;
+                        case 8:
+                            if (curChar != 46)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAddTwoStates(9, 10);
+                            break;
+                        case 9:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAddTwoStates(9, 10);
+                            break;
+                        case 11:
+                            if ((0x280000000000L & l) != 0L)
+                                jjCheckNAdd(12);
+                            break;
+                        case 12:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAdd(12);
+                            break;
+                        case 13:
+                            if ((0x3ff000000000000L & l) != 0L)
+                                jjCheckNAddTwoStates(13, 14);
+                            break;
+                        case 15:
+                            if ((0x280000000000L & l) != 0L)
+                                jjCheckNAdd(16);
+                            break;
+                        case 16:
+                            if ((0x3ff000000000000L & l) == 0L)
+                                break;
+                            if (kind > 10)
+                                kind = 10;
+                            jjCheckNAdd(16);
+                            break;
+                        case 17:
+                            if (curChar == 34)
+                                jjCheckNAddStates(14, 18);
+                            break;
+                        case 18:
+                            if ((0xfffffffbffffffffL & l) != 0L)
+                                jjCheckNAddStates(19, 21);
+                            break;
+                        case 20:
+                            if (curChar == 34)
+                                jjCheckNAddStates(19, 21);
+                            break;
+                        case 21:
+                            if (curChar == 34 && kind > 12)
+                                kind = 12;
+                            break;
+                        case 22:
+                            if ((0xfffffffbffffffffL & l) != 0L)
+                                jjCheckNAddTwoStates(22, 23);
+                            break;
+                        case 24:
+                            if ((0xfffffffbffffffffL & l) != 0L && kind > 13)
+                                kind = 13;
+                            break;
+                        case 25:
+                            if (curChar == 39)
+                                jjCheckNAddStates(9, 13);
+                            break;
+                        case 26:
+                            if ((0xffffff7fffffffffL & l) != 0L)
+                                jjCheckNAddStates(22, 24);
+                            break;
+                        case 28:
+                            if (curChar == 39)
+                                jjCheckNAddStates(22, 24);
+                            break;
+                        case 29:
+                            if (curChar == 39 && kind > 12)
+                                kind = 12;
+                            break;
+                        case 30:
+                            if ((0xffffff7fffffffffL & l) != 0L)
+                                jjCheckNAddTwoStates(30, 31);
+                            break;
+                        case 32:
+                            if ((0xffffff7fffffffffL & l) != 0L && kind > 13)
+                                kind = 13;
+                            break;
+                        case 33:
+                            if ((0x1800000000L & l) == 0L)
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAddTwoStates(34, 35);
+                            break;
+                        case 34:
+                            if ((0x3ff001000000000L & l) == 0L)
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAdd(34);
+                            break;
+                        case 35:
+                            if ((0x3ff001000000000L & l) == 0L)
+                                break;
+                            if (kind > 54)
+                                kind = 54;
+                            jjCheckNAdd(35);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
+            } else if (curChar < 128) {
+                long l = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 0:
+                            if ((0x7fffffe87fffffeL & l) == 0L)
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAddTwoStates(34, 35);
+                            break;
+                        case 36:
+                            if ((0x7fffffe87fffffeL & l) != 0L) {
+                                if (kind > 54)
+                                    kind = 54;
+                                jjCheckNAdd(35);
+                            }
+                            if ((0x7fffffe87fffffeL & l) != 0L) {
+                                if (kind > 53)
+                                    kind = 53;
+                                jjCheckNAdd(34);
+                            }
+                            break;
+                        case 2:
+                            if ((0x2000000020L & l) != 0L)
+                                jjAddStates(25, 26);
+                            break;
+                        case 10:
+                            if ((0x2000000020L & l) != 0L)
+                                jjAddStates(27, 28);
+                            break;
+                        case 14:
+                            if ((0x2000000020L & l) != 0L)
+                                jjAddStates(29, 30);
+                            break;
+                        case 18:
+                            if ((0xffffffffefffffffL & l) != 0L)
+                                jjCheckNAddStates(19, 21);
+                            break;
+                        case 19:
+                            if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 20;
+                            break;
+                        case 20:
+                            if (curChar == 92)
+                                jjCheckNAddStates(19, 21);
+                            break;
+                        case 22:
+                            if ((0xffffffffefffffffL & l) != 0L)
+                                jjAddStates(31, 32);
+                            break;
+                        case 23:
+                            if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 24;
+                            break;
+                        case 24:
+                        case 32:
+                            if ((0xffffffffefffffffL & l) != 0L && kind > 13)
+                                kind = 13;
+                            break;
+                        case 26:
+                            if ((0xffffffffefffffffL & l) != 0L)
+                                jjCheckNAddStates(22, 24);
+                            break;
+                        case 27:
+                            if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 28;
+                            break;
+                        case 28:
+                            if (curChar == 92)
+                                jjCheckNAddStates(22, 24);
+                            break;
+                        case 30:
+                            if ((0xffffffffefffffffL & l) != 0L)
+                                jjAddStates(33, 34);
+                            break;
+                        case 31:
+                            if (curChar == 92)
+                                jjstateSet[jjnewStateCnt++] = 32;
+                            break;
+                        case 34:
+                            if ((0x7fffffe87fffffeL & l) == 0L)
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAdd(34);
+                            break;
+                        case 35:
+                            if ((0x7fffffe87fffffeL & l) == 0L)
+                                break;
+                            if (kind > 54)
+                                kind = 54;
+                            jjCheckNAdd(35);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
+            } else {
+                int hiByte = (int) (curChar >> 8);
+                int i1 = hiByte >> 6;
+                long l1 = 1L << (hiByte & 077);
+                int i2 = (curChar & 0xff) >> 6;
+                long l2 = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                        case 0:
+                            if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAddTwoStates(34, 35);
+                            break;
+                        case 36:
+                            if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
+                                if (kind > 53)
+                                    kind = 53;
+                                jjCheckNAdd(34);
+                            }
+                            if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
+                                if (kind > 54)
+                                    kind = 54;
+                                jjCheckNAdd(35);
+                            }
+                            break;
+                        case 18:
+                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                                jjAddStates(19, 21);
+                            break;
+                        case 22:
+                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                                jjAddStates(31, 32);
+                            break;
+                        case 24:
+                        case 32:
+                            if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
+                                kind = 13;
+                            break;
+                        case 26:
+                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                                jjAddStates(22, 24);
+                            break;
+                        case 30:
+                            if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                                jjAddStates(33, 34);
+                            break;
+                        case 34:
+                            if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                                break;
+                            if (kind > 53)
+                                kind = 53;
+                            jjCheckNAdd(34);
+                            break;
+                        case 35:
+                            if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
+                                break;
+                            if (kind > 54)
+                                kind = 54;
+                            jjCheckNAdd(35);
+                            break;
+                        default:
+                            break;
+                    }
+                } while (i != startsAt);
             }
-         } while(i != startsAt);
-      }
-      else if (curChar < 128)
-      {
-         long l = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAddTwoStates(34, 35);
-                  break;
-               case 36:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 54)
-                        kind = 54;
-                     jjCheckNAdd(35);
-                  }
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 53)
-                        kind = 53;
-                     jjCheckNAdd(34);
-                  }
-                  break;
-               case 2:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(25, 26);
-                  break;
-               case 10:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(27, 28);
-                  break;
-               case 14:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(29, 30);
-                  break;
-               case 18:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 19:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 20;
-                  break;
-               case 20:
-                  if (curChar == 92)
-                     jjCheckNAddStates(19, 21);
-                  break;
-               case 22:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjAddStates(31, 32);
-                  break;
-               case 23:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 24;
-                  break;
-               case 24:
-               case 32:
-                  if ((0xffffffffefffffffL & l) != 0L && kind > 13)
-                     kind = 13;
-                  break;
-               case 26:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 27:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 28;
-                  break;
-               case 28:
-                  if (curChar == 92)
-                     jjCheckNAddStates(22, 24);
-                  break;
-               case 30:
-                  if ((0xffffffffefffffffL & l) != 0L)
-                     jjAddStates(33, 34);
-                  break;
-               case 31:
-                  if (curChar == 92)
-                     jjstateSet[jjnewStateCnt++] = 32;
-                  break;
-               case 34:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(34);
-                  break;
-               case 35:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(35);
-                  break;
-               default : break;
+            if (kind != 0x7fffffff) {
+                jjmatchedKind = kind;
+                jjmatchedPos = curPos;
+                kind = 0x7fffffff;
             }
-         } while(i != startsAt);
-      }
-      else
-      {
-         int hiByte = (int)(curChar >> 8);
-         int i1 = hiByte >> 6;
-         long l1 = 1L << (hiByte & 077);
-         int i2 = (curChar & 0xff) >> 6;
-         long l2 = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAddTwoStates(34, 35);
-                  break;
-               case 36:
-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                  {
-                     if (kind > 53)
-                        kind = 53;
-                     jjCheckNAdd(34);
-                  }
-                  if (jjCanMove_1(hiByte, i1, i2, l1, l2))
-                  {
-                     if (kind > 54)
-                        kind = 54;
-                     jjCheckNAdd(35);
-                  }
-                  break;
-               case 18:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(19, 21);
-                  break;
-               case 22:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(31, 32);
-                  break;
-               case 24:
-               case 32:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 13)
-                     kind = 13;
-                  break;
-               case 26:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(22, 24);
-                  break;
-               case 30:
-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
-                     jjAddStates(33, 34);
-                  break;
-               case 34:
-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 53)
-                     kind = 53;
-                  jjCheckNAdd(34);
-                  break;
-               case 35:
-                  if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
-                     break;
-                  if (kind > 54)
-                     kind = 54;
-                  jjCheckNAdd(35);
-                  break;
-               default : break;
+            ++curPos;
+            if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
+                return curPos;
+            try {
+                curChar = input_stream.readChar();
+            } catch (java.io.IOException e) {
+                return curPos;
             }
-         } while(i != startsAt);
-      }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 36 - (jjnewStateCnt = startsAt)))
-         return curPos;
-      try { curChar = input_stream.readChar(); }
-      catch(java.io.IOException e) { return curPos; }
-   }
-}
-static final int[] jjnextStates = {
-   0, 1, 3, 5, 6, 7, 8, 13, 14, 26, 27, 29, 30, 31, 18, 19, 
-   21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16, 22, 
-   23, 30, 31, 
-};
-private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
-{
-   switch(hiByte)
-   {
-      case 0:
-         return ((jjbitVec2[i2] & l2) != 0L);
-      default :
-         if ((jjbitVec0[i1] & l1) != 0L)
-            return true;
-         return false;
-   }
-}
-private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
-{
-   switch(hiByte)
-   {
-      case 0:
-         return ((jjbitVec4[i2] & l2) != 0L);
-      case 48:
-         return ((jjbitVec5[i2] & l2) != 0L);
-      case 49:
-         return ((jjbitVec6[i2] & l2) != 0L);
-      case 51:
-         return ((jjbitVec7[i2] & l2) != 0L);
-      case 61:
-         return ((jjbitVec8[i2] & l2) != 0L);
-      default :
-         if ((jjbitVec3[i1] & l1) != 0L)
-            return true;
-         return false;
-   }
-}
+        }
+    }
 
-/** Token literal values. */
-public static final String[] jjstrLiteralImages = {
-"", null, "\44\173", "\43\173", null, null, null, null, null, null, null, null, 
-null, null, "\164\162\165\145", "\146\141\154\163\145", "\156\165\154\154", "\175", 
-"\56", "\50", "\51", "\133", "\135", "\72", "\54", "\76", "\147\164", "\74", 
-"\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75", 
-"\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162", 
-"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57", 
-"\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null, };
+    static final int[] jjnextStates = {
+            0, 1, 3, 5, 6, 7, 8, 13, 14, 26, 27, 29, 30, 31, 18, 19,
+            21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16, 22,
+            23, 30, 31,
+    };
 
-/** Lexer state names. */
-public static final String[] lexStateNames = {
-   "DEFAULT",
-   "IN_EXPRESSION",
-};
+    private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) {
+        switch (hiByte) {
+            case 0:
+                return ((jjbitVec2[i2] & l2) != 0L);
+            default:
+                if ((jjbitVec0[i1] & l1) != 0L)
+                    return true;
+                return false;
+        }
+    }
 
-/** Lex State array. */
-public static final int[] jjnewLexState = {
-   -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-};
-static final long[] jjtoToken = {
-   0x47ffffffffff60fL, 
-};
-static final long[] jjtoSkip = {
-   0x1f0L, 
-};
-protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[36];
-private final int[] jjstateSet = new int[72];
-protected char curChar;
-/** Constructor. */
-public ELParserTokenManager(SimpleCharStream stream){
-   if (SimpleCharStream.staticFlag)
-      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
-   input_stream = stream;
-}
+    private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) {
+        switch (hiByte) {
+            case 0:
+                return ((jjbitVec4[i2] & l2) != 0L);
+            case 48:
+                return ((jjbitVec5[i2] & l2) != 0L);
+            case 49:
+                return ((jjbitVec6[i2] & l2) != 0L);
+            case 51:
+                return ((jjbitVec7[i2] & l2) != 0L);
+            case 61:
+                return ((jjbitVec8[i2] & l2) != 0L);
+            default:
+                if ((jjbitVec3[i1] & l1) != 0L)
+                    return true;
+                return false;
+        }
+    }
 
-/** Constructor. */
-public ELParserTokenManager(SimpleCharStream stream, int lexState){
-   this(stream);
-   SwitchTo(lexState);
-}
+    /**
+     * Token literal values.
+     */
+    public static final String[] jjstrLiteralImages = {
+            "", null, "\44\173", "\43\173", null, null, null, null, null, null, null, null,
+            null, null, "\164\162\165\145", "\146\141\154\163\145", "\156\165\154\154", "\175",
+            "\56", "\50", "\51", "\133", "\135", "\72", "\54", "\76", "\147\164", "\74",
+            "\154\164", "\76\75", "\147\145", "\74\75", "\154\145", "\75\75", "\145\161", "\41\75",
+            "\156\145", "\41", "\156\157\164", "\46\46", "\141\156\144", "\174\174", "\157\162",
+            "\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146", "\52", "\53", "\55", "\77", "\57",
+            "\144\151\166", "\45", "\155\157\144", null, null, null, null, null, null,};
 
-/** Reinitialise parser. */
-public void ReInit(SimpleCharStream stream)
-{
-   jjmatchedPos = jjnewStateCnt = 0;
-   curLexState = defaultLexState;
-   input_stream = stream;
-   ReInitRounds();
-}
-private void ReInitRounds()
-{
-   int i;
-   jjround = 0x80000001;
-   for (i = 36; i-- > 0;)
-      jjrounds[i] = 0x80000000;
-}
+    /**
+     * Lexer state names.
+     */
+    public static final String[] lexStateNames = {
+            "DEFAULT",
+            "IN_EXPRESSION",
+    };
 
-/** Reinitialise parser. */
-public void ReInit(SimpleCharStream stream, int lexState)
-{
-   ReInit(stream);
-   SwitchTo(lexState);
-}
+    /**
+     * Lex State array.
+     */
+    public static final int[] jjnewLexState = {
+            -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1,
+    };
+    static final long[] jjtoToken = {
+            0x47ffffffffff60fL,
+    };
+    static final long[] jjtoSkip = {
+            0x1f0L,
+    };
+    protected SimpleCharStream input_stream;
+    private final int[] jjrounds = new int[36];
+    private final int[] jjstateSet = new int[72];
+    protected char curChar;
 
-/** Switch to specified lex state. */
-public void SwitchTo(int lexState)
-{
-   if (lexState >= 2 || lexState < 0)
-      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
-   else
-      curLexState = lexState;
-}
+    /**
+     * Constructor.
+     *
+     * @param stream  simple char stream
+     */
+    public ELParserTokenManager(SimpleCharStream stream) {
+        if (SimpleCharStream.staticFlag)
+            throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+        input_stream = stream;
+    }
 
-protected Token jjFillToken()
-{
-   final Token t;
-   final String curTokenImage;
-   final int beginLine;
-   final int endLine;
-   final int beginColumn;
-   final int endColumn;
-   String im = jjstrLiteralImages[jjmatchedKind];
-   curTokenImage = (im == null) ? input_stream.GetImage() : im;
-   beginLine = input_stream.getBeginLine();
-   beginColumn = input_stream.getBeginColumn();
-   endLine = input_stream.getEndLine();
-   endColumn = input_stream.getEndColumn();
-   t = Token.newToken(jjmatchedKind, curTokenImage);
+    /**
+     * Constructor.
+     *
+     * @param stream  simple char stream
+     * @param lexState state
+     */
+    public ELParserTokenManager(SimpleCharStream stream, int lexState) {
+        this(stream);
+        SwitchTo(lexState);
+    }
 
-   t.beginLine = beginLine;
-   t.endLine = endLine;
-   t.beginColumn = beginColumn;
-   t.endColumn = endColumn;
+    /**
+     * Reinitialise parser.
+     *
+     * @param stream  simple char stream
+     */
+    public void ReInit(SimpleCharStream stream) {
+        jjmatchedPos = jjnewStateCnt = 0;
+        curLexState = defaultLexState;
+        input_stream = stream;
+        ReInitRounds();
+    }
 
-   return t;
-}
+    private void ReInitRounds() {
+        int i;
+        jjround = 0x80000001;
+        for (i = 36; i-- > 0; )
+            jjrounds[i] = 0x80000000;
+    }
 
-int curLexState = 0;
-int defaultLexState = 0;
-int jjnewStateCnt;
-int jjround;
-int jjmatchedPos;
-int jjmatchedKind;
+    /**
+     * Reinitialise parser.
+     *
+     * @param stream  simple char stream
+     * @param lexState state
+     */
+    public void ReInit(SimpleCharStream stream, int lexState) {
+        ReInit(stream);
+        SwitchTo(lexState);
+    }
 
-/** Get the next Token. */
-public Token getNextToken() 
-{
-  Token matchedToken;
-  int curPos = 0;
+    /**
+     * Switch to specified lex state.
+     *
+     * @param lexState state
+     */
+    public void SwitchTo(int lexState) {
+        if (lexState >= 2 || lexState < 0)
+            throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+        else
+            curLexState = lexState;
+    }
 
-  EOFLoop :
-  for (;;)
-  {
-   try
-   {
-      curChar = input_stream.BeginToken();
-   }
-   catch(java.io.IOException e)
-   {
-      jjmatchedKind = 0;
-      matchedToken = jjFillToken();
-      return matchedToken;
-   }
+    protected Token jjFillToken() {
+        final Token t;
+        final String curTokenImage;
+        final int beginLine;
+        final int endLine;
+        final int beginColumn;
+        final int endColumn;
+        String im = jjstrLiteralImages[jjmatchedKind];
+        curTokenImage = (im == null) ? input_stream.GetImage() : im;
+        beginLine = input_stream.getBeginLine();
+        beginColumn = input_stream.getBeginColumn();
+        endLine = input_stream.getEndLine();
+        endColumn = input_stream.getEndColumn();
+        t = Token.newToken(jjmatchedKind, curTokenImage);
 
-   switch(curLexState)
-   {
-     case 0:
-       jjmatchedKind = 0x7fffffff;
-       jjmatchedPos = 0;
-       curPos = jjMoveStringLiteralDfa0_0();
-       break;
-     case 1:
-       try { input_stream.backup(0);
-          while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
-             curChar = input_stream.BeginToken();
-       }
-       catch (java.io.IOException e1) { continue EOFLoop; }
-       jjmatchedKind = 0x7fffffff;
-       jjmatchedPos = 0;
-       curPos = jjMoveStringLiteralDfa0_1();
-       if (jjmatchedPos == 0 && jjmatchedKind > 58)
-       {
-          jjmatchedKind = 58;
-       }
-       break;
-   }
-     if (jjmatchedKind != 0x7fffffff)
-     {
-        if (jjmatchedPos + 1 < curPos)
-           input_stream.backup(curPos - jjmatchedPos - 1);
-        if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
-        {
-           matchedToken = jjFillToken();
-       if (jjnewLexState[jjmatchedKind] != -1)
-         curLexState = jjnewLexState[jjmatchedKind];
-           return matchedToken;
-        }
-        else
-        {
-         if (jjnewLexState[jjmatchedKind] != -1)
-           curLexState = jjnewLexState[jjmatchedKind];
-           continue EOFLoop;
+        t.beginLine = beginLine;
+        t.endLine = endLine;
+        t.beginColumn = beginColumn;
+        t.endColumn = endColumn;
+
+        return t;
+    }
+
+    int curLexState = 0;
+    int defaultLexState = 0;
+    int jjnewStateCnt;
+    int jjround;
+    int jjmatchedPos;
+    int jjmatchedKind;
+
+    /**
+     * @return the next Token.
+     */
+    public Token getNextToken() {
+        Token matchedToken;
+        int curPos = 0;
+
+        EOFLoop:
+        for (; ; ) {
+            try {
+                curChar = input_stream.BeginToken();
+            } catch (java.io.IOException e) {
+                jjmatchedKind = 0;
+                matchedToken = jjFillToken();
+                return matchedToken;
+            }
+
+            switch (curLexState) {
+                case 0:
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_0();
+                    break;
+                case 1:
+                    try {
+                        input_stream.backup(0);
+                        while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
+                            curChar = input_stream.BeginToken();
+                    } catch (java.io.IOException e1) {
+                        continue EOFLoop;
+                    }
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_1();
+                    if (jjmatchedPos == 0 && jjmatchedKind > 58) {
+                        jjmatchedKind = 58;
+                    }
+                    break;
+            }
+            if (jjmatchedKind != 0x7fffffff) {
+                if (jjmatchedPos + 1 < curPos)
+                    input_stream.backup(curPos - jjmatchedPos - 1);
+                if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+                    matchedToken = jjFillToken();
+                    if (jjnewLexState[jjmatchedKind] != -1)
+                        curLexState = jjnewLexState[jjmatchedKind];
+                    return matchedToken;
+                } else {
+                    if (jjnewLexState[jjmatchedKind] != -1)
+                        curLexState = jjnewLexState[jjmatchedKind];
+                    continue EOFLoop;
+                }
+            }
+            int error_line = input_stream.getEndLine();
+            int error_column = input_stream.getEndColumn();
+            String error_after = null;
+            boolean EOFSeen = false;
+            try {
+                input_stream.readChar();
+                input_stream.backup(1);
+            } catch (java.io.IOException e1) {
+                EOFSeen = true;
+                error_after = curPos <= 1 ? "" : input_stream.GetImage();
+         

<TRUNCATED>

[14/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
index 1c84b31..c946d70 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
@@ -344,6 +344,7 @@ public class XWorkConverter extends DefaultTypeConverter {
      * Looks for a TypeConverter in the default mappings.
      *
      * @param className name of the class the TypeConverter must handle
+     * @param isPrimitive is primitive?
      * @return a TypeConverter to handle the specified class or null if none can be found
      */
     public TypeConverter lookup(String className, boolean isPrimitive) {
@@ -521,10 +522,11 @@ public class XWorkConverter extends DefaultTypeConverter {
     /**
      * Looks for converter mappings for the specified class, traversing up its class hierarchy and interfaces and adding
      * any additional mappings it may find.  Mappings lower in the hierarchy have priority over those higher in the
-     * hierarcy.
+     * hierarchy.
      *
      * @param clazz the class to look for converter mappings for
      * @return the converter mappings
+     * @throws Exception in case of any errors
      */
     protected Map<String, Object> buildConverterMapping(Class clazz) throws Exception {
         Map<String, Object> mapping = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/metadata/ConversionDescription.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/metadata/ConversionDescription.java b/core/src/main/java/com/opensymphony/xwork2/conversion/metadata/ConversionDescription.java
index eeece95..3dc59dc 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/metadata/ConversionDescription.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/metadata/ConversionDescription.java
@@ -61,7 +61,7 @@ public class ConversionDescription {
     /**
      * Creates an ConversionDescription with the specified property name.
      *
-     * @param property
+     * @param property property
      */
     public ConversionDescription(String property) {
         this.property = property;
@@ -90,10 +90,7 @@ public class ConversionDescription {
     }
 
     /**
-     * Sets the rule prefix for COLLECTION_PREFIX or MAP_PREFIX key.
-     * Defaults to en empty String.
-     *
-     * @param rule
+     * @param rule the rule prefix for COLLECTION_PREFIX or MAP_PREFIX key. Defaults to en empty String.
      */
     public void setRule(String rule) {
         if (rule != null && rule.length() > 0) {
@@ -167,7 +164,7 @@ public class ConversionDescription {
     /**
      * Returns the fullQualifiedClassName attribute is used to create the special <code>conversion.properties</code> file name.
      *
-     * @return fullQualifiedClassName
+     * @return full qualified class name
      */
     public String getFullQualifiedClassName() {
         return fullQualifiedClassName;
@@ -176,7 +173,7 @@ public class ConversionDescription {
     /**
      * The fullQualifiedClassName attribute is used to create the special <code>conversion.properties</code> file name.
      *
-     * @param fullQualifiedClassName
+     * @param fullQualifiedClassName a full qualified class name
      */
     public void setFullQualifiedClassName(String fullQualifiedClassName) {
         this.fullQualifiedClassName = fullQualifiedClassName;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java b/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
index d33cb1d..4cc41a9 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
@@ -11,6 +11,15 @@ public interface ActionFactory {
 
     /**
      * Builds action instance
+     *
+     * @param actionName name of the action
+     * @param namespace namespace for the action
+     * @param config action config
+     * @param extraContext extra context map
+     *
+     * @return action object
+     *
+     * @throws Exception in case of any errors
      */
     Object buildAction(String actionName, String namespace, ActionConfig config, Map<String, Object> extraContext) throws Exception;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/factory/ConverterFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/factory/ConverterFactory.java b/core/src/main/java/com/opensymphony/xwork2/factory/ConverterFactory.java
index 289eefe..81f1d4b 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/ConverterFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/ConverterFactory.java
@@ -14,7 +14,10 @@ public interface ConverterFactory {
      *
      * @param converterClass to instantiate
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     *
      * @return instance of converterClass with inject dependencies
+     *
+     * @throws Exception in case of any errors
      */
     TypeConverter buildConverter(Class<? extends TypeConverter> converterClass, Map<String, Object> extraContext) throws Exception;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/factory/InterceptorFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/factory/InterceptorFactory.java b/core/src/main/java/com/opensymphony/xwork2/factory/InterceptorFactory.java
index 742e7ab..d12601c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/InterceptorFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/InterceptorFactory.java
@@ -22,6 +22,10 @@ public interface InterceptorFactory {
      * @param interceptorConfig    the InterceptorConfig from the configuration
      * @param interceptorRefParams a Map of params provided in the Interceptor reference in the
      *                             Action mapping or InterceptorStack definition
+     *
+     * @return interceptor
+     *
+     * @throws ConfigurationException in case of any configuration errors
      */
     Interceptor buildInterceptor(InterceptorConfig interceptorConfig, Map<String, String> interceptorRefParams) throws ConfigurationException;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/factory/UnknownHandlerFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/factory/UnknownHandlerFactory.java b/core/src/main/java/com/opensymphony/xwork2/factory/UnknownHandlerFactory.java
index 244f3ab..9fe8687 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/UnknownHandlerFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/UnknownHandlerFactory.java
@@ -14,7 +14,10 @@ public interface UnknownHandlerFactory {
      *
      * @param unknownHandlerName name of unknown handler defined in struts.xml
      * @param extraContext extra params
+     *
      * @return instance of {@link com.opensymphony.xwork2.UnknownHandler} with injected dependencies
+     *
+     * @throws Exception in case of any errors
      */
     UnknownHandler buildUnknownHandler(String unknownHandlerName, Map<String, Object> extraContext) throws Exception;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/factory/ValidatorFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/factory/ValidatorFactory.java b/core/src/main/java/com/opensymphony/xwork2/factory/ValidatorFactory.java
index bbaa36e..f0beaa3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/ValidatorFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/ValidatorFactory.java
@@ -13,8 +13,12 @@ public interface ValidatorFactory {
      * Build a Validator of the given type and set the parameters on it
      *
      * @param className the type of Validator to build
-     * @param params    property name -> value Map to set onto the Validator instance
+     * @param params    property name -&gt; value Map to set onto the Validator instance
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     *
+     * @return a validator instance
+     *
+     * @throws Exception in case of any errors
      */
     Validator buildValidator(String className, Map<String, Object> params, Map<String, Object> extraContext) throws Exception;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/Container.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/Container.java b/core/src/main/java/com/opensymphony/xwork2/inject/Container.java
index bca6032..8c3ea4b 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/Container.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/Container.java
@@ -20,15 +20,18 @@ import java.io.Serializable;
 import java.util.Set;
 
 /**
+ * <p>
  * Injects dependencies into constructors, methods and fields annotated with
  * {@link Inject}. Immutable.
+ * </p>
  *
  * <p>When injecting a method or constructor, you can additionally annotate
  * its parameters with {@link Inject} and specify a dependency name. When a
  * parameter has no annotation, the container uses the name from the method or
  * constructor's {@link Inject} annotation respectively.
+ * </p>
  *
- * <p>For example:
+ * <p>For example:</p>
  *
  * <pre>
  *  class Foo {
@@ -55,7 +58,7 @@ import java.util.Set;
  *  }
  * </pre>
  *
- * <p>To create and inject an instance of {@code Foo}:
+ * <p>To create and inject an instance of {@code Foo}:</p>
  *
  * <pre>
  *  Container c = ...;
@@ -74,23 +77,38 @@ public interface Container extends Serializable {
 
   /**
    * Injects dependencies into the fields and methods of an existing object.
+   *
+   * @param o object to inject
    */
   void inject(Object o);
 
   /**
    * Creates and injects a new instance of type {@code implementation}.
+   *
+   * @param <T> type
+   * @param implementation of dependency
+   * @return instance
    */
   <T> T inject(Class<T> implementation);
 
   /**
    * Gets an instance of the given dependency which was declared in
    * {@link com.opensymphony.xwork2.inject.ContainerBuilder}.
+   *
+   * @param <T> type
+   * @param type of dependency
+   * @param name of dependency
+   * @return instance
    */
   <T> T getInstance(Class<T> type, String name);
 
   /**
    * Convenience method.&nbsp;Equivalent to {@code getInstance(type,
    * DEFAULT_NAME)}.
+   *
+   * @param <T> type
+   * @param type of dependency
+   * @return instance
    */
   <T> T getInstance(Class<T> type);
   
@@ -103,6 +121,8 @@ public interface Container extends Serializable {
 
   /**
    * Sets the scope strategy for the current thread.
+   *
+   * @param scopeStrategy scope strategy
    */
   void setScopeStrategy(Scope.Strategy scopeStrategy);
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/ContainerBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/ContainerBuilder.java b/core/src/main/java/com/opensymphony/xwork2/inject/ContainerBuilder.java
index 064aac3..447a3d0 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/ContainerBuilder.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/ContainerBuilder.java
@@ -100,6 +100,8 @@ public final class ContainerBuilder {
 
     /**
      * Ensures a key isn't already mapped.
+     *
+     * @param key the key to check
      */
     private void checkKey(Key<?> key) {
         if (factories.containsKey(key) && !allowDuplicates) {
@@ -110,6 +112,7 @@ public final class ContainerBuilder {
     /**
      * Maps a factory to a given dependency type and name.
      *
+     * @param <T>     type
      * @param type    of dependency
      * @param name    of dependency
      * @param factory creates objects to inject
@@ -146,6 +149,11 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, factory, scope)}.
      *
+     * @param <T> type
+     * @param type of dependency
+     * @param factory of dependency
+     * @param scope scope of injected instances
+     * @return a container builder
      * @see #factory(Class, String, Factory, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, Factory<? extends T> factory, Scope scope) {
@@ -156,6 +164,11 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type, name, factory,
      * Scope.PROTOTYPE)}.
      *
+     * @param <T> type
+     * @param type of dependency
+     * @param name of dependency
+     * @param factory of dependency
+     * @return a container builder
      * @see #factory(Class, String, Factory, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, String name, Factory<? extends T> factory) {
@@ -166,6 +179,10 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, factory, Scope.PROTOTYPE)}.
      *
+     * @param <T> type
+     * @param type of dependency
+     * @param factory of dependency
+     * @return a container builder
      * @see #factory(Class, String, Factory, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, Factory<? extends T> factory) {
@@ -176,6 +193,7 @@ public final class ContainerBuilder {
      * Maps an implementation class to a given dependency type and name. Creates
      * instances using the container, recursively injecting dependencies.
      *
+     * @param <T>            type
      * @param type           of dependency
      * @param name           of dependency
      * @param implementation class
@@ -225,6 +243,7 @@ public final class ContainerBuilder {
      * is found.
      * </p>
      *
+     * @param <T>            type
      * @param type           of dependency
      * @param name           of dependency
      * @param implementation class
@@ -241,6 +260,10 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, implementation)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param implementation class
+     * @return this builder
      * @see #factory(Class, String, Class)
      */
     public <T> ContainerBuilder factory(Class<T> type, Class<? extends T> implementation) {
@@ -251,6 +274,9 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, type)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @return this builder
      * @see #factory(Class, String, Class)
      */
     public <T> ContainerBuilder factory(Class<T> type) {
@@ -260,6 +286,10 @@ public final class ContainerBuilder {
     /**
      * Convenience method.&nbsp;Equivalent to {@code factory(type, name, type)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param name           of dependency
+     * @return this builder
      * @see #factory(Class, String, Class)
      */
     public <T> ContainerBuilder factory(Class<T> type, String name) {
@@ -270,6 +300,11 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, implementation, scope)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param implementation class
+     * @param scope          the scope
+     * @return this builder
      * @see #factory(Class, String, Class, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, Class<? extends T> implementation, Scope scope) {
@@ -280,6 +315,10 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type,
      * Container.DEFAULT_NAME, type, scope)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param scope          the scope
+     * @return this builder
      * @see #factory(Class, String, Class, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, Scope scope) {
@@ -290,6 +329,11 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code factory(type, name, type,
      * scope)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param name           of dependency
+     * @param scope          the scope
+     * @return this builder
      * @see #factory(Class, String, Class, Scope)
      */
     public <T> ContainerBuilder factory(Class<T> type, String name, Scope scope) {
@@ -300,6 +344,10 @@ public final class ContainerBuilder {
      * Convenience method.&nbsp;Equivalent to {@code alias(type, Container.DEFAULT_NAME,
      * type)}.
      *
+     * @param <T>            type
+     * @param type           of dependency
+     * @param alias          of dependency
+     * @return this builder
      * @see #alias(Class, String, String)
      */
     public <T> ContainerBuilder alias(Class<T> type, String alias) {
@@ -309,6 +357,7 @@ public final class ContainerBuilder {
     /**
      * Maps an existing factory to a new name.
      *
+     * @param <T>   type
      * @param type  of dependency
      * @param name  of dependency
      * @param alias of to the dependency
@@ -321,6 +370,10 @@ public final class ContainerBuilder {
     /**
      * Maps an existing dependency. All methods in this class ultimately funnel through
      * here.
+     * @param <T>           type of key and alias
+     * @param key           name of key
+     * @param aliasKey      name of alias key
+     * @return this builder
      */
     private <T> ContainerBuilder alias(final Key<T> key,
                                        final Key<T> aliasKey) {
@@ -337,6 +390,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, String value) {
         return constant(String.class, name, value);
@@ -344,6 +400,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, int value) {
         return constant(int.class, name, value);
@@ -351,6 +410,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, long value) {
         return constant(long.class, name, value);
@@ -358,6 +420,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, boolean value) {
         return constant(boolean.class, name, value);
@@ -365,6 +430,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          constant value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, double value) {
         return constant(double.class, name, value);
@@ -372,6 +440,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, float value) {
         return constant(float.class, name, value);
@@ -379,6 +450,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, short value) {
         return constant(short.class, name, value);
@@ -386,6 +460,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, char value) {
         return constant(char.class, name, value);
@@ -393,6 +470,9 @@ public final class ContainerBuilder {
 
     /**
      * Maps a class to the given name.
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     public ContainerBuilder constant(String name, Class value) {
         return constant(Class.class, name, value);
@@ -400,6 +480,10 @@ public final class ContainerBuilder {
 
     /**
      * Maps an enum to the given name.
+     * @param name           name
+     * @param <E>            value type
+     * @param value          value
+     * @return this builder
      */
     public <E extends Enum<E>> ContainerBuilder constant(String name, E value) {
         return constant(value.getDeclaringClass(), name, value);
@@ -407,6 +491,10 @@ public final class ContainerBuilder {
 
     /**
      * Maps a constant value to the given type and name.
+     * @param type           type of class
+     * @param name           name
+     * @param value          value
+     * @return this builder
      */
     private <T> ContainerBuilder constant(final Class<T> type, final String name, final T value) {
         InternalFactory<T> factory = new InternalFactory<T>() {
@@ -434,6 +522,7 @@ public final class ContainerBuilder {
      * into the given classes.
      *
      * @param types for which static members will be injected
+     * @return this builder
      */
     public ContainerBuilder injectStatics(Class<?>... types) {
         staticInjections.addAll(Arrays.asList(types));
@@ -441,7 +530,9 @@ public final class ContainerBuilder {
     }
 
     /**
-     * Returns true if this builder contains a mapping for the given type and
+     * @param type           type of class
+     * @param name           name of class
+     * @return true if this builder contains a mapping for the given type and
      * name.
      */
     public boolean contains(Class<?> type, String name) {
@@ -451,6 +542,8 @@ public final class ContainerBuilder {
     /**
      * Convenience method.&nbsp;Equivalent to {@code contains(type,
      * Container.DEFAULT_NAME)}.
+     * @param type           type of class
+     * @return true if this builder contains a mapping for the given type.
      */
     public boolean contains(Class<?> type) {
         return contains(type, Container.DEFAULT_NAME);
@@ -464,6 +557,7 @@ public final class ContainerBuilder {
      *  now. If false, the container will lazily load singletons. Eager loading
      *  is appropriate for production use while lazy loading can speed
      *  development.
+     * @return this builder
      * @throws IllegalStateException if called more than once
      */
     public Container create(boolean loadSingletons) {
@@ -510,7 +604,7 @@ public final class ContainerBuilder {
         /**
          * Contributes factories to the given builder.
          *
-         * @param builder
+         * @param builder the container builder
          */
         void build(ContainerBuilder builder);
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/Context.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/Context.java b/core/src/main/java/com/opensymphony/xwork2/inject/Context.java
index 233b5e4..7e5d03d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/Context.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/Context.java
@@ -26,12 +26,12 @@ import java.lang.reflect.Member;
 public interface Context {
 
   /**
-   * Gets the {@link Container}.
+   * @return  the {@link Container}.
    */
   Container getContainer();
 
   /**
-   * Gets the current scope strategy. See {@link
+   *  @return the current scope strategy. See {@link
    * Container#setScopeStrategy(Scope.Strategy)}.
    *
    * @throws IllegalStateException if no strategy has been set
@@ -39,19 +39,19 @@ public interface Context {
   Scope.Strategy getScopeStrategy();
 
   /**
-   * Gets the field, method or constructor which is being injected. Returns
+   *  @return the field, method or constructor which is being injected. Returns
    * {@code null} if the object currently being constructed is pre-loaded as
    * a singleton or requested from {@link Container#getInstance(Class)}.
    */
   Member getMember();
 
   /**
-   * Gets the type of the field or parameter which is being injected.
+   *  @return  the type of the field or parameter which is being injected.
    */
   Class<?> getType();
 
   /**
-   * Gets the name of the injection specified by {@link Inject#value()}.
+   *  @return  the name of the injection specified by {@link Inject#value()}.
    */
   String getName();
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/Inject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/Inject.java b/core/src/main/java/com/opensymphony/xwork2/inject/Inject.java
index 610d2bb..2e45761 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/Inject.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/Inject.java
@@ -26,6 +26,7 @@ import java.lang.annotation.Target;
 /**
  * <p>Annotates members and parameters which should have their value[s]
  * injected.
+ * </p>
  *
  * @author crazybob@google.com (Bob Lee)
  */
@@ -34,12 +35,12 @@ import java.lang.annotation.Target;
 public @interface Inject {
 
   /**
-   * Dependency name. Defaults to {@link Container#DEFAULT_NAME}.
+   * @return Dependency name. Defaults to {@link Container#DEFAULT_NAME}.
    */
   String value() default DEFAULT_NAME;
 
   /**
-   * Whether or not injection is required. Applicable only to methods and
+   * @return Whether or not injection is required. Applicable only to methods and
    * fields (not constructors or parameters).
    */
   boolean required() default true;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/Scope.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/Scope.java b/core/src/main/java/com/opensymphony/xwork2/inject/Scope.java
index f42829f..ed0e104 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/Scope.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/Scope.java
@@ -183,6 +183,12 @@ public enum Scope {
 
     /**
      * Wraps factory with scoping logic.
+     *
+     * @param type type of object
+     * @param name name of object
+     * @param factory factory
+     *
+     * @return the factory for the given type and name
      */
     abstract <T> InternalFactory<? extends T> scopeFactory(
             Class<T> type, String name, InternalFactory<? extends T> factory);
@@ -198,6 +204,15 @@ public enum Scope {
         /**
          * Finds an object for the given type and name in the request scope.
          * Creates a new object if necessary using the given factory.
+         *
+         * @param <T> generic type
+         * @param type type of object
+         * @param name name of object
+         * @param factory factory
+         *
+         * @return the object for the given type and name in the request scope
+         *
+         * @throws Exception in case of any error
          */
         <T> T findInRequest(Class<T> type, String name,
                             Callable<? extends T> factory) throws Exception;
@@ -205,6 +220,15 @@ public enum Scope {
         /**
          * Finds an object for the given type and name in the session scope.
          * Creates a new object if necessary using the given factory.
+         *
+         * @param <T> generic type
+         * @param type type of object
+         * @param name name of object
+         * @param factory factory
+         *
+         * @return the object for the given type and name in the session scope
+         *
+         * @throws Exception in case of any error
          */
         <T> T findInSession(Class<T> type, String name,
                             Callable<? extends T> factory) throws Exception;
@@ -212,6 +236,15 @@ public enum Scope {
         /**
          * Finds an object for the given type and name in the wizard scope.
          * Creates a new object if necessary using the given factory.
+         *
+         * @param <T> generic type
+         * @param type type of object
+         * @param name name of object
+         * @param factory factory
+         *
+         * @return the object for the given type and name in the wizard scope
+         *
+         * @throws Exception in case of any error
          */
         <T> T findInWizard(Class<T> type, String name,
                            Callable<? extends T> factory) throws Exception;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/Scoped.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/Scoped.java b/core/src/main/java/com/opensymphony/xwork2/inject/Scoped.java
index 31a9447..fb708ca 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/Scoped.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/Scoped.java
@@ -31,7 +31,7 @@ import java.lang.annotation.Target;
 public @interface Scoped {
 
   /**
-   * Scope.
+   * @return scope
    */
   Scope value();
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/inject/util/ReferenceCache.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/inject/util/ReferenceCache.java b/core/src/main/java/com/opensymphony/xwork2/inject/util/ReferenceCache.java
index 82e8af1..87df2af 100644
--- a/core/src/main/java/com/opensymphony/xwork2/inject/util/ReferenceCache.java
+++ b/core/src/main/java/com/opensymphony/xwork2/inject/util/ReferenceCache.java
@@ -55,6 +55,10 @@ public abstract class ReferenceCache<K, V> extends ReferenceMap<K, V> {
      * #put(Object, Object)}. Invoked by getter if value isn't already cached.
      * Must not return {@code null}. This method will not be called again until
      * the garbage collector reclaims the returned value.
+     *
+     * @param key the key
+     *
+     * @return returned value
      */
     protected abstract V create(K key);
 
@@ -105,6 +109,9 @@ public abstract class ReferenceCache<K, V> extends ReferenceMap<K, V> {
      * value, put it in the map, and return it.
      * </p>
      *
+     * @param key the key
+     * @return return new created value
+     *
      * @throws NullPointerException                       if {@link #create(Object)} returns null.
      * @throws java.util.concurrent.CancellationException if the creation is
      *                                                    cancelled. See {@link #cancel()}.
@@ -156,6 +163,14 @@ public abstract class ReferenceCache<K, V> extends ReferenceMap<K, V> {
     /**
      * Returns a {@code ReferenceCache} delegating to the specified {@code
      * function}. The specified function must not return {@code null}.
+     *
+     * @param <K> type of key
+     * @param <V> type of value
+     * @param function function
+     * @param keyReferenceType key reference type
+     * @param valueReferenceType  value reference type
+     *
+     * @return reference cache
      */
     public static <K, V> ReferenceCache<K, V> of(
             ReferenceType keyReferenceType,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java
index d3e62e5..93bae6d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ChainingInterceptor.java
@@ -41,9 +41,9 @@ import java.util.*;
  *
  * <p>
  * <b>Note:</b> It is important to remember that this interceptor does nothing if there are no objects already on the stack.
- * <br/>This means two things:
- * <br/><b>One</b>, you can safely apply it to all your actions without any worry of adverse affects.
- * <br/><b/>Two</b>, it is up to you to ensure an object exists in the stack prior to invoking this action. The most typical way this is done
+ * <br>This means two things:
+ * <br><b>One</b>, you can safely apply it to all your actions without any worry of adverse affects.
+ * <br><b>Two</b>, it is up to you to ensure an object exists in the stack prior to invoking this action. The most typical way this is done
  * is through the use of the <b>chain</b> result type, which combines with this interceptor to make up the action
  * chaining feature.
  * </p>
@@ -51,19 +51,21 @@ import java.util.*;
  * <p>
  * <b>Note:</b> By default Errors, Field errors and Message aren't copied during chaining, to change the behaviour you can specify
  * the below three constants in struts.properties or struts.xml:
+ * </p>
+ *
  * <ul>
  * <li>struts.xwork.chaining.copyErrors - set to true to copy Action Errors</li>
  * <li>struts.xwork.chaining.copyFieldErrors - set to true to copy Field Errors</li>
  * <li>struts.xwork.chaining.copyMessages - set to true to copy Action Messages</li>
  * </ul>
- * </p>
  *
  * <p>
  * <u>Example:</u>
+ * </p>
+ *
  * <pre>
  * &lt;constant name="struts.xwork.chaining.copyErrors" value="true"/&gt;
  * </pre>
- * </p>
  *
  * <p>
  * <b>Note:</b> By default actionErrors and actionMessages are excluded when copping object's properties.

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
index f0308d1..c71eade 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/DefaultWorkflowInterceptor.java
@@ -30,12 +30,14 @@ import java.lang.reflect.Method;
  * An interceptor that makes sure there are not validation errors before allowing the interceptor chain to continue.
  * <b>This interceptor does not perform any validation</b>.
  * </p>
+ *
  * <p>
  * This interceptor does nothing if the name of the method being invoked is specified in the <b>excludeMethods</b>
  * parameter. <b>excludeMethods</b> accepts a comma-delimited list of method names. For example, requests to
  * <b>foo!input.action</b> and <b>foo!back.action</b> will be skipped by this interceptor if you set the
  * <b>excludeMethods</b> parameter to "input, back".
  * </p>
+ *
  * <p>
  * <b>Note:</b> As this method extends off MethodFilterInterceptor, it is capable of
  * deciding if it is applicable only to selective methods in the action class. This is done by adding param tags
@@ -44,18 +46,24 @@ import java.lang.reflect.Method;
  * all methods for both parameters.
  * See {@link MethodFilterInterceptor} for more info.
  * </p>
+ *
+ * <p>
  * This interceptor also supports the following interfaces which can implemented by actions:
+ * </p>
+ *
  * <ul>
  *     <li>ValidationAware - implemented by ActionSupport class</li>
  *     <li>ValidationWorkflowAware - allows changing result name programmatically</li>
  *     <li>ValidationErrorAware - notifies action about errors and also allow change result name</li>
  * </ul>
  *
+ * <p>
  * You can also use InputConfig annotation to change result name returned when validation errors occurred.
+ * </p>
  *
  * <!-- END SNIPPET: description -->
  *
- * <u>Interceptor parameters:</u>
+ * <p><u>Interceptor parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
  * <ul>
@@ -64,15 +72,15 @@ import java.lang.reflect.Method;
  * </ul>
  * <!-- END SNIPPET: parameters -->
  *
- * <u>Extending the interceptor:</u>
+ * <p><u>Extending the interceptor:</u></p>
  *
  * <!-- START SNIPPET: extending -->
  *
- * There are no known extension points for this interceptor.
+ * <p>There are no known extension points for this interceptor.</p>
  *
  * <!-- END SNIPPET: extending -->
  *
- * <u>Example code:</u>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->
@@ -143,6 +151,7 @@ public class DefaultWorkflowInterceptor extends MethodFilterInterceptor {
      * Intercept {@link ActionInvocation} and returns a <code>inputResultName</code>
      * when action / field errors is found registered.
      *
+     * @param invocation the action invocation
      * @return String result name
      */
     @Override
@@ -169,6 +178,11 @@ public class DefaultWorkflowInterceptor extends MethodFilterInterceptor {
 
     /**
      * Process {@link ValidationWorkflowAware} interface
+     *
+     * @param action action object
+     * @param currentResultName current result name
+     *
+     * @return result name
      */
     private String processValidationWorkflowAware(final Object action, final String currentResultName) {
         String resultName = currentResultName;
@@ -182,6 +196,13 @@ public class DefaultWorkflowInterceptor extends MethodFilterInterceptor {
 
     /**
      * Process {@link InputConfig} annotation applied to method
+     * @param action action object
+     * @param method method
+     * @param currentResultName current result name
+     *
+     * @return result name
+     *
+     * @throws Exception in case of any errors
      */
     protected String processInputConfig(final Object action, final String method, final String currentResultName) throws Exception {
         String resultName = currentResultName;
@@ -200,7 +221,13 @@ public class DefaultWorkflowInterceptor extends MethodFilterInterceptor {
     }
 
     /**
-     * Notify action if it implements {@see ValidationErrorAware} interface
+     * Notify action if it implements {@link ValidationErrorAware} interface
+     *
+     * @param action action object
+     * @param currentResultName current result name
+     *
+     * @return result name
+     * @see ValidationErrorAware
      */
     protected String processValidationErrorAware(final Object action, final String currentResultName) {
         String resultName = currentResultName;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
index a273bb4..50ed889 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
@@ -102,7 +102,7 @@ import java.util.Map;
  * 
  * <p>
  * This second example will also log the exceptions using our own category
- * <code>com.mycompany.app.unhandled<code> at WARN level. 
+ * <code>com.mycompany.app.unhandled</code> at WARN level.
  * </p>
  *
  * <pre>
@@ -214,7 +214,7 @@ public class ExceptionMappingInterceptor extends AbstractInterceptor {
     /**
      * Handles the logging of the exception.
      * 
-     * @param e  the exception to log.
+     * @param e the exception to log.
      */
     protected void handleLogging(Exception e) {
     	if (logCategory != null) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
index 5ef3816..186e42e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/I18nInterceptor.java
@@ -142,6 +142,8 @@ public class I18nInterceptor extends AbstractInterceptor {
      * @param invocation the action invocation
      * @param locale the locale to store
      * @param storage the place to store this locale (like Storage.SESSSION.toString())
+     *
+     * @return the locale
      */
     protected Locale storeLocale(ActionInvocation invocation, Locale locale, String storage) {
         //save it in session

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java
index 3054a90..d87f23f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java
@@ -143,7 +143,7 @@ import java.io.Serializable;
  * Assuming the interceptor has the following properties
  * </p>
  *
- * <table border=&quot;1&quot; width=&quot;100%&quot;>
+ * <table border="1" summary="">
  * <tr>
  * <td>Interceptor</td>
  * <td>property</td>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/LoggingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/LoggingInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/LoggingInterceptor.java
index e48d3ea..c6d9131 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/LoggingInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/LoggingInterceptor.java
@@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
  * <!-- START SNIPPET: description -->
  * <p>
  * This interceptor logs the start and end of the execution an action (in English-only, not internationalized).
- * <br/>
+ * <br>
  * <b>Note:</b>: This interceptor will log at <tt>INFO</tt> level.
  * </p>
  * <!-- END SNIPPET: description -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
index 34b6920..c23933e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
@@ -68,8 +68,6 @@ import java.util.Set;
  * @see org.apache.struts2.interceptor.TokenSessionStoreInterceptor
  * @see com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
  * @see com.opensymphony.xwork2.validator.ValidationInterceptor
- * 
- * @version $Date$ $Id$
  */
 public abstract class MethodFilterInterceptor extends AbstractInterceptor {
     protected transient Logger log = LogManager.getLogger(getClass());
@@ -116,7 +114,7 @@ public abstract class MethodFilterInterceptor extends AbstractInterceptor {
      * 
      * @param invocation the action invocation
      * @return the result of invocation
-     * @throws Exception
+     * @throws Exception in case of any errors
      */
     protected abstract String doIntercept(ActionInvocation invocation) throws Exception;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterFilterInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterFilterInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterFilterInterceptor.java
index 46767d5..d3c48a3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterFilterInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterFilterInterceptor.java
@@ -63,7 +63,8 @@ import java.util.TreeMap;
  * <li>allowed: person.address</li>
  * <li>defaultBlock: false</li>
  * </ul>
- * <br>
+ *
+ * <p>
  * The parameters person.name, person.phoneNum etc would be blocked 
  * because 'person' is in the blocked list. However, person.address.street
  * and person.address.city would be allowed because person.address is

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterNameAware.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterNameAware.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterNameAware.java
index 46ba188..ba623fd 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterNameAware.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ParameterNameAware.java
@@ -17,10 +17,12 @@ package com.opensymphony.xwork2.interceptor;
 
 /**
  * <!-- START SNIPPET: javadoc -->
+ * <p>
  * This interface is implemented by actions that want to declare acceptable parameters. Works in conjunction with {@link
- * ParametersInterceptor}. For example, actions may want to create a whitelist of parameters they will accept or a
- * blacklist of paramters they will reject to prevent clients from setting other unexpected (and possibly dangerous)
+ * ParametersInterceptor}. For example, actions may want to create a white list of parameters they will accept or a
+ * blacklist of parameters they will reject to prevent clients from setting other unexpected (and possibly dangerous)
  * parameters.
+ * </p>
  * <!-- END SNIPPET: javadoc -->
  *
  * @author Bob Lee (crazybob@google.com)
@@ -31,7 +33,7 @@ public interface ParameterNameAware {
      * Tests if the the action will accept the parameter with the given name.
      *
      * @param parameterName  the parameter name
-     * @return <tt> if accepted, <tt>false</tt> otherwise
+     * @return <tt>true</tt> if accepted, <tt>false</tt> otherwise
      */
     boolean acceptableParameterName(String parameterName);
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
index bbf8277..70516cd 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
@@ -161,10 +161,12 @@ public class PrefixMethodInvocationUtil {
 	}
 	
 	/**
+     * <p>
 	 * This method capitalized the first character of <code>methodName</code>.
-	 * <br/>
+	 * <br>
 	 * eg. <code>capitalizeMethodName("someMethod");</code> will return <code>"SomeMethod"</code>.
-	 * 
+	 * </p>
+     *
 	 * @param methodName the method name
 	 * @return capitalized method name
 	 */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDriven.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDriven.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDriven.java
index e381373..d8f84c5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDriven.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/ScopedModelDriven.java
@@ -23,7 +23,7 @@ import com.opensymphony.xwork2.ModelDriven;
 public interface ScopedModelDriven<T> extends ModelDriven<T> {
 
     /**
-     * Sets the model
+     * @param model sets the model
      */
     void setModel(T model);
     
@@ -34,7 +34,7 @@ public interface ScopedModelDriven<T> extends ModelDriven<T> {
     void setScopeKey(String key);
     
     /**
-     * Gets the key under which the model is stored
+     * @return the key under which the model is stored
      */
     String getScopeKey();
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
index 934dd54..914a2a1 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/StaticParametersInterceptor.java
@@ -112,7 +112,7 @@ public class StaticParametersInterceptor extends AbstractInterceptor {
      * Overwrites already existing parameters from other sources.
      * Static parameters are the successor over previously set parameters, if true.
      *
-     * @param value
+     * @param value enable overwrites of already existing parameters from other sources
      */
     public void setOverwrite(String value) {
         this.overwrite = BooleanUtils.toBoolean(value);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java
index 978a49a..13b0a74 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/After.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java
index fb546de..abc2b51 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/Before.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>
@@ -51,7 +51,7 @@ import java.lang.annotation.Target;
  * </table>
  * <!-- END SNIPPET: parameters -->
  *
- * <p<u>Example code:</u></p>
+ * <p><u>Example code:</u></p>
  *
  * <pre>
  * <!-- START SNIPPET: example -->

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java
index 44825bd..84e15fa 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/BeforeResult.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java
index 33f7ab1..6ef8ee0 100644
--- a/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/interceptor/annotations/InputConfig.java
@@ -37,7 +37,7 @@ import com.opensymphony.xwork2.Action;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table class='confluenceTable'>
+ * <table class='confluenceTable' summary=''>
  * <tr>
  * <th class='confluenceTh'> Parameter </th>
  * <th class='confluenceTh'> Required </th>

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/mock/MockObjectTypeDeterminer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/mock/MockObjectTypeDeterminer.java b/core/src/main/java/com/opensymphony/xwork2/mock/MockObjectTypeDeterminer.java
index 605aaf2..f01261a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/mock/MockObjectTypeDeterminer.java
+++ b/core/src/main/java/com/opensymphony/xwork2/mock/MockObjectTypeDeterminer.java
@@ -37,10 +37,10 @@ public class MockObjectTypeDeterminer implements ObjectTypeDeterminer {
 
 
     /**
-     * @param keyClass
-     * @param elementClass
-     * @param keyProperty
-     * @param shouldCreateIfNew
+     * @param keyClass key class
+     * @param elementClass element class
+     * @param keyProperty key property
+     * @param shouldCreateIfNew create if new
      */
     public MockObjectTypeDeterminer(Class keyClass, Class elementClass,
                                     String keyProperty, boolean shouldCreateIfNew) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java b/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
index 77f4a8b..f6f2ea8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java
@@ -168,8 +168,8 @@ public class OgnlUtil {
      * Sets the properties on the object using the default context, defaulting to not throwing
      * exceptions for problems setting the properties.
      *
-     * @param properties
-     * @param o
+     * @param properties map of properties
+     * @param o object
      */
     public void setProperties(Map<String, ?> properties, Object o) {
         setProperties(properties, o, false);
@@ -226,7 +226,12 @@ public class OgnlUtil {
      * Looks for the real target with the specified property given a root Object which may be a
      * CompoundRoot.
      *
+     * @param property  the property
+     * @param context context map
+     * @param root compound root
+     *
      * @return the real target or null if no object can be found with the specified property
+     * @throws OgnlException in case of ognl errors
      */
     public Object getRealTarget(String property, Map<String, Object> context, Object root) throws OgnlException {
         //special keyword, they must be cutting the stack
@@ -260,6 +265,13 @@ public class OgnlUtil {
     /**
      * Wrapper around Ognl.setValue() to handle type conversion for collection elements.
      * Ideally, this should be handled by OGNL directly.
+     *
+     * @param name  the name
+     * @param context context map
+     * @param root root
+     * @param value value
+     *
+     * @throws OgnlException in case of ognl errors
      */
     public void setValue(String name, Map<String, Object> context, Object root, Object value) throws OgnlException {
         setValue(name, context, root, value, true);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
index bc30d57..40e4b32 100644
--- a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java
@@ -36,6 +36,7 @@ import java.util.Map;
  * Simple implementation of the ObjectFactory that makes use of Spring's application context if one has been configured,
  * before falling back on the default mechanism of instantiating a new class using the class name.
  * </p>
+ *
  * <p>
  * In order to use this class in your application, you will need to instantiate a copy of this class and set it as XWork's ObjectFactory
  * before the xwork.xml file is parsed. In a servlet environment, this could be done using a ServletContextListener.
@@ -83,7 +84,7 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
     /**
      * Sets the autowiring strategy
      *
-     * @param autowireStrategy
+     * @param autowireStrategy the autowire strategy
      */
     public void setAutowireStrategy(int autowireStrategy) {
         switch (autowireStrategy) {
@@ -121,7 +122,9 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
      * If the given context is assignable to AutowireCapbleBeanFactory or contains a parent or a factory that is, then
      * set the autoWiringFactory appropriately.
      *
-     * @param context
+     * @param context the application context
+     *
+     * @return the bean factory
      */
     protected AutowireCapableBeanFactory findAutoWiringBeanFactory(ApplicationContext context) {
         if (context instanceof AutowireCapableBeanFactory) {
@@ -142,10 +145,10 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
      * ObjectFactory}.
      *
      * @param beanName     The name of the bean to look up in the application context
-     * @param extraContext
+     * @param extraContext additional context parameters
      * @return A bean from Spring or the result of calling the overridden
      *         method.
-     * @throws Exception
+     * @throws Exception in case of any errors
      */
     @Override
     public Object buildBean(String beanName, Map<String, Object> extraContext, boolean injectInternal) throws Exception {
@@ -164,9 +167,10 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
     }
 
     /**
-     * @param clazz
-     * @param extraContext
-     * @throws Exception
+     * @param clazz class of bean
+     * @param extraContext additional context parameters
+     * @return bean
+     * @throws Exception in case of any errors
      */
     @Override
     public Object buildBean(Class clazz, Map<String, Object> extraContext) throws Exception {
@@ -203,8 +207,10 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
     }
 
     /**
-     * @param bean
-     * @param autoWiringFactory
+     * @param bean the bean to be autowired
+     * @param autoWiringFactory the autowiring factory
+     *
+     * @return bean
      */
     public Object autoWireBean(Object bean, AutowireCapableBeanFactory autoWiringFactory) {
         if (autoWiringFactory != null) {
@@ -264,7 +270,7 @@ public class SpringObjectFactory extends ObjectFactory implements ApplicationCon
     /**
      *  Enable / disable caching of classes loaded by Spring.
      *
-     * @param useClassCache
+     * @param useClassCache enable / disable class cache
      */
     public void setUseClassCache(boolean useClassCache) {
         this.useClassCache = useClassCache;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java
index f249f5f..ced7516 100644
--- a/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java
@@ -78,7 +78,8 @@ public class SpringProxyableObjectFactory extends SpringObjectFactory {
      * <code>autoWiringFactory</code>, so the application context should be either
      * the original or a child context of the original.
      *
-     * @param context  provided context.
+     * @param context provided context.
+     * @return the application context
      */
     protected ApplicationContext getApplicationContext(Map<String, Object> context) {
         return appContext;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java b/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java
index 7c11b85..1628678 100644
--- a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java
@@ -33,7 +33,7 @@ import org.springframework.web.context.WebApplicationContext;
  * <!-- END SNIPPET: description -->
  *
  * <!-- START SNIPPET: parameters -->
- * TODO: Describe the paramters for this Interceptor.
+ * TODO: Describe the parameters for this Interceptor.
  * <!-- END SNIPPET: parameters -->
  *
  * <!-- START SNIPPET: extending -->
@@ -50,11 +50,13 @@ import org.springframework.web.context.WebApplicationContext;
  * &lt;/action&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
- * 
+ *
+ * <p>
  * Autowires action classes to Spring beans.  The strategy for autowiring the beans can be configured
  * by setting the parameter on the interceptor.  Actions that need access to the <code>ActionContext</code>
  * can implements the <code>ApplicationContextAware</code> interface.  The context will also be placed on
  * the action context under the APPLICATION_CONTEXT attribute.
+ * </p>
  *
  * @author Simon Stewart
  * @author Eric Hauser
@@ -70,7 +72,7 @@ public class ActionAutowiringInterceptor extends AbstractInterceptor implements
     private Integer autowireStrategy;
 
     /**
-     * @param autowireStrategy
+     * @param autowireStrategy the autowire strategy
      */
     public void setAutowireStrategy(Integer autowireStrategy) {
         this.autowireStrategy = autowireStrategy;
@@ -92,8 +94,8 @@ public class ActionAutowiringInterceptor extends AbstractInterceptor implements
      * TODO: Should this check to see if the <code>SpringObjectFactory</code> has already been configured instead of instantiating a new one?  Or is there a good reason for the interceptor to have it's own factory?
      * </p>
      *
-     * @param invocation
-     * @throws Exception
+     * @param invocation the action invocation
+     * @throws Exception in case of any errors
      */
     @Override public String intercept(ActionInvocation invocation) throws Exception {
         if (!initialized) {
@@ -107,7 +109,7 @@ public class ActionAutowiringInterceptor extends AbstractInterceptor implements
                 factory = new SpringObjectFactory();
                 factory.setApplicationContext(getApplicationContext());
                 if (autowireStrategy != null) {
-                    factory.setAutowireStrategy(autowireStrategy.intValue());
+                    factory.setAutowireStrategy(autowireStrategy);
                 }
             }
             initialized = true;
@@ -123,15 +125,15 @@ public class ActionAutowiringInterceptor extends AbstractInterceptor implements
     }
 
     /**
-     * @param applicationContext
-     * @throws BeansException
+     * @param applicationContext the application context
+     * @throws BeansException in case of errors
      */
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
         context = applicationContext;
     }
 
     /**
-     * @return context
+     * @return the application context
      */
     protected ApplicationContext getApplicationContext() {
         return context;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java b/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java
index 08cae03..2144bc8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/AnnotationUtils.java
@@ -28,8 +28,9 @@ import java.util.regex.Pattern;
 
 /**
  * <code>AnnotationUtils</code>
- *
+ * <p>
  * Various utility methods dealing with annotations
+ * </p>
  *
  * @author Rainer Hermanns
  * @author Zsolt Szasz, zsolt at lorecraft dot com
@@ -46,9 +47,9 @@ public class AnnotationUtils {
     /**
      * Adds all fields with the specified Annotation of class clazz and its superclasses to allFields
      *
-     * @param annotationClass
-     * @param clazz
-     * @param allFields
+     * @param annotationClass the {@link Annotation}s to find
+     * @param clazz The {@link Class} to inspect
+     * @param allFields list of all fields
      */
     public static void addAllFields(Class<? extends Annotation> annotationClass, Class clazz, List<Field> allFields) {
 
@@ -70,9 +71,9 @@ public class AnnotationUtils {
     /**
      * Adds all methods with the specified Annotation of class clazz and its superclasses to allFields
      *
-     * @param annotationClass
-     * @param clazz
-     * @param allMethods
+     * @param annotationClass the {@link Annotation}s to find
+     * @param clazz The {@link Class} to inspect
+     * @param allMethods list of all methods
      */
     public static void addAllMethods(Class<? extends Annotation> annotationClass, Class clazz, List<Method> allMethods) {
 
@@ -93,8 +94,8 @@ public class AnnotationUtils {
 
     /**
      *
-     * @param clazz
-     * @param allInterfaces
+     * @param clazz The {@link Class} to inspect
+     * @param allInterfaces list of all interfaces
      */
     public static void addAllInterfaces(Class clazz, List<Class> allInterfaces) {
         if (clazz == null) {
@@ -133,6 +134,9 @@ public class AnnotationUtils {
 
 	/**
 	 * Varargs version of <code>AnnotatedElement.isAnnotationPresent()</code>
+     * @param annotatedElement element to check
+     * @param annotation the {@link Annotation}s to find
+     * @return true is element is annotated by one of the annotation
 	 * @see AnnotatedElement
 	 */
 	public static boolean isAnnotatedBy(AnnotatedElement annotatedElement, Class<? extends Annotation>... annotation) {
@@ -175,6 +179,7 @@ public class AnnotationUtils {
      * Returns the annotation on the given class or the package of the class. This searchs up the
      * class hierarchy and the package hierarchy for the closest match.
      *
+     * @param   <T> class type
      * @param   clazz The class to search for the annotation.
      * @param   annotationClass The Class of the annotation.
      * @return  The annotation or null.

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java
index 46cfe9f..84877d2 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/ClassLoaderUtil.java
@@ -22,8 +22,11 @@ import java.util.*;
 
 
 /**
+ * <p>
  * This class is extremely useful for loading resources and classes in a fault tolerant manner
  * that works across different applications servers.
+ * </p>
+ *
  * <p>
  * It has come out of many months of frustrating use of multiple application servers at Atlassian,
  * please don't change things unless you're sure they're not going to break in one server or another!
@@ -32,11 +35,16 @@ import java.util.*;
 public class ClassLoaderUtil {
 
     /**
+     * <p>
      * Load all resources with a given name, potentially aggregating all results 
      * from the searched classloaders.  If no results are found, the resource name
      * is prepended by '/' and tried again.
+     * </p>
      *
+     * <p>
      * This method will try to load the resources using the following methods (in order):
+     * </p>
+     *
      * <ul>
      *  <li>From Thread.currentThread().getContextClassLoader()
      *  <li>From ClassLoaderUtil.class.getClassLoader()
@@ -45,6 +53,11 @@ public class ClassLoaderUtil {
      *
      * @param resourceName The name of the resources to load
      * @param callingClass The Class object of the calling object
+     * @param aggregate aggregate
+     *
+     * @return all resources found
+     *
+     * @throws IOException in case of IO errors
      */
      public static Iterator<URL> getResources(String resourceName, Class callingClass, boolean aggregate) throws IOException {
 
@@ -85,6 +98,8 @@ public class ClassLoaderUtil {
      *
      * @param resourceName The name of the resource to load
      * @param callingClass The Class object of the calling object
+     *
+     * @return the resource
      */
     public static URL getResource(String resourceName, Class callingClass) {
         URL url = Thread.currentThread().getContextClassLoader().getResource(resourceName);
@@ -115,6 +130,7 @@ public class ClassLoaderUtil {
     *
     * @param resourceName The name of the resource to load
     * @param callingClass The Class object of the calling object
+    * @return resource as a stream
     */
     public static InputStream getResourceAsStream(String resourceName, Class callingClass) {
         URL url = getResource(resourceName, callingClass);
@@ -144,6 +160,7 @@ public class ClassLoaderUtil {
      *
      * @param className    The name of the class to load
      * @param callingClass The Class object of the calling object
+     * @return class with for the given name
      * @throws ClassNotFoundException If the class cannot be found anywhere.
      */
     public static Class loadClass(String className, Class callingClass) throws ClassNotFoundException {
@@ -172,6 +189,8 @@ public class ClassLoaderUtil {
 
     /**
      * Prints the classloader hierarchy from a given classloader - useful for debugging.
+     *
+     * @param cl the class loader
      */
     public static void printClassLoader(ClassLoader cl) {
         System.out.println("ClassLoaderUtils.printClassLoader(cl = " + cl + ")");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/ClassPathFinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ClassPathFinder.java b/core/src/main/java/com/opensymphony/xwork2/util/ClassPathFinder.java
index 5743885..45eeaf3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/ClassPathFinder.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/ClassPathFinder.java
@@ -32,8 +32,6 @@ import java.util.Vector;
  * for files whose names match the given pattern. The filename is tested
  * using the given implementation of {@link com.opensymphony.xwork2.util.PatternMatcher} by default it 
  * uses {@link com.opensymphony.xwork2.util.WildcardHelper}
- *
- * @version $Rev$ $Date$
  */
 public class ClassPathFinder {
 	
@@ -52,15 +50,14 @@ public class ClassPathFinder {
 	private Vector<String> compared = new Vector<>();
 	
 	/**
-	 * retrieves the pattern in use
+	 * @return the pattern in use
 	 */
 	public String getPattern() {
 		return pattern;
 	}
 
 	/**
-	 * sets the String pattern for comparing filenames
-	 * @param pattern
+	 * @param pattern the String pattern for comparing filenames
 	 */
 	public void setPattern(String pattern) {
 		this.pattern = pattern;
@@ -71,7 +68,7 @@ public class ClassPathFinder {
      * who's name matches the pattern set by setPattern(String). The classpath is 
      * searched recursively, so use with caution.
      *
-     * @return Vector<String> containing matching filenames
+     * @return Vector&lt;String&gt; containing matching filenames
      */
 	public Vector<String> findMatches() {
 		Vector<String> matches = new Vector<>();
@@ -151,8 +148,7 @@ public class ClassPathFinder {
 	}
 
 	/**
-	 * sets the PatternMatcher implementation to use when comparing filenames
-	 * @param patternMatcher
+	 * @param patternMatcher the PatternMatcher implementation to use when comparing filenames
 	 */
 	public void setPatternMatcher(PatternMatcher<int[]> patternMatcher) {
 		this.patternMatcher = patternMatcher;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java b/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java
index 0ab63b6..1511da7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/CreateIfNull.java
@@ -34,7 +34,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -58,7 +58,7 @@ import java.lang.annotation.Target;
  * <pre>
  * <!-- START SNIPPET: example -->
  * &#64;CreateIfNull( value = true )
- * private List<User> users;
+ * private List&lt;User&gt; users;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -69,8 +69,7 @@ import java.lang.annotation.Target;
 public @interface CreateIfNull {
 
     /**
-     * The CreateIfNull value.
-     * Defaults to <tt>true</tt>.
+     * @return The CreateIfNull value. Defaults to <tt>true</tt>.
      */
     boolean value() default true;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java b/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
index 1b1ea2d..1b38373 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/DomHelper.java
@@ -59,6 +59,8 @@ public class DomHelper {
      * using the {@link #getLocationObject(Element)} method.
      *
      * @param inputSource the inputSource to read the document from
+     *
+     * @return the W3C Document
      */
     public static Document parse(InputSource inputSource) {
         return parse(inputSource, null);
@@ -72,6 +74,8 @@ public class DomHelper {
      *
      * @param inputSource the inputSource to read the document from
      * @param dtdMappings a map of DTD names and public ids
+     *
+     * @return the W3C Document
      */
     public static Document parse(InputSource inputSource, Map<String, String> dtdMappings) {
                 
@@ -164,6 +168,7 @@ public class DomHelper {
     
         /**
          * Construct a new instance of this DOMBuilder.
+         * @param factory the SAX transformer factory
          */
         public DOMBuilder(SAXTransformerFactory factory) {
             this(factory, null);
@@ -171,6 +176,8 @@ public class DomHelper {
     
         /**
          * Constructs a new instance that appends nodes to the given parent node.
+         *
+         * @param parentNode the parent node
          */
         public DOMBuilder(Node parentNode) {
             this(null, parentNode);
@@ -178,6 +185,9 @@ public class DomHelper {
     
         /**
          * Construct a new instance of this DOMBuilder.
+         *
+         * @param factory the SAX transformer factory
+         * @param parentNode the parent node
          */
         public DOMBuilder(SAXTransformerFactory factory, Node parentNode) {
             this.factory = factory == null? FACTORY: factory;
@@ -205,6 +215,8 @@ public class DomHelper {
     
         /**
          * Return the newly built Document.
+         *
+         * @return the W3C Document
          */
         public Document getDocument() {
             if (this.result == null || this.result.getNode() == null) {
@@ -269,6 +281,7 @@ public class DomHelper {
         /**
          * Create a filter that is chained to another handler.
          * @param next the next handler in the chain.
+         * @param dtdMappings map of DTD mappings
          */
         public StartHandler(ContentHandler next, Map<String, String> dtdMappings) {
             nextHandler = next;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/Element.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/Element.java b/core/src/main/java/com/opensymphony/xwork2/util/Element.java
index de66d1f..1b41f57 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/Element.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/Element.java
@@ -34,7 +34,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -59,10 +59,10 @@ import java.lang.annotation.Target;
  * <!-- START SNIPPET: example -->
  * // The key property for User objects within the users collection is the <code>userName</code> attribute.
  * &#64;Element( value = com.acme.User )
- * private Map<Long, User> userMap;
+ * private Map&lt;Long, User&gt; userMap;
  *
  * &#64;Element( value = com.acme.User )
- * public List<User> userList;
+ * public List&lt;User&gt; userList;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -73,8 +73,7 @@ import java.lang.annotation.Target;
 public @interface Element {
 
     /**
-     * The Element value.
-     * Defaults to <tt>java.lang.Object.class</tt>.
+     * @return The Element value. Defaults to <tt>java.lang.Object.class</tt>.
      */
     Class value() default java.lang.Object.class;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/Key.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/Key.java b/core/src/main/java/com/opensymphony/xwork2/util/Key.java
index 5d2fb6d..0448b3f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/Key.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/Key.java
@@ -34,7 +34,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -59,7 +59,7 @@ import java.lang.annotation.Target;
  * <!-- START SNIPPET: example -->
  * // The key property for User objects within the users collection is the <code>userName</code> attribute.
  * &#64;Key( value = java.lang.Long.class )
- * private Map<Long, User> userMap;
+ * private Map&lt;Long, User&gt; userMap;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -70,8 +70,7 @@ import java.lang.annotation.Target;
 public @interface Key {
 
     /**
-     * The Key value.
-     * Defaults to <tt>java.lang.Object.class</tt>.
+     * @return The Key value. Defaults to <tt>java.lang.Object.class</tt>.
      */
     Class value() default java.lang.Object.class;
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java b/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java
index 396af47..1a702ba 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/KeyProperty.java
@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
  * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -60,7 +60,7 @@ import java.lang.annotation.Target;
  * <!-- START SNIPPET: example -->
  * // The key property for User objects within the users collection is the <code>userName</code> attribute.
  * &#64;KeyProperty( value = "userName" )
- * protected List<User> users = null;
+ * protected List&lt;User&gt; users = null;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
@@ -72,8 +72,7 @@ import java.lang.annotation.Target;
 public @interface KeyProperty {
 
     /**
-     * The KeyProperty value.
-     * Defaults to the <tt>id</tt> attribute. 
+     * @return The KeyProperty value. Defaults to the <tt>id</tt> attribute.
      */
     String value() default "id";
 }


[15/15] struts git commit: WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard

Posted by jo...@apache.org.
WW-4531- Improve javadoc to be compatible with more strict JDK8 javadoc standard


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/775c82a7
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/775c82a7
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/775c82a7

Branch: refs/heads/master
Commit: 775c82a74306918f9f333a2947375c09582a9198
Parents: 98d7756
Author: Johannes Geppert <jo...@apache.org>
Authored: Fri Jul 24 20:27:30 2015 +0200
Committer: Johannes Geppert <jo...@apache.org>
Committed: Fri Jul 24 20:27:31 2015 +0200

----------------------------------------------------------------------
 .../opensymphony/xwork2/ActionChainResult.java  |    2 +
 .../com/opensymphony/xwork2/ActionContext.java  |    2 +-
 .../xwork2/CompositeTextProvider.java           |  107 +-
 .../xwork2/DefaultActionInvocation.java         |    2 +-
 .../opensymphony/xwork2/DefaultActionProxy.java |    8 +-
 .../xwork2/DefaultTextProvider.java             |    2 +-
 .../xwork2/DefaultUnknownHandlerManager.java    |   14 +-
 .../com/opensymphony/xwork2/ObjectFactory.java  |   34 +-
 .../com/opensymphony/xwork2/UnknownHandler.java |    4 +-
 .../xwork2/config/Configuration.java            |    7 +-
 .../xwork2/config/ConfigurationException.java   |    8 +
 .../xwork2/config/ConfigurationManager.java     |    2 +-
 .../xwork2/config/PackageProvider.java          |    8 +-
 .../xwork2/config/entities/ActionConfig.java    |    6 +-
 .../config/entities/InterceptorStackConfig.java |   19 +-
 .../xwork2/config/entities/PackageConfig.java   |   12 +-
 .../xwork2/config/impl/AbstractMatcher.java     |    5 +-
 .../xwork2/config/impl/ActionConfigMatcher.java |    1 +
 .../config/impl/DefaultConfiguration.java       |   10 +-
 .../xwork2/config/impl/NamespaceMatch.java      |    2 +-
 .../xwork2/config/impl/NamespaceMatcher.java    |    2 +-
 .../config/providers/InterceptorBuilder.java    |   17 +-
 .../providers/XmlConfigurationProvider.java     |   40 +-
 .../xwork2/config/providers/XmlHelper.java      |   33 +-
 .../xwork2/conversion/NullHandler.java          |   37 +-
 .../conversion/TypeConversionException.java     |    4 +-
 .../conversion/annotations/Conversion.java      |    4 +-
 .../conversion/annotations/TypeConversion.java  |   24 +-
 .../conversion/impl/DefaultTypeConverter.java   |    2 +
 .../impl/InstantiatingNullHandler.java          |   15 +-
 .../xwork2/conversion/impl/XWorkConverter.java  |    4 +-
 .../metadata/ConversionDescription.java         |   11 +-
 .../xwork2/factory/ActionFactory.java           |    9 +
 .../xwork2/factory/ConverterFactory.java        |    3 +
 .../xwork2/factory/InterceptorFactory.java      |    4 +
 .../xwork2/factory/UnknownHandlerFactory.java   |    3 +
 .../xwork2/factory/ValidatorFactory.java        |    6 +-
 .../opensymphony/xwork2/inject/Container.java   |   24 +-
 .../xwork2/inject/ContainerBuilder.java         |   98 +-
 .../com/opensymphony/xwork2/inject/Context.java |   10 +-
 .../com/opensymphony/xwork2/inject/Inject.java  |    5 +-
 .../com/opensymphony/xwork2/inject/Scope.java   |   33 +
 .../com/opensymphony/xwork2/inject/Scoped.java  |    2 +-
 .../xwork2/inject/util/ReferenceCache.java      |   15 +
 .../xwork2/interceptor/ChainingInterceptor.java |   12 +-
 .../interceptor/DefaultWorkflowInterceptor.java |   37 +-
 .../ExceptionMappingInterceptor.java            |    4 +-
 .../xwork2/interceptor/I18nInterceptor.java     |    2 +
 .../xwork2/interceptor/Interceptor.java         |    2 +-
 .../xwork2/interceptor/LoggingInterceptor.java  |    2 +-
 .../interceptor/MethodFilterInterceptor.java    |    4 +-
 .../interceptor/ParameterFilterInterceptor.java |    3 +-
 .../xwork2/interceptor/ParameterNameAware.java  |    8 +-
 .../interceptor/PrefixMethodInvocationUtil.java |    6 +-
 .../xwork2/interceptor/ScopedModelDriven.java   |    4 +-
 .../StaticParametersInterceptor.java            |    2 +-
 .../xwork2/interceptor/annotations/After.java   |    2 +-
 .../xwork2/interceptor/annotations/Before.java  |    4 +-
 .../interceptor/annotations/BeforeResult.java   |    2 +-
 .../interceptor/annotations/InputConfig.java    |    2 +-
 .../xwork2/mock/MockObjectTypeDeterminer.java   |    8 +-
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java  |   16 +-
 .../xwork2/spring/SpringObjectFactory.java      |   26 +-
 .../spring/SpringProxyableObjectFactory.java    |    3 +-
 .../ActionAutowiringInterceptor.java            |   20 +-
 .../xwork2/util/AnnotationUtils.java            |   23 +-
 .../xwork2/util/ClassLoaderUtil.java            |   19 +
 .../xwork2/util/ClassPathFinder.java            |   12 +-
 .../opensymphony/xwork2/util/CreateIfNull.java  |    7 +-
 .../com/opensymphony/xwork2/util/DomHelper.java |   13 +
 .../com/opensymphony/xwork2/util/Element.java   |    9 +-
 .../java/com/opensymphony/xwork2/util/Key.java  |    7 +-
 .../opensymphony/xwork2/util/KeyProperty.java   |    7 +-
 .../xwork2/util/LocalizedTextUtil.java          |   36 +-
 .../util/NamedVariablePatternMatcher.java       |   20 +-
 .../opensymphony/xwork2/util/ResolverUtil.java  |   41 +-
 .../opensymphony/xwork2/util/TextParseUtil.java |   95 +-
 .../xwork2/util/finder/ResourceFinder.java      |  103 +-
 .../opensymphony/xwork2/util/finder/UrlSet.java |   21 +-
 .../xwork2/util/fs/DefaultFileManager.java      |    4 +-
 .../util/location/LocationAttributes.java       |    7 +-
 .../xwork2/util/location/LocationImpl.java      |   14 +-
 .../xwork2/util/location/LocationUtils.java     |    4 +-
 .../xwork2/util/profiling/ObjectProfiler.java   |   15 +-
 .../util/profiling/ProfilingTimerBean.java      |    4 +-
 .../xwork2/util/profiling/UtilTimerStack.java   |   26 +-
 .../util/reflection/ReflectionContextState.java |    5 +-
 .../util/reflection/ReflectionProvider.java     |   16 +-
 .../AnnotationActionValidatorManager.java       |    1 +
 .../validator/DefaultValidatorFileParser.java   |   15 +-
 .../validator/DelegatingValidatorContext.java   |    4 +
 .../validator/ShortCircuitableValidator.java    |    4 +-
 .../xwork2/validator/ValidationInterceptor.java |   13 +-
 .../xwork2/validator/Validator.java             |   28 +-
 .../xwork2/validator/ValidatorConfig.java       |    2 +-
 .../xwork2/validator/ValidatorFactory.java      |   14 +-
 .../xwork2/validator/ValidatorFileParser.java   |    2 +
 .../ConditionalVisitorFieldValidator.java       |   21 +-
 .../ConversionErrorFieldValidator.java          |   15 +-
 .../validator/annotations/CustomValidator.java  |    8 +-
 .../annotations/DateRangeFieldValidator.java    |   28 +-
 .../annotations/DoubleRangeFieldValidator.java  |   37 +-
 .../validator/annotations/EmailValidator.java   |   13 +-
 .../annotations/ExpressionValidator.java        |   11 +-
 .../annotations/FieldExpressionValidator.java   |   13 +-
 .../annotations/IntRangeFieldValidator.java     |   25 +-
 .../annotations/RegexFieldValidator.java        |   13 +-
 .../annotations/RequiredFieldValidator.java     |   13 +-
 .../annotations/RequiredStringValidator.java    |   19 +-
 .../annotations/ShortRangeFieldValidator.java   |   25 +-
 .../annotations/StringLengthFieldValidator.java |   31 +-
 .../validator/annotations/UrlValidator.java     |   16 +-
 .../validator/annotations/Validation.java       |    4 +-
 .../annotations/ValidationParameter.java        |    2 +-
 .../validator/annotations/Validations.java      |    4 +-
 .../annotations/VisitorFieldValidator.java      |   17 +-
 .../ConditionalVisitorFieldValidator.java       |    2 +-
 .../ConversionErrorFieldValidator.java          |    4 +-
 .../validators/DateRangeFieldValidator.java     |    2 +-
 .../validators/DoubleRangeFieldValidator.java   |    6 +-
 .../validators/IntRangeFieldValidator.java      |    4 +-
 .../validators/LongRangeFieldValidator.java     |    4 +-
 .../validators/RegexFieldValidator.java         |   18 +-
 .../validators/RequiredStringValidator.java     |    4 +-
 .../validators/ShortRangeFieldValidator.java    |    4 +-
 .../validator/validators/ValidatorSupport.java  |    2 +-
 .../validators/VisitorFieldValidator.java       |    6 +-
 .../struts2/components/ActionComponent.java     |   40 +-
 .../org/apache/struts2/components/Bean.java     |    2 +-
 .../org/apache/struts2/components/ComboBox.java |    8 +-
 .../apache/struts2/components/Component.java    |   15 +-
 .../components/ComponentUrlProvider.java        |    2 +-
 .../apache/struts2/components/ContextBean.java  |    2 +
 .../org/apache/struts2/components/Date.java     |   70 +-
 .../org/apache/struts2/components/Form.java     |    7 +-
 .../struts2/components/GenericUIBean.java       |    4 +-
 .../org/apache/struts2/components/Include.java  |    4 +-
 .../org/apache/struts2/components/Label.java    |    2 +-
 .../org/apache/struts2/components/Param.java    |    8 +-
 .../org/apache/struts2/components/Property.java |   10 +-
 .../org/apache/struts2/components/Radio.java    |    2 +-
 .../org/apache/struts2/components/Text.java     |    6 +-
 .../org/apache/struts2/components/TextArea.java |    2 +-
 .../org/apache/struts2/components/Token.java    |    3 +-
 .../org/apache/struts2/components/UIBean.java   |   26 +-
 .../java/org/apache/struts2/components/URL.java |    4 +-
 .../apache/struts2/components/UpDownSelect.java |    2 +-
 .../apache/struts2/components/UrlRenderer.java  |    2 +-
 .../config/DefaultBeanSelectionProvider.java    |    9 +-
 .../config/PropertiesConfigurationProvider.java |    4 +-
 .../dispatcher/DefaultStaticContentLoader.java  |    2 +-
 .../apache/struts2/dispatcher/Dispatcher.java   |    6 +-
 .../struts2/dispatcher/ExecuteOperations.java   |   14 +-
 .../struts2/dispatcher/InitOperations.java      |   13 +
 .../struts2/dispatcher/PrepareOperations.java   |   27 +-
 .../filter/StrutsPrepareAndExecuteFilter.java   |    3 +
 .../dispatcher/filter/StrutsPrepareFilter.java  |    3 +
 .../dispatcher/mapper/DefaultActionMapper.java  |    3 +-
 .../JakartaStreamMultiPartRequest.java          |   93 +-
 .../dispatcher/multipart/MultiPartRequest.java  |    3 +-
 .../multipart/MultiPartRequestWrapper.java      |    3 +-
 .../struts2/interceptor/CookieInterceptor.java  |   20 +-
 .../interceptor/ExecuteAndWaitInterceptor.java  |    8 +-
 .../interceptor/FileUploadInterceptor.java      |    3 +-
 .../interceptor/MessageStoreInterceptor.java    |   31 +-
 .../struts2/interceptor/RolesInterceptor.java   |   11 +-
 .../struts2/interceptor/ScopeInterceptor.java   |    7 +-
 .../struts2/interceptor/TokenInterceptor.java   |    1 +
 .../debugging/DebuggingInterceptor.java         |    4 +-
 .../apache/struts2/result/PostbackResult.java   |    3 +-
 .../result/ServletActionRedirectResult.java     |   22 +-
 .../struts2/result/ServletRedirectResult.java   |    6 +-
 .../org/apache/struts2/result/StreamResult.java |    1 +
 .../struts2/result/StrutsResultSupport.java     |   14 +-
 .../apache/struts2/result/VelocityResult.java   |    4 +
 .../org/apache/struts2/util/ContainUtil.java    |   16 +-
 .../struts2/util/InvocationSessionStore.java    |    6 +-
 .../struts2/util/RegexPatternMatcher.java       |    9 +-
 .../struts2/util/StrutsTestCaseHelper.java      |    2 +
 .../struts2/util/StrutsTypeConverter.java       |    6 +-
 .../struts2/util/fs/JBossFileManager.java       |    5 +-
 .../views/freemarker/FreemarkerManager.java     |   23 +-
 .../views/freemarker/FreemarkerResult.java      |   35 +-
 .../FreemarkerThemeTemplateLoader.java          |    2 +
 .../struts2/views/jsp/IteratorStatus.java       |    2 +-
 .../jsp/iterator/IteratorGeneratorTag.java      |   10 +-
 .../views/jsp/iterator/SortIteratorTag.java     |    2 +-
 .../views/jsp/iterator/SubsetIteratorTag.java   |    8 +-
 .../struts2/views/velocity/VelocityManager.java |   54 +-
 .../velocity/components/AbstractDirective.java  |   17 +-
 .../struts2/views/xslt/AbstractAdapterNode.java |   10 +-
 .../struts2/views/xslt/AdapterFactory.java      |   92 +-
 .../apache/struts2/views/xslt/AdapterNode.java  |   25 +-
 .../apache/struts2/views/xslt/BeanAdapter.java  |    2 +-
 .../apache/struts2/views/xslt/MapAdapter.java   |   12 +-
 .../struts2/views/xslt/ProxyElementAdapter.java |    6 +-
 .../struts2/views/xslt/ProxyNodeAdapter.java    |    7 +-
 .../struts2/views/xslt/StringAdapter.java       |   15 +-
 .../apache/struts2/views/xslt/XSLTResult.java   |   17 +-
 .../beanvalidation/constraints/FieldMatch.java  |    8 +-
 .../interceptor/BeanValidationInterceptor.java  |   11 +
 .../DefaultBeanValidationManager.java           |   10 +-
 .../ClasspathConfigurationProvider.java         |   12 +-
 .../convention/DefaultResultMapBuilder.java     |   19 +-
 .../PackageBasedActionConfigBuilder.java        |   11 +-
 .../struts2/convention/ReflectionTools.java     |    1 +
 .../convention/annotation/Namespace.java        |    2 +-
 .../convention/annotation/ParentPackage.java    |    2 +-
 .../convention/annotation/ResultPath.java       |    2 +-
 .../java/org/apache/struts2/JSPRuntime.java     |    2 +-
 .../struts2/compiler/MemoryClassLoader.java     |    4 +-
 .../apache/struts2/el/MethodExpressionImpl.java |   13 +-
 .../apache/struts2/el/ValueExpressionImpl.java  |    8 +-
 .../org/apache/struts2/el/lang/ELSupport.java   |   37 +-
 .../struts2/el/lang/ExpressionBuilder.java      |    3 -
 .../struts2/el/lang/FunctionMapperImpl.java     |    3 -
 .../struts2/el/parser/ArithmeticNode.java       |    2 +-
 .../apache/struts2/el/parser/BooleanNode.java   |    2 +-
 .../org/apache/struts2/el/parser/ELParser.java  | 4569 ++++++++++--------
 .../struts2/el/parser/ELParserTokenManager.java | 2603 +++++-----
 .../java/org/apache/struts2/el/parser/Node.java |   98 +-
 .../struts2/el/parser/ParseException.java       |   48 +-
 .../struts2/el/parser/SimpleCharStream.java     |  999 ++--
 .../org/apache/struts2/el/parser/Token.java     |   14 +-
 .../apache/struts2/el/parser/TokenMgrError.java |   47 +-
 .../apache/struts2/el/util/ReflectionUtil.java  |   25 +-
 .../struts2/jasper/EmbeddedServletOptions.java  |    7 +-
 .../apache/struts2/jasper/JasperException.java  |    7 +-
 .../java/org/apache/struts2/jasper/JspC.java    |   49 +-
 .../struts2/jasper/JspCompilationContext.java   |   63 +-
 .../java/org/apache/struts2/jasper/Options.java |   52 +-
 .../struts2/jasper/compiler/BeanRepository.java |    5 +-
 .../struts2/jasper/compiler/Compiler.java       |   36 +-
 .../jasper/compiler/ELFunctionMapper.java       |    2 +
 .../jasper/compiler/ErrorDispatcher.java        |  467 +-
 .../struts2/jasper/compiler/ErrorHandler.java   |   35 +-
 .../struts2/jasper/compiler/JspConfig.java      |   10 +-
 .../jasper/compiler/JspRuntimeContext.java      |  194 +-
 .../apache/struts2/jasper/compiler/JspUtil.java | 1126 ++---
 .../struts2/jasper/compiler/ServletWriter.java  |   84 +-
 .../struts2/jasper/compiler/SmapGenerator.java  |    2 +-
 .../struts2/jasper/compiler/SmapStratum.java    |   26 +-
 .../struts2/jasper/compiler/SmapUtil.java       |    1 +
 .../jasper/compiler/TldLocationsCache.java      |   36 +-
 .../compiler/tagplugin/TagPluginContext.java    |   13 +-
 .../jasper/runtime/AnnotationHelper.java        |   13 +
 .../struts2/jasper/runtime/BodyContentImpl.java |   77 +-
 .../jasper/runtime/JspRuntimeLibrary.java       | 1256 ++---
 .../jasper/runtime/JspSourceDependent.java      |    2 +-
 .../struts2/jasper/runtime/JspWriterImpl.java   |   79 +-
 .../struts2/jasper/runtime/PageContextImpl.java |    5 +
 .../jasper/runtime/ProtectedFunctionMapper.java |    3 +
 .../struts2/jasper/security/SecurityUtil.java   |    3 +-
 .../jasper/servlet/JspCServletContext.java      |   42 +-
 .../struts2/jasper/tagplugins/jstl/Util.java    |   64 +-
 .../struts2/jasper/xmlparser/EncodingMap.java   |  520 +-
 .../struts2/jasper/xmlparser/ParserUtils.java   |   12 +-
 .../struts2/jasper/xmlparser/SymbolTable.java   |   27 +-
 .../struts2/jasper/xmlparser/TreeNode.java      |   20 +-
 .../struts2/jasper/xmlparser/XMLChar.java       |   45 +-
 .../jasper/xmlparser/XMLEncodingDetector.java   | 1467 +++---
 .../struts2/jasper/xmlparser/XMLString.java     |   17 +-
 .../jasper/xmlparser/XMLStringBuffer.java       |   91 +-
 .../apache/struts2/views/gxp/AbstractGxp.java   |   33 +-
 .../struts2/views/gxp/AbstractGxpResult.java    |   14 +-
 .../java/org/apache/struts2/views/gxp/Gxp.java  |    8 +
 .../apache/struts2/views/gxp/GxpInstance.java   |   12 +-
 .../org/apache/struts2/views/gxp/GxpResult.java |   24 +-
 .../apache/struts2/dispatcher/ChartResult.java  |    2 +-
 .../apache/struts2/json/JSONInterceptor.java    |   22 +-
 .../org/apache/struts2/json/JSONResult.java     |   42 +-
 .../java/org/apache/struts2/json/JSONUtil.java  |   61 +-
 .../struts2/json/JSONValidationInterceptor.java |    4 +-
 .../org/apache/struts2/json/JSONWriter.java     |   56 +-
 .../struts2/osgi/DefaultBundleAccessor.java     |   13 +-
 .../struts2/osgi/OsgiConfigurationProvider.java |   12 +-
 .../java/org/apache/struts2/osgi/OsgiUtil.java  |   19 +-
 .../apache/struts2/osgi/host/BaseOsgiHost.java  |   13 +-
 .../apache/struts2/osgi/host/FelixOsgiHost.java |    2 +-
 .../osgi/interceptor/OsgiInterceptor.java       |    2 +-
 .../portlet/dispatcher/Jsr168Dispatcher.java    |   35 +-
 .../interceptor/PortletPreferencesAware.java    |    2 +-
 .../result/PortletActionRedirectResult.java     |    4 +-
 .../struts2/portlet/result/PortletResult.java   |   39 +-
 .../portlet/result/PortletResultHelper.java     |    5 +
 .../portlet/result/PortletVelocityResult.java   |    6 +
 .../struts2/portlet/util/PortletUrlHelper.java  |   16 +-
 .../freemarker/PortletFreemarkerResult.java     |   39 +-
 .../struts2/rest/ContentTypeHandlerManager.java |    1 +
 .../org/apache/struts2/rest/HttpHeaders.java    |    6 +-
 .../apache/struts2/rest/RestActionMapper.java   |   16 +-
 .../apache/struts2/rest/RestActionSupport.java  |    2 +-
 .../rest/handler/ContentTypeHandler.java        |    1 +
 .../rest/handler/FormUrlEncodedHandler.java     |   12 +-
 .../rest/handler/MultipartFormDataHandler.java  |   13 +-
 .../ClassReloadingXMLWebApplicationContext.java |   13 +-
 .../spring/StrutsSpringObjectFactory.java       |    3 +
 297 files changed, 9840 insertions(+), 7938 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/ActionChainResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionChainResult.java b/core/src/main/java/com/opensymphony/xwork2/ActionChainResult.java
index 859ccfd..5ec1513 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionChainResult.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionChainResult.java
@@ -181,6 +181,8 @@ public class ActionChainResult implements Result {
     /**
      * Get the XWork chain history.
      * The stack is a list of <code>namespace/action!method</code> keys.
+     *
+     * @return the chain history as string list
      */
     public static LinkedList<String> getChainHistory() {
         LinkedList<String> chainHistory = (LinkedList<String>) ActionContext.getContext().get(CHAIN_HISTORY);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
index 74e45d3..426d3c6 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
@@ -36,7 +36,7 @@ import java.util.Map;
  * this is you don't need to worry about a user specific action context, you just get it:
  * </p>
  *
- * <ul><code>ActionContext context = ActionContext.getContext();</code></ul>
+ * <code>ActionContext context = ActionContext.getContext();</code>
  *
  * <p>
  * Finally, because of the thread local usage you don't need to worry about making your actions thread safe.

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/CompositeTextProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/CompositeTextProvider.java b/core/src/main/java/com/opensymphony/xwork2/CompositeTextProvider.java
index 3927610..28b79da 100644
--- a/core/src/main/java/com/opensymphony/xwork2/CompositeTextProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/CompositeTextProvider.java
@@ -13,7 +13,6 @@ import java.util.*;
  * javadoc for each methods.
  *
  * @author tmjee
- * @version $Date$ $Id$
  */
 public class CompositeTextProvider implements TextProvider {
 
@@ -24,7 +23,7 @@ public class CompositeTextProvider implements TextProvider {
     /**
      * Instantiates a {@link CompositeTextProvider} with some predefined <code>textProviders</code>.
      *
-     * @param textProviders
+     * @param textProviders list of text providers
      */
     public CompositeTextProvider(List<TextProvider> textProviders) {
         this.textProviders.addAll(textProviders);
@@ -33,18 +32,20 @@ public class CompositeTextProvider implements TextProvider {
     /**
      * Instantiates a {@link CompositeTextProvider} with some predefined <code>textProviders</code>.
      *
-     * @param textProviders
+     * @param textProviders array of text providers
      */
     public CompositeTextProvider(TextProvider[] textProviders) {
         this(Arrays.asList(textProviders));
     }
 
     /**
-     * @param key The key to lookup in ressource bundles.
-     * @return <tt>true</tt>, if the requested key is found in one of the ressource bundles.
-     * @see {@link com.opensymphony.xwork2.TextProvider#hasKey(String)}
-     *      It will consult each individual {@link TextProvider}s and return true if either one of the
-     *      {@link TextProvider} has such a <code>key></code> else false.
+     *  It will consult each individual {@link TextProvider}s and return true if either one of the {@link TextProvider}" has such a <code>key</code> else false.
+     *
+     * @param key The key to lookup in resource bundles.
+     * @return <tt>true</tt>, if the requested key is found in one of the resource bundles.
+     *
+     * @see com.opensymphony.xwork2.TextProvider#hasKey(String)
+     *
      */
     public boolean hasKey(String key) {
         // if there's a key in either text providers we are ok, else try the next text provider
@@ -62,7 +63,7 @@ public class CompositeTextProvider implements TextProvider {
      *
      * @param key The key to lookup in resource bundles.
      * @return The i18n text for the requested key.
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String)}
+     * @see com.opensymphony.xwork2.TextProvider#getText(String)
      */
     public String getText(String key) {
         return getText(key, key, Collections.emptyList());
@@ -72,10 +73,10 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code> before returning <code>defaultValue</code> if every else fails.
      *
-     * @param key
-     * @param defaultValue
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String)}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String)
      */
     public String getText(String key, String defaultValue) {
         return getText(key, defaultValue, Collections.emptyList());
@@ -86,11 +87,11 @@ public class CompositeTextProvider implements TextProvider {
      * <code>key</code>, before returning <code>defaultValue</code>
      * if every else fails.
      *
-     * @param key
-     * @param defaultValue
-     * @param obj
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String, String)}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @param obj object
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String, String)
      */
     public String getText(String key, String defaultValue, final String obj) {
         return getText(key, defaultValue, new ArrayList<Object>() {
@@ -104,10 +105,10 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>.
      *
-     * @param key
-     * @param args
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, java.util.List)}
+     * @param key the message key
+     * @param args additional arguments
+     * @return the first valid message for the key
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, java.util.List)
      */
     public String getText(String key, List<?> args) {
         return getText(key, key, args);
@@ -117,10 +118,10 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>.
      *
-     * @param key
-     * @param args
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String[])}
+     * @param key the message key
+     * @param args additional arguments
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String[])
      */
     public String getText(String key, String[] args) {
         return getText(key, key, args);
@@ -131,11 +132,11 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>, before returning <code>defaultValue</code>
      *
-     * @param key
-     * @param defaultValue
-     * @param args
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText#getText(String, String, java.util.List)}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @param args additional arguments
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String, java.util.List)
      */
     public String getText(String key, String defaultValue, List<?> args) {
         // if there's one text provider that gives us a msg not the same as defaultValue
@@ -155,11 +156,11 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>, before returning <code>defaultValue</code>.
      *
-     * @param key
-     * @param defaultValue
-     * @param args
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String, String[])}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @param args additional arguments
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String, String[])
      */
     public String getText(String key, String defaultValue, String[] args) {
         // if there's one text provider that gives us a msg not the same as defaultValue
@@ -179,12 +180,12 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>, before returning <code>defaultValue</code>
      *
-     * @param key
-     * @param defaultValue
-     * @param args
-     * @param stack
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String, java.util.List, com.opensymphony.xwork2.util.ValueStack)}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @param args additional arguments
+     * @param stack the value stack
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String, java.util.List, com.opensymphony.xwork2.util.ValueStack)
      */
     public String getText(String key, String defaultValue, List<?> args, ValueStack stack) {
         // if there's one text provider that gives us a msg not the same as defaultValue
@@ -203,12 +204,12 @@ public class CompositeTextProvider implements TextProvider {
      * It will consult each {@link TextProvider}s and return the first valid message for this
      * <code>key</code>, before returning <code>defaultValue</code>
      *
-     * @param key
-     * @param defaultValue
-     * @param args
-     * @param stack
-     * @return
-     * @see {@link com.opensymphony.xwork2.TextProvider#getText(String, String, String[], com.opensymphony.xwork2.util.ValueStack)}
+     * @param key the message key
+     * @param defaultValue the default value
+     * @param args additional arguments
+     * @param stack the value stack
+     * @return the first valid message for the key or default value
+     * @see com.opensymphony.xwork2.TextProvider#getText(String, String, String[], com.opensymphony.xwork2.util.ValueStack)
      */
     public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
         // if there's one text provider that gives us a msg not the same as defaultValue
@@ -227,9 +228,9 @@ public class CompositeTextProvider implements TextProvider {
     /**
      * It will consult each {@link TextProvider}s and return the first non-null {@link ResourceBundle}.
      *
-     * @param bundleName
-     * @return
-     * @see {@link TextProvider#getTexts(String)}
+     * @param bundleName the bundle name
+     * @return the resource bundle found for bundle name
+     * @see TextProvider#getTexts(String)
      */
     public ResourceBundle getTexts(String bundleName) {
         // if there's one text provider that gives us a non-null resource bundle for this bundleName, we are ok, else try the next
@@ -246,8 +247,8 @@ public class CompositeTextProvider implements TextProvider {
     /**
      * It will consult each {@link com.opensymphony.xwork2.TextProvider}s and return the first non-null {@link ResourceBundle}.
      *
-     * @return
-     * @see {@link TextProvider#getTexts()}
+     * @return the resource bundle
+     * @see TextProvider#getTexts()
      */
     public ResourceBundle getTexts() {
         // if there's one text provider that gives us a non-null resource bundle, we are ok, else try the next

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
index da9fce6..a5b4723 100644
--- a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
@@ -126,7 +126,7 @@ public class DefaultActionInvocation implements ActionInvocation {
      * the result params.
      *
      * @return a Result instance
-     * @throws Exception
+     * @throws Exception in case of any error
      */
     public Result getResult() throws Exception {
         Result returnResult = result;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java b/core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
index 1e4170d..d1bfd71 100644
--- a/core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
+++ b/core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
@@ -41,7 +41,6 @@ import java.util.Locale;
  * @author Rainer Hermanns
  * @author Revised by <a href="mailto:hu_pengfei@yahoo.com.cn">Henry Hu</a>
  * @author tmjee
- * @version $Date$ $Id$
  * @since 2005-8-6
  */
 public class DefaultActionProxy implements ActionProxy, Serializable {
@@ -74,6 +73,13 @@ public class DefaultActionProxy implements ActionProxy, Serializable {
      * </p>
      *
      * (like a RMIActionProxy).
+     *
+     * @param inv the action invocation
+     * @param namespace the namespace
+     * @param actionName the action name
+     * @param methodName the method name
+     * @param executeResult execute result
+     * @param cleanupContext cleanup context
      */
     protected DefaultActionProxy(ActionInvocation inv, String namespace, String actionName, String methodName, boolean executeResult, boolean cleanupContext) {
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/DefaultTextProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultTextProvider.java b/core/src/main/java/com/opensymphony/xwork2/DefaultTextProvider.java
index eb57deb..1d72161 100644
--- a/core/src/main/java/com/opensymphony/xwork2/DefaultTextProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/DefaultTextProvider.java
@@ -29,7 +29,7 @@ import java.util.ResourceBundle;
  * DefaultTextProvider gets texts from only the default resource bundles associated with the
  * LocalizedTextUtil.
  *
- * @author Jason Carreira <jc...@gmail.com>
+ * @author Jason Carreira jcarreira@gmail.com
  * @author Rainer Hermanns
  * @see LocalizedTextUtil#addDefaultResourceBundle(String)
  */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java b/core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java
index e2a4175..5cafe9a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/DefaultUnknownHandlerManager.java
@@ -51,6 +51,8 @@ public class DefaultUnknownHandlerManager implements UnknownHandlerManager {
     /**
      * Builds a list of UnknownHandlers in the order specified by the configured "unknown-handler-stack".
      * If "unknown-handler-stack" was not configured, all UnknownHandlers will be returned, in no specific order
+     *
+     * @throws Exception in case of any error
      */
     protected void build() throws Exception {
         Configuration configuration = container.getInstance(Configuration.class);
@@ -79,6 +81,11 @@ public class DefaultUnknownHandlerManager implements UnknownHandlerManager {
 
     /**
      * Iterate over UnknownHandlers and return the result of the first one that can handle it
+     *
+     * @param actionContext the action context
+     * @param actionName the action name
+     * @param actionConfig  the action config
+     * @param resultCode the result code
      */
     public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) {
         for (UnknownHandler unknownHandler : unknownHandlers) {
@@ -95,7 +102,9 @@ public class DefaultUnknownHandlerManager implements UnknownHandlerManager {
      * Iterate over UnknownHandlers and return the result of the first one that can handle it.
      * Must throw an exception if method cannot be handled.
      *
-     * @throws NoSuchMethodException
+     * @param action the action
+     * @param methodName the method name
+     * @throws NoSuchMethodException if method con not be handled
      */
     public Object handleUnknownMethod(Object action, String methodName) throws NoSuchMethodException {
         for (UnknownHandler unknownHandler : unknownHandlers) {
@@ -114,6 +123,9 @@ public class DefaultUnknownHandlerManager implements UnknownHandlerManager {
 
     /**
      * Iterate over UnknownHandlers and return the result of the first one that can handle it
+     *
+     * @param namespace the namespace
+     * @param actionName the action name
      */
     public ActionConfig handleUnknownAction(String namespace, String actionName) {
         for (UnknownHandler unknownHandler : unknownHandlers) {

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
index 0b055a8..c5ffbb9 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
@@ -114,7 +114,7 @@ public class ObjectFactory implements Serializable {
      *
      * @param className The fully qualified name of the class to return
      * @return The class itself
-     * @throws ClassNotFoundException
+     * @throws ClassNotFoundException if class not found in classpath
      */
     public Class getClassInstance(String className) throws ClassNotFoundException {
         if (ccl != null) {
@@ -131,7 +131,7 @@ public class ObjectFactory implements Serializable {
      * @param config the action configuration found in the config for the actionName / namespace
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
      * @return instance of the action class to handle a web request
-     * @throws Exception
+     * @throws Exception in case of any error
      */
     public Object buildAction(String actionName, String namespace, ActionConfig config, Map<String, Object> extraContext) throws Exception {
         return actionFactory.buildAction(actionName, namespace, config, extraContext);
@@ -142,13 +142,16 @@ public class ObjectFactory implements Serializable {
      *
      * @param clazz the type of Object to build
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     * @return object for the given type
+     * @throws Exception in case of any error
      */
     public Object buildBean(Class clazz, Map<String, Object> extraContext) throws Exception {
         return clazz.newInstance();
     }
 
     /**
-     * @param obj
+     * @param obj object to inject internal
+     * @return the object
      */
     protected Object injectInternalBeans(Object obj) {
         if (obj != null && container != null) {
@@ -162,6 +165,8 @@ public class ObjectFactory implements Serializable {
      *
      * @param className the type of Object to build
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     * @return object for the given type
+     * @throws Exception in case of any error
      */
     public Object buildBean(String className, Map<String, Object> extraContext) throws Exception {
         return buildBean(className, extraContext, true);
@@ -172,6 +177,9 @@ public class ObjectFactory implements Serializable {
      *
      * @param className the type of Object to build
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     * @param injectInternal true if inject internal beans
+     * @return object for the given type
+     * @throws Exception in case of any error
      */
     public Object buildBean(String className, Map<String, Object> extraContext, boolean injectInternal) throws Exception {
         Class clazz = getClassInstance(className);
@@ -185,7 +193,7 @@ public class ObjectFactory implements Serializable {
     /**
      * Builds an Interceptor from the InterceptorConfig and the Map of
      * parameters from the interceptor reference. Implementations of this method
-     * should ensure that the Interceptor is parameterized with both the
+     * should ensure that the Interceptor is parametrized with both the
      * parameters from the Interceptor config and the interceptor ref Map (the
      * interceptor ref params take precedence), and that the Interceptor.init()
      * method is called on the Interceptor instance before it is returned.
@@ -193,6 +201,7 @@ public class ObjectFactory implements Serializable {
      * @param interceptorConfig    the InterceptorConfig from the configuration
      * @param interceptorRefParams a Map of params provided in the Interceptor reference in the
      *                             Action mapping or InterceptorStack definition
+     * @return interceptor
      */
     public Interceptor buildInterceptor(InterceptorConfig interceptorConfig, Map<String, String> interceptorRefParams) throws ConfigurationException {
         return interceptorFactory.buildInterceptor(interceptorConfig, interceptorRefParams);
@@ -203,6 +212,9 @@ public class ObjectFactory implements Serializable {
      *
      * @param resultConfig the ResultConfig found for the action with the result code returned
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     *
+     * @return result
+     * @throws Exception in case of any error
      */
     public Result buildResult(ResultConfig resultConfig, Map<String, Object> extraContext) throws Exception {
         return resultFactory.buildResult(resultConfig, extraContext);
@@ -212,8 +224,11 @@ public class ObjectFactory implements Serializable {
      * Build a Validator of the given type and set the parameters on it
      *
      * @param className the type of Validator to build
-     * @param params    property name -> value Map to set onto the Validator instance
+     * @param params    property name -&gt; value Map to set onto the Validator instance
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
+     *
+     * @return validator of the given type
+     * @throws Exception in case of any error
      */
     public Validator buildValidator(String className, Map<String, Object> params, Map<String, Object> extraContext) throws Exception {
         return validatorFactory.buildValidator(className, params, extraContext);
@@ -225,6 +240,7 @@ public class ObjectFactory implements Serializable {
      * @param converterClass to instantiate
      * @param extraContext a Map of extra context which uses the same keys as the {@link com.opensymphony.xwork2.ActionContext}
      * @return instance of converterClass with inject dependencies
+     * @throws Exception in case of any error
      */
     public TypeConverter buildConverter(Class<? extends TypeConverter> converterClass, Map<String, Object> extraContext) throws Exception {
         return converterFactory.buildConverter(converterClass, extraContext);
@@ -233,10 +249,10 @@ public class ObjectFactory implements Serializable {
     /**
      * Builds unknown handler
      *
-     * @param unknownHandlerName
-     * @param extraContext
-     * @return
-     * @throws Exception
+     * @param unknownHandlerName the unknown handler name
+     * @param extraContext extra context
+     * @return a unknown handler
+     * @throws Exception in case of any error
      */
     public UnknownHandler buildUnknownHandler(String unknownHandlerName, Map<String, Object> extraContext) throws Exception {
         return unknownHandlerFactory.buildUnknownHandler(unknownHandlerName, extraContext);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/UnknownHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/UnknownHandler.java b/core/src/main/java/com/opensymphony/xwork2/UnknownHandler.java
index 2b5c7c1..51556d6 100644
--- a/core/src/main/java/com/opensymphony/xwork2/UnknownHandler.java
+++ b/core/src/main/java/com/opensymphony/xwork2/UnknownHandler.java
@@ -33,7 +33,7 @@ public interface UnknownHandler {
      * @param namespace The namespace
      * @param actionName The action name
      * @return An generated ActionConfig, can return <tt>null</tt>
-     * @throws XWorkException
+     * @throws XWorkException in case of errors
      */
     ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException;
     
@@ -45,7 +45,7 @@ public interface UnknownHandler {
      * @param actionConfig The action config
      * @param resultCode The returned result code
      * @return A result to be executed, can return <tt>null</tt>
-     * @throws XWorkException
+     * @throws XWorkException in case of errors
      */
     Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws XWorkException;
     

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java b/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
index ab6b2ab..9af002f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/Configuration.java
@@ -65,8 +65,9 @@ public interface Configuration extends Serializable {
 
     /**
      * @since 2.1
-     * @param containerProviders
-     * @throws ConfigurationException
+     * @param containerProviders list of container providers
+     * @return list of package providers
+     * @throws ConfigurationException in case of any configuration errors
      */
     List<PackageProvider> reloadContainer(List<ContainerProvider> containerProviders) throws ConfigurationException;
 
@@ -85,7 +86,7 @@ public interface Configuration extends Serializable {
 
     /**
      * @since 2.1
-     * @param unknownHandlerStack
+     * @param unknownHandlerStack list of unknown handlers
      */
     void setUnknownHandlerStack(List<UnknownHandlerConfig> unknownHandlerStack);
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationException.java b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationException.java
index fcbb11b..af505f7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationException.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationException.java
@@ -46,6 +46,7 @@ public class ConfigurationException extends XWorkException {
      * detail message.
      *
      * @param s the detail message.
+     * @param target the target object
      */
     public ConfigurationException(String s, Object target) {
         super(s, target);
@@ -53,6 +54,8 @@ public class ConfigurationException extends XWorkException {
 
     /**
      * Constructs a <code>ConfigurationException</code> with no detail message.
+     *
+     * @param cause the cause of the exception
      */
     public ConfigurationException(Throwable cause) {
         super(cause);
@@ -60,6 +63,8 @@ public class ConfigurationException extends XWorkException {
     
     /**
      * Constructs a <code>ConfigurationException</code> with no detail message.
+     * @param cause the cause of the exception
+     * @param target the target object
      */
     public ConfigurationException(Throwable cause, Object target) {
         super(cause, target);
@@ -70,6 +75,7 @@ public class ConfigurationException extends XWorkException {
      * detail message.
      *
      * @param s the detail message.
+     * @param cause the cause of the exception
      */
     public ConfigurationException(String s, Throwable cause) {
         super(s, cause);
@@ -80,6 +86,8 @@ public class ConfigurationException extends XWorkException {
      * detail message.
      *
      * @param s the detail message.
+     * @param cause the cause of the exception
+     * @param target the target object
      */
     public ConfigurationException(String s, Throwable cause, Object target) {
         super(s, cause, target);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
index 63abe87..ea51c63 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
@@ -56,7 +56,7 @@ public class ConfigurationManager {
     }
 
     /**
-     * Get the current XWork configuration object.  By default an instance of DefaultConfiguration will be returned
+     * @return the current XWork configuration object. By default an instance of DefaultConfiguration will be returned
      *
      * @see com.opensymphony.xwork2.config.impl.DefaultConfiguration
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/PackageProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/PackageProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/PackageProvider.java
index dd0dfae..9020e3c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/PackageProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/PackageProvider.java
@@ -28,19 +28,19 @@ public interface PackageProvider {
      * @param configuration The configuration
      * @throws ConfigurationException If anything goes wrong
      */
-    public void init(Configuration configuration) throws ConfigurationException;
+    void init(Configuration configuration) throws ConfigurationException;
     
     /**
      * Tells whether the PackageProvider should reload its configuration
      *
      * @return <tt>true</tt>, whether the PackageProvider should reload its configuration, <tt>false</tt>otherwise.
      */
-    public boolean needsReload();
+    boolean needsReload();
 
     /**
      * Loads the packages for the configuration.
-     * @throws ConfigurationException
+     * @throws ConfigurationException in case of configuration errors
      */
-    public void loadPackages() throws ConfigurationException;
+    void loadPackages() throws ConfigurationException;
     
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java b/core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
index d796c02..b32f2cf 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/entities/ActionConfig.java
@@ -30,8 +30,8 @@ import java.util.*;
  * Interface and the execute() method called</li>
  * <li>clazz - the class name for the action</li>
  * <li>params - the params to be set for this action just before execution</li>
- * <li>results - the result map {String -> View class}</li>
- * <li>resultParameters - params for results {String -> Map}</li>
+ * <li>results - the result map {String -&gt; View class}</li>
+ * <li>resultParameters - params for results {String -&gt; Map}</li>
  * <li>typeConverter - the Ognl TypeConverter to use when getting/setting properties</li>
  * </ul>
  *
@@ -68,7 +68,7 @@ public class ActionConfig extends Located implements Serializable {
     /**
      * Clones an ActionConfig, copying data into new maps and lists
      * @param orig The ActionConfig to clone
-     * @Since 2.1
+     * @since 2.1
      */
     protected ActionConfig(ActionConfig orig) {
         this.name = orig.name;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java b/core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
index f17eed6..51632b5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/entities/InterceptorStackConfig.java
@@ -49,13 +49,13 @@ public class InterceptorStackConfig extends Located implements Serializable {
      * Creates an InterceptorStackConfig object.
      */
     protected InterceptorStackConfig() {
-        this.interceptors = new ArrayList<InterceptorMapping>();
+        this.interceptors = new ArrayList<>();
     }
 
     /**
      * Creates an InterceptorStackConfig object with a particular <code>name</code>.
      *
-     * @param name
+     * @param orig interceptor stack configuration
      */
     protected InterceptorStackConfig(InterceptorStackConfig orig) {
         this.name = orig.name;
@@ -67,7 +67,7 @@ public class InterceptorStackConfig extends Located implements Serializable {
     /**
      * Returns a <code>Collection</code> of InterceptorMapping objects.
      *
-     * @return
+     * @return collection of interceptor mappings
      */
     public Collection<InterceptorMapping> getInterceptors() {
         return interceptors;
@@ -89,6 +89,9 @@ public class InterceptorStackConfig extends Located implements Serializable {
      * <li>both names are equals</li>
      * <li>all of their <code>InterceptorMapping</code>s are equals</li>
      * </ul>
+     *
+     * @param o the given object to check
+     * @return true if object match the rules
      */
     @Override
     public boolean equals(Object o) {
@@ -114,7 +117,7 @@ public class InterceptorStackConfig extends Located implements Serializable {
     }
 
     /**
-     * Generate hashcode based on <code>InterceptorStackConfig</code>'s name and its
+     * @return generated hashcode based on <code>InterceptorStackConfig</code>'s name and its
      * <code>InterceptorMapping</code>s.
      */
     @Override
@@ -151,6 +154,10 @@ public class InterceptorStackConfig extends Located implements Serializable {
 
         /**
          * Add an <code>InterceptorMapping</code> object.
+         *
+         * @param interceptor interceptor mapping
+         *
+         * @return this builder
          */
         public Builder addInterceptor(InterceptorMapping interceptor) {
             target.interceptors.add(interceptor);
@@ -159,6 +166,10 @@ public class InterceptorStackConfig extends Located implements Serializable {
 
         /**
          * Add a List of <code>InterceptorMapping</code> objects.
+         *
+         * @param interceptors list of interceptor mappings
+         *
+         * @return this builder
          */
         public Builder addInterceptors(List<InterceptorMapping> interceptors) {
             target.interceptors.addAll(interceptors);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java b/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
index 0f803f2..c9ef12d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
@@ -217,14 +217,14 @@ public class PackageConfig extends Located implements Comparable, Serializable,
     }
 
     /**
-     * Returns the default result type for this package.
+     * @return the default result type for this package.
      */
     public String getDefaultResultType() {
         return defaultResultType;
     }
 
     /**
-     * gets the default interceptor-ref name. If this is not set on this PackageConfig, it searches the parent
+     * @return the default interceptor-ref name. If this is not set on this PackageConfig, it searches the parent
      * PackageConfigs in order until it finds one.
      */
     public String getFullDefaultInterceptorRef() {
@@ -242,7 +242,7 @@ public class PackageConfig extends Located implements Comparable, Serializable,
     }
 
     /**
-     * gets the default action-ref name. If this is not set on this PackageConfig, it searches the parent
+     * @return the default action-ref name. If this is not set on this PackageConfig, it searches the parent
      * PackageConfigs in order until it finds one.
      */
     public String getFullDefaultActionRef() {
@@ -267,6 +267,8 @@ public class PackageConfig extends Located implements Comparable, Serializable,
      * If there is no default result type, but this package has parents - we will try to
      * look up the default result type of a parent.
      * </p>
+     *
+     * @return the default result type for this package.
      */
     public String getFullDefaultResultType() {
         if ((defaultResultType == null) && !parents.isEmpty()) {
@@ -481,7 +483,9 @@ public class PackageConfig extends Located implements Comparable, Serializable,
         /**
          * sets the default Result type for this package
          *
-         * @param defaultResultType
+         * @param defaultResultType set the default result type
+         *
+         * @return this builder
          */
         public Builder defaultResultType(String defaultResultType) {
             target.defaultResultType = defaultResultType;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java
index 5deb7cb..954657f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java
@@ -142,11 +142,12 @@ public abstract class AbstractMatcher<E> implements Serializable {
     protected abstract E convert(String path, E orig, Map<String, String> vars);
 
     /**
-     * <p> Replaces parameter values
-     * </p>
+     * <p>Replaces parameter values</p>
      *
      * @param orig  The original parameters with placeholder values
      * @param vars  A Map of wildcard-matched strings
+     *
+     * @return map with replaced parameters
      */
     protected Map<String,String> replaceParameters(Map<String, String> orig, Map<String,String> vars) {
         Map<String, String> map = new LinkedHashMap<>();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
index 2d0a3c5..bb97ce8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java
@@ -50,6 +50,7 @@ public class ActionConfigMatcher extends AbstractMatcher<ActionConfig> implement
      * last two characters didn't exist.  The goal is to support the 
      * legacy "*!*" syntax, where the "!*" is optional.</p> 
      *
+     * @param patternMatcher pattern matcher
      * @param configs An array of ActionConfig's to process
      * @param looseMatch To loosely match wildcards or not
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
index 2bc98ab..1aa45c1 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java
@@ -143,7 +143,9 @@ public class DefaultConfiguration implements Configuration {
      * Calls the ConfigurationProviderFactory.getConfig() to tell it to reload the configuration and then calls
      * buildRuntimeConfiguration().
      *
-     * @throws ConfigurationException
+     * @return list of package providers
+     *
+     * @throws ConfigurationException in case of any configuration errors
      */
     public synchronized List<PackageProvider> reloadContainer(List<ContainerProvider> providers) throws ConfigurationException {
         packageContexts.clear();
@@ -272,14 +274,20 @@ public class DefaultConfiguration implements Configuration {
     }
 
     /**
+     * <p>
      * This builds the internal runtime configuration used by Xwork for finding and configuring Actions from the
      * programmatic configuration data structures. All of the old runtime configuration will be discarded and rebuilt.
+     * </p>
      *
      * <p>
      * It basically flattens the data structures to make the information easier to access.  It will take
      * an {@link ActionConfig} and combine its data with all inherited dast.  For example, if the {@link ActionConfig}
      * is in a package that contains a global result and it also contains a result, the resulting {@link ActionConfig}
      * will have two results.
+     * </p>
+     *
+     * @return runtime configuration
+     * @throws ConfigurationException in case of any configuration errors
      */
     protected synchronized RuntimeConfiguration buildRuntimeConfiguration() throws ConfigurationException {
         Map<String, Map<String, ActionConfig>> namespaceActionConfigs = new LinkedHashMap<>();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatch.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatch.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatch.java
index 52a0886..ce2ae70 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatch.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatch.java
@@ -20,7 +20,7 @@ import java.util.Map;
 /**
  * Represents a match from a namespace pattern matching.
  *
- * @Since 2.1
+ * @since 2.1
  */
 public class NamespaceMatch {
     private String pattern;

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatcher.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatcher.java
index 3d64c33..6fa9ec3 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatcher.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/NamespaceMatcher.java
@@ -23,7 +23,7 @@ import java.util.Set;
 /**
  * Matches namespace strings against a wildcard pattern matcher
  *
- * @Since 2.1
+ * @since 2.1
  */
 public class NamespaceMatcher extends AbstractMatcher<NamespaceMatch> {
      public NamespaceMatcher(PatternMatcher<?> patternMatcher,

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/providers/InterceptorBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/InterceptorBuilder.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/InterceptorBuilder.java
index 1328205..04439fb 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/InterceptorBuilder.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/InterceptorBuilder.java
@@ -38,7 +38,6 @@ import java.util.Map;
  * @author Mike
  * @author Rainer Hermanns
  * @author tmjee
- * @version $Date$ $Id$
  */
 public class InterceptorBuilder {
 
@@ -48,11 +47,13 @@ public class InterceptorBuilder {
     /**
      * Builds a list of interceptors referenced by the refName in the supplied PackageConfig (InterceptorMapping object).
      *
-     * @param interceptorLocator
-     * @param refName
-     * @param refParams
+     * @param interceptorLocator interceptor locator
+     * @param refName reference name
+     * @param refParams reference parameters
+     * @param location location
+     * @param objectFactory object factory
      * @return list of interceptors referenced by the refName in the supplied PackageConfig (InterceptorMapping object).
-     * @throws ConfigurationException
+     * @throws ConfigurationException in case of any configuration errors
      */
     public static List<InterceptorMapping> constructInterceptorReference(InterceptorLocator interceptorLocator,
                                                                          String refName, Map<String,String> refParams, Location location, ObjectFactory objectFactory) throws ConfigurationException {
@@ -96,9 +97,9 @@ public class InterceptorBuilder {
      * Builds a list of interceptors referenced by the refName in the supplied PackageConfig overriding the properties
      * of the referenced interceptor with refParams.
      *
-     * @param interceptorLocator
-     * @param stackConfig
-     * @param refParams          The overridden interceptor properies
+     * @param interceptorLocator interceptor locator
+     * @param stackConfig interceptor stack configuration
+     * @param refParams The overridden interceptor properties
      * @return list of interceptors referenced by the refName in the supplied PackageConfig overridden with refParams.
      */
     private static List<InterceptorMapping> constructParameterizedInterceptorReferences(

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
index e8e6548..12a71c7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
@@ -120,6 +120,8 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
 
     /**
      * Returns an unmodifiable map of DTD mappings
+     *
+     * @return map of DTD mappings
      */
     public Map<String, String> getDtdMappings() {
         return dtdMappings;
@@ -484,6 +486,10 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
 
     /**
      * Create a PackageConfig from an XML element representing it.
+     *
+     * @param packageElement the given XML element
+     * @return the package config
+     * @throws ConfigurationException in case of configuration errors
      */
     protected PackageConfig addPackage(Element packageElement) throws ConfigurationException {
         String packageName = packageElement.getAttribute("name");
@@ -602,9 +608,14 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
      * <p>
      * This method builds a package context by looking for the parents of this new package.
      * </p>
+     *
      * <p>
      * If no parents are found, it will return a root package.
      * </p>
+     *
+     * @param packageElement the package element
+     *
+     * @return the package config builder
      */
     protected PackageConfig.Builder buildPackageContext(Element packageElement) {
         String parent = packageElement.getAttribute("extends");
@@ -654,6 +665,11 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
 
     /**
      * Build a map of ResultConfig objects from below a given XML element.
+     *
+     * @param element the given XML element
+     * @param packageContext the package context
+     *
+     * @return map of result config objects
      */
     protected Map<String, ResultConfig> buildResults(Element element, PackageConfig.Builder packageContext) {
         NodeList resultEls = element.getElementsByTagName("result");
@@ -769,7 +785,12 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
     }
 
     /**
-     * Build a map of ResultConfig objects from below a given XML element.
+     * Build a list of exception mapping objects from below a given XML element.
+     *
+     * @param element the given XML element
+     * @param packageContext the package context
+     *
+     * @return list of exception mapping config objects
      */
     protected List<ExceptionMappingConfig> buildExceptionMappings(Element element, PackageConfig.Builder packageContext) {
         NodeList exceptionMappingEls = element.getElementsByTagName("exception-mapping");
@@ -842,6 +863,9 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
 
     /**
      * Load all of the global results for this package from the XML element.
+     *
+     * @param packageContext the package context
+     * @param packageElement the given XML element
      */
     protected void loadGlobalResults(PackageConfig.Builder packageContext, Element packageElement) {
         NodeList globalResultList = packageElement.getElementsByTagName("global-results");
@@ -863,6 +887,9 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
 
     /**
      * Load all of the global results for this package from the XML element.
+     *
+     * @param packageContext the package context
+     * @param packageElement the given XML element
      */
     protected void loadGobalExceptionMappings(PackageConfig.Builder packageContext, Element packageElement) {
         NodeList globalExceptionMappingList = packageElement.getElementsByTagName("global-exception-mappings");
@@ -922,14 +949,6 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
         loadInterceptorStacks(element, context);
     }
 
-    //    protected void loadPackages(Element rootElement) throws ConfigurationException {
-    //        NodeList packageList = rootElement.getElementsByTagName("package");
-    //
-    //        for (int i = 0; i < packageList.getLength(); i++) {
-    //            Element packageElement = (Element) packageList.item(i);
-    //            addPackage(packageElement);
-    //        }
-    //    }
     private List<Document> loadConfigurationFiles(String fileName, Element includeElement) {
         List<Document> docs = new ArrayList<>();
         List<Document> finalDocs = new ArrayList<>();
@@ -1049,9 +1068,10 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
      * Looks up the Interceptor Class from the interceptor-ref name and creates an instance, which is added to the
      * provided List, or, if this is a ref to a stack, it adds the Interceptor instances from the List to this stack.
      *
-     * @param interceptorRefElement Element to pull interceptor ref data from
      * @param context               The PackageConfig to lookup the interceptor from
+     * @param interceptorRefElement Element to pull interceptor ref data from
      * @return A list of Interceptor objects
+     * @throws ConfigurationException in case of configuration errors
      */
     private List<InterceptorMapping> lookupInterceptorReference(PackageConfig.Builder context, Element interceptorRefElement) throws ConfigurationException {
         String refName = interceptorRefElement.getAttribute("name");

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlHelper.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlHelper.java
index fd85be5..9ab196d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlHelper.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlHelper.java
@@ -34,24 +34,31 @@ public class XmlHelper {
 
 
     /**
+     * <p>
      * This method will find all the parameters under this <code>paramsElement</code> and return them as
-     * Map<String, String>. For example,
+     * Map&lt;String, String&gt;. For example,
+     * </p>
+     *
      * <pre>
-     *   <result ... >
-     *      <param name="param1">value1</param>
-     *      <param name="param2">value2</param>
-     *      <param name="param3">value3</param>
-     *   </result>
+     *   &lt;result ... &gt;
+     *      &lt;param name=&quot;param1&quot;&gt;value1&lt;/param&gt;
+     *      &lt;param name=&quot;param2&quot;&gt;value2&lt;/param&gt;
+     *      &lt;param name=&quot;param3&quot;&gt;value3&lt;/param&gt;
+     *   &lt;/result&gt;
      * </pre>
-     * will returns a Map<String, String> with the following key, value pairs :-
+     *
+     * <p>
+     * will returns a Map&lt;String, String&gt; with the following key, value pairs:
+     * </p>
+     *
      * <ul>
      * <li>param1 - value1</li>
      * <li>param2 - value2</li>
      * <li>param3 - value3</li>
      * </ul>
      *
-     * @param paramsElement
-     * @return
+     * @param paramsElement params element
+     * @return a map of key,value pairs
      */
     public static Map<String, String> getParams(Element paramsElement) {
         LinkedHashMap<String, String> params = new LinkedHashMap<>();
@@ -86,7 +93,7 @@ public class XmlHelper {
      * </p>
      *
      * <pre>
-     *    <result>something_1</result>
+     *    &lt;result&gt;something_1&lt;/result&gt;
      * </pre>
      *
      * <p>
@@ -95,7 +102,8 @@ public class XmlHelper {
      * namely, <code>something_1</code> in the example above.
      * </p>
      *
-     * @return
+     * @param element the DOM element
+     * @return content as string
      */
     public static String getContent(Element element) {
         StringBuilder paramValue = new StringBuilder();
@@ -113,7 +121,8 @@ public class XmlHelper {
     }
 
     /**
-     * Return the value of the "order" attribute from the root element
+     * @param doc document
+     * @return the value of the "order" attribute from the root element
      */
      public static Integer getLoadOrder(Document doc) {
         Element rootElement = doc.getDocumentElement();

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/NullHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/NullHandler.java b/core/src/main/java/com/opensymphony/xwork2/conversion/NullHandler.java
index 86d71f0..9edfda5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/NullHandler.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/NullHandler.java
@@ -33,22 +33,37 @@ package com.opensymphony.xwork2.conversion;
 import java.util.Map;
 
 /**
-* Interface for handling null results from Chains.
-* Object has the opportunity to substitute an object for the
-* null and continue.
-* @author Luke Blanshard (blanshlu@netscape.net)
-* @author Drew Davidson (drew@ognl.org)
-*/
+ * <p>
+ * Interface for handling null results from Chains.
+ * Object has the opportunity to substitute an object for the
+ * null and continue.
+ * </p>
+ *
+ * @author Luke Blanshard (blanshlu@netscape.net)
+ * @author Drew Davidson (drew@ognl.org)
+ */
 public interface NullHandler
 {
     /**
-        Method called on target returned null.
+     *  Method called on target returned null.
+     *  @param context context
+     *  @param target target object
+     *  @param methodName method name
+     *  @param args arguments
+     *
+     *  @return object
      */
-    public Object nullMethodResult(Map<String, Object> context, Object target, String methodName, Object[] args);
+    Object nullMethodResult(Map<String, Object> context, Object target, String methodName, Object[] args);
     
     /**
-        Property in target evaluated to null.  Property can be a constant
-        String property name or a DynamicSubscript.
+     *   Property in target evaluated to null.  Property can be a constant
+     *   String property name or a DynamicSubscript.
+     *
+     *  @param context context
+     *  @param target target object
+     *  @param property property
+     *
+     *  @return object
      */
-    public Object nullPropertyValue(Map<String, Object> context, Object target, Object property);
+    Object nullPropertyValue(Map<String, Object> context, Object target, Object property);
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConversionException.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConversionException.java b/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConversionException.java
index 033ee73..82e4f34 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConversionException.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConversionException.java
@@ -27,7 +27,7 @@ import com.opensymphony.xwork2.XWorkException;
 public class TypeConversionException extends XWorkException {
 
     /**
-     * Constructs a <code>XWorkException</code> with no detail  message.
+     * Constructs a <code>XWorkException</code> with no detail message.
      */
     public TypeConversionException() {
     }
@@ -44,6 +44,7 @@ public class TypeConversionException extends XWorkException {
 
     /**
      * Constructs a <code>XWorkException</code> with no detail  message.
+     * @param cause the cause
      */
     public TypeConversionException(Throwable cause) {
         super(cause);
@@ -54,6 +55,7 @@ public class TypeConversionException extends XWorkException {
      * detail message.
      *
      * @param s the detail message.
+     * @param cause the cause
      */
     public TypeConversionException(String s, Throwable cause) {
         super(s, cause);

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java
index 45bad80..aa02df7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java
@@ -36,7 +36,7 @@ import java.lang.annotation.Target;
  * <p> <u>Annotation parameters:</u> </p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -92,6 +92,8 @@ public @interface Conversion {
 
     /**
      * Allow Type Conversions being applied at Type level.
+     *
+     * @return type conversion
      */
     TypeConversion[] conversions() default {};
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
index d7037bf..6640659 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
@@ -25,29 +25,29 @@ import java.lang.annotation.Target;
  * <p>This annotation is used for class and application wide conversion rules.</p>
  *
  * <p>
- * Class wide conversion:<br/>
+ * Class wide conversion:<br>
  * The conversion rules will be assembled in a file called <code>XXXAction-conversion.properties</code>
  * within the same package as the related action class.
  * Set type to: <code>type = ConversionType.CLASS</code>
  * </p>
  *
  * <p>
- * Application wide conversion:<br/>
+ * Application wide conversion:<br>
  * The conversion rules will be assembled within the <code>xwork-conversion.properties</code> file within the classpath root.
  * Set type to: <code>type = ConversionType.APPLICATION</code>
  * </p>
  * <!-- END SNIPPET: description -->
  *
- * <p> <u>Annotation usage:</u></p>
+ * <p><u>Annotation usage:</u></p>
  *
  * <!-- START SNIPPET: usage -->
- * The TypeConversion annotation can be applied at property and method level.
+ * <p>The TypeConversion annotation can be applied at property and method level.</p>
  * <!-- END SNIPPET: usage -->
  *
- * <p> <u>Annotation parameters:</u></p>
+ * <p><u>Annotation parameters:</u></p>
  *
  * <!-- START SNIPPET: parameters -->
- * <table>
+ * <table summary="">
  * <thead>
  * <tr>
  * <th>Parameter</th>
@@ -144,6 +144,8 @@ public @interface TypeConversion {
     /**
      * The optional key name used within TYPE level annotations.
      * Defaults to the property name.
+     *
+     * @return key
      */
     String key() default "";
 
@@ -152,6 +154,8 @@ public @interface TypeConversion {
      * Defaults to CLASS.
      *
      * Note: If you use ConversionType.APPLICATION, you can not set a value!
+     *
+     * @return the conversion type
      */
     ConversionType type() default ConversionType.CLASS;
 
@@ -160,13 +164,17 @@ public @interface TypeConversion {
      * Note: Collection and Map conversion rules can be determined via com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer.
      *
      * @see com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer
+     *
+     * @return the conversion rule
      */
     ConversionRule rule() default ConversionRule.PROPERTY;
 
     /**
      * The class of the TypeConverter to be used as converter.
      *
-     * Note: This can not be used with ConversionRule.KEY_PROPERTY! 
+     * Note: This can not be used with ConversionRule.KEY_PROPERTY!
+     *
+     * @return class of the TypeConverter to be used as converter
      */
     String converter() default "";
 
@@ -174,6 +182,8 @@ public @interface TypeConversion {
      * If used with ConversionRule.KEY_PROPERTY specify a value here!
      *
      * Note: If you use ConversionType.APPLICATION, you can not set a value!
+     *
+     * @return value
      */
     String value() default "";
 

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverter.java
index 47bcd1b..8b3a9a6 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverter.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverter.java
@@ -312,6 +312,8 @@ public abstract class DefaultTypeConverter implements TypeConverter {
      * 
      * @param value
      *            an object to interpret as a String
+     * @param trim
+     *            trims the result if true
      * @return the String value implied by the given object as returned by the
      *         toString() method, or "null" if the object is null.
      */

http://git-wip-us.apache.org/repos/asf/struts/blob/775c82a7/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
index 308d5e1..e94eb4e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/InstantiatingNullHandler.java
@@ -30,38 +30,35 @@ import java.util.*;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- *
+ * <p>
  * Provided that the key {@link ReflectionContextState#CREATE_NULL_OBJECTS} is in the action context with a value of true (this key is set
  * only during the execution of the {@link com.opensymphony.xwork2.interceptor.ParametersInterceptor}), OGNL expressions
  * that have caused a NullPointerException will be temporarily stopped for evaluation while the system automatically
  * tries to solve the null references by automatically creating the object.
+ * </p>
  *
- * <p> The following rules are used when handling null references:</p>
+ * <p>The following rules are used when handling null references:</p>
  *
  * <ul>
- *
  * <li>If the property is declared <i>exactly</i> as a {@link Collection} or {@link List}, then an ArrayList shall be
  * returned and assigned to the null references.</li>
- *
  * <li>If the property is declared as a {@link Map}, then a HashMap will be returned and assigned to the null
  * references.</li>
- *
  * <li>If the null property is a simple bean with a no-arg constructor, it will simply be created using the {@link
  * ObjectFactory#buildBean(java.lang.Class, java.util.Map)} method.</li>
- *
  * </ul>
  *
  * <!-- END SNIPPET: javadoc -->
  *
  * <!-- START SNIPPET: example -->
- *
+ * <p>
  * For example, if a form element has a text field named <b>person.name</b> and the expression <i>person</i> evaluates
  * to null, then this class will be invoked. Because the <i>person</i> expression evaluates to a <i>Person</i> class, a
  * new Person is created and assigned to the null reference. Finally, the name is set on that object and the overall
  * effect is that the system automatically created a Person object for you, set it by calling setUsers() and then
  * finally called getUsers().setName() as you would typically expect.
- *
- * <!-- END SNIPPET: example>
+ * </p>
+ * <!-- END SNIPPET: example -->
  *
  * @author Matt Ho
  * @author Patrick Lightbody