You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/10/19 13:32:08 UTC

[tomcat] 05/08: Remove jsp:plugin support - align with JSP 4.0

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

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

commit 0b4951cf9d9cc43504554e6abf65c6de0f79df2b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Oct 19 12:19:37 2022 +0100

    Remove jsp:plugin support - align with JSP 4.0
---
 java/org/apache/jasper/compiler/Collector.java     | 11 ---
 .../apache/jasper/compiler/ELFunctionMapper.java   |  7 --
 java/org/apache/jasper/compiler/Generator.java     |  8 --
 .../apache/jasper/compiler/JspDocumentParser.java  | 25 ------
 java/org/apache/jasper/compiler/Node.java          | 99 ----------------------
 java/org/apache/jasper/compiler/PageDataImpl.java  | 15 ----
 java/org/apache/jasper/compiler/Parser.java        | 81 +-----------------
 java/org/apache/jasper/compiler/SmapUtil.java      |  6 --
 java/org/apache/jasper/compiler/TagConstants.java  |  9 --
 java/org/apache/jasper/compiler/Validator.java     | 64 --------------
 .../jasper/resources/LocalStrings.properties       |  9 +-
 .../jasper/resources/LocalStrings_cs.properties    |  1 -
 .../jasper/resources/LocalStrings_de.properties    |  1 -
 .../jasper/resources/LocalStrings_es.properties    |  9 +-
 .../jasper/resources/LocalStrings_fr.properties    |  9 +-
 .../jasper/resources/LocalStrings_ja.properties    |  9 +-
 .../jasper/resources/LocalStrings_ko.properties    |  9 +-
 .../jasper/resources/LocalStrings_pt_BR.properties |  1 -
 .../jasper/resources/LocalStrings_ru.properties    |  1 -
 .../jasper/resources/LocalStrings_zh_CN.properties |  9 +-
 test/org/apache/jasper/compiler/Dumper.java        | 14 ---
 test/org/apache/jasper/compiler/TestGenerator.java |  5 --
 .../jasper/compiler/TestJspDocumentParser.java     |  7 +-
 .../{document-4.0.jspx => document-4.1.jspx}       |  2 +-
 .../document-4.0.jspx                              |  0
 test/webapp/jsp/generator/attribute-04.jsp         | 13 ---
 test/webapp/jsp/generator/plugin-01.jspx           | 54 ------------
 27 files changed, 14 insertions(+), 464 deletions(-)

diff --git a/java/org/apache/jasper/compiler/Collector.java b/java/org/apache/jasper/compiler/Collector.java
index 9ba669a35f..58c42b82bb 100644
--- a/java/org/apache/jasper/compiler/Collector.java
+++ b/java/org/apache/jasper/compiler/Collector.java
@@ -83,17 +83,6 @@ class Collector {
                 visitBody(n);
         }
 
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-            if (n.getHeight() != null && n.getHeight().isExpression()) {
-                scriptingElementSeen = true;
-            }
-            if (n.getWidth() != null && n.getWidth().isExpression()) {
-                scriptingElementSeen = true;
-            }
-            visitBody(n);
-        }
-
         @Override
         public void visit(Node.CustomTag n) throws JasperException {
             // Check to see what kinds of element we see as child elements
diff --git a/java/org/apache/jasper/compiler/ELFunctionMapper.java b/java/org/apache/jasper/compiler/ELFunctionMapper.java
index 7da9b947f0..a4ad003cee 100644
--- a/java/org/apache/jasper/compiler/ELFunctionMapper.java
+++ b/java/org/apache/jasper/compiler/ELFunctionMapper.java
@@ -113,13 +113,6 @@ public class ELFunctionMapper {
             visitBody(n);
         }
 
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-            doMap(n.getHeight());
-            doMap(n.getWidth());
-            visitBody(n);
-        }
-
         @Override
         public void visit(Node.JspElement n) throws JasperException {
 
diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java
index 158cfb5f1e..d092141d7c 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -1523,14 +1523,6 @@ class Generator {
             n.setEndJavaLine(out.getJavaLine());
         }
 
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-
-            // As of JSP 3.1, jsp:plugin must not generate any output
-            n.setBeginJavaLine(out.getJavaLine());
-            n.setEndJavaLine(out.getJavaLine());
-        }
-
         @Override
         public void visit(Node.NamedAttribute n) throws JasperException {
             // Don't visit body of this tag - we already did earlier.
diff --git a/java/org/apache/jasper/compiler/JspDocumentParser.java b/java/org/apache/jasper/compiler/JspDocumentParser.java
index cb8f42df4e..f3ffe9bbbd 100644
--- a/java/org/apache/jasper/compiler/JspDocumentParser.java
+++ b/java/org/apache/jasper/compiler/JspDocumentParser.java
@@ -1029,23 +1029,6 @@ class JspDocumentParser
                     taglibAttrs,
                     start,
                     current);
-        } else if (localName.equals(PARAMS_ACTION)) {
-            node =
-                new Node.ParamsAction(
-                    qName,
-                    nonTaglibXmlnsAttrs,
-                    taglibAttrs,
-                    start,
-                    current);
-        } else if (localName.equals(PLUGIN_ACTION)) {
-            node =
-                new Node.PlugIn(
-                    qName,
-                    nonTaglibAttrs,
-                    nonTaglibXmlnsAttrs,
-                    taglibAttrs,
-                    start,
-                    current);
         } else if (localName.equals(TEXT_ACTION)) {
             node =
                 new Node.JspText(
@@ -1174,14 +1157,6 @@ class JspDocumentParser
                     taglibAttrs,
                     start,
                     current);
-        } else if (localName.equals(FALLBACK_ACTION)) {
-            node =
-                new Node.FallBackAction(
-                    qName,
-                    nonTaglibXmlnsAttrs,
-                    taglibAttrs,
-                    start,
-                    current);
         } else {
             throw new SAXParseException(
                 Localizer.getMessage(
diff --git a/java/org/apache/jasper/compiler/Node.java b/java/org/apache/jasper/compiler/Node.java
index bfa9b60260..d138b55f5b 100644
--- a/java/org/apache/jasper/compiler/Node.java
+++ b/java/org/apache/jasper/compiler/Node.java
@@ -1005,48 +1005,6 @@ abstract class Node implements TagConstants {
         }
     }
 
-    /**
-     * Represents a params action
-     */
-    public static class ParamsAction extends Node {
-
-        public ParamsAction(Mark start, Node parent) {
-            this(JSP_PARAMS_ACTION, null, null, start, parent);
-        }
-
-        public ParamsAction(String qName, Attributes nonTaglibXmlnsAttrs,
-                Attributes taglibAttrs, Mark start, Node parent) {
-            super(qName, PARAMS_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
-                    start, parent);
-        }
-
-        @Override
-        public void accept(Visitor v) throws JasperException {
-            v.visit(this);
-        }
-    }
-
-    /**
-     * Represents a fallback action
-     */
-    public static class FallBackAction extends Node {
-
-        public FallBackAction(Mark start, Node parent) {
-            this(JSP_FALLBACK_ACTION, null, null, start, parent);
-        }
-
-        public FallBackAction(String qName, Attributes nonTaglibXmlnsAttrs,
-                Attributes taglibAttrs, Mark start, Node parent) {
-            super(qName, FALLBACK_ACTION, null, nonTaglibXmlnsAttrs,
-                    taglibAttrs, start, parent);
-        }
-
-        @Override
-        public void accept(Visitor v) throws JasperException {
-            v.visit(this);
-        }
-    }
-
     /**
      * Represents an include action
      */
@@ -1197,48 +1155,6 @@ abstract class Node implements TagConstants {
         }
     }
 
-    /**
-     * Represents a plugin action
-     */
-    public static class PlugIn extends Node {
-
-        private JspAttribute width;
-
-        private JspAttribute height;
-
-        public PlugIn(Attributes attrs, Mark start, Node parent) {
-            this(JSP_PLUGIN_ACTION, attrs, null, null, start, parent);
-        }
-
-        public PlugIn(String qName, Attributes attrs,
-                Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
-                Mark start, Node parent) {
-            super(qName, PLUGIN_ACTION, attrs, nonTaglibXmlnsAttrs,
-                    taglibAttrs, start, parent);
-        }
-
-        @Override
-        public void accept(Visitor v) throws JasperException {
-            v.visit(this);
-        }
-
-        public void setHeight(JspAttribute height) {
-            this.height = height;
-        }
-
-        public void setWidth(JspAttribute width) {
-            this.width = width;
-        }
-
-        public JspAttribute getHeight() {
-            return height;
-        }
-
-        public JspAttribute getWidth() {
-            return width;
-        }
-    }
-
     /**
      * Represents an uninterpreted tag, from a Jsp document
      */
@@ -2519,26 +2435,11 @@ abstract class Node implements TagConstants {
             visitBody(n);
         }
 
-        public void visit(ParamsAction n) throws JasperException {
-            doVisit(n);
-            visitBody(n);
-        }
-
-        public void visit(FallBackAction n) throws JasperException {
-            doVisit(n);
-            visitBody(n);
-        }
-
         public void visit(UseBean n) throws JasperException {
             doVisit(n);
             visitBody(n);
         }
 
-        public void visit(PlugIn n) throws JasperException {
-            doVisit(n);
-            visitBody(n);
-        }
-
         public void visit(CustomTag n) throws JasperException {
             doVisit(n);
             visitBody(n);
diff --git a/java/org/apache/jasper/compiler/PageDataImpl.java b/java/org/apache/jasper/compiler/PageDataImpl.java
index 4b9a3df5fa..0fd952a4a5 100644
--- a/java/org/apache/jasper/compiler/PageDataImpl.java
+++ b/java/org/apache/jasper/compiler/PageDataImpl.java
@@ -364,26 +364,11 @@ class PageDataImpl extends PageData implements TagConstants {
             appendTag(n);
         }
 
-        @Override
-    public void visit(Node.ParamsAction n) throws JasperException {
-            appendTag(n);
-        }
-
-        @Override
-    public void visit(Node.FallBackAction n) throws JasperException {
-            appendTag(n);
-        }
-
         @Override
     public void visit(Node.UseBean n) throws JasperException {
             appendTag(n);
         }
 
-        @Override
-    public void visit(Node.PlugIn n) throws JasperException {
-            appendTag(n);
-        }
-
         @Override
         public void visit(Node.NamedAttribute n) throws JasperException {
             appendTag(n);
diff --git a/java/org/apache/jasper/compiler/Parser.java b/java/org/apache/jasper/compiler/Parser.java
index c05ce36979..3d4714daaa 100644
--- a/java/org/apache/jasper/compiler/Parser.java
+++ b/java/org/apache/jasper/compiler/Parser.java
@@ -70,9 +70,6 @@ class Parser implements TagConstants {
     private static final String JAVAX_BODY_CONTENT_PARAM =
         "JAVAX_BODY_CONTENT_PARAM";
 
-    private static final String JAVAX_BODY_CONTENT_PLUGIN =
-        "JAVAX_BODY_CONTENT_PLUGIN";
-
     private static final String JAVAX_BODY_CONTENT_TEMPLATE_TEXT =
         "JAVAX_BODY_CONTENT_TEMPLATE_TEXT";
 
@@ -971,7 +968,7 @@ class Parser implements TagConstants {
     }
 
     /*
-     * Parses OptionalBody, but also reused to parse bodies for plugin and param
+     * Parses OptionalBody, but also reused to parse bodies for param
      * since the syntax is identical (the only thing that differs substantially
      * is how to process the body, and thus we accept the body type as a
      * parameter).
@@ -1056,64 +1053,6 @@ class Parser implements TagConstants {
         return result;
     }
 
-    /*
-     * Params ::= `>' S? ( ( `<jsp:body>' ( ( S? Param+ S? `</jsp:body>' ) |
-     * <TRANSLATION_ERROR> ) ) | Param+ ) '</jsp:params>'
-     */
-    private void parseJspParams(Node parent) throws JasperException {
-        Node jspParamsNode = new Node.ParamsAction(start, parent);
-        parseOptionalBody(jspParamsNode, "jsp:params", JAVAX_BODY_CONTENT_PARAM);
-    }
-
-    /*
-     * Fallback ::= '/>' | ( `>' S? `<jsp:body>' ( ( S? ( Char* - ( Char* `</jsp:body>' ) ) `</jsp:body>'
-     * S? ) | <TRANSLATION_ERROR> ) `</jsp:fallback>' ) | ( '>' ( Char* - (
-     * Char* '</jsp:fallback>' ) ) '</jsp:fallback>' )
-     */
-    private void parseFallBack(Node parent) throws JasperException {
-        Node fallBackNode = new Node.FallBackAction(start, parent);
-        parseOptionalBody(fallBackNode, "jsp:fallback",
-                JAVAX_BODY_CONTENT_TEMPLATE_TEXT);
-    }
-
-    /*
-     * For Plugin: StdActionContent ::= Attributes PluginBody
-     *
-     * PluginBody ::= EmptyBody | ( '>' S? ( '<jsp:attribute' NamedAttributes )? '<jsp:body' (
-     * JspBodyPluginTags | <TRANSLATION_ERROR> ) S? ETag ) | ( '>' S? PluginTags
-     * ETag )
-     *
-     * EmptyBody ::= '/>' | ( '>' ETag ) | ( '>' S? '<jsp:attribute'
-     * NamedAttributes ETag )
-     *
-     */
-    private void parsePlugin(Node parent) throws JasperException {
-        Attributes attrs = parseAttributes();
-        reader.skipSpaces();
-
-        Node pluginNode = new Node.PlugIn(attrs, start, parent);
-
-        parseOptionalBody(pluginNode, "jsp:plugin", JAVAX_BODY_CONTENT_PLUGIN);
-    }
-
-    /*
-     * PluginTags ::= ( '<jsp:params' Params S? )? ( '<jsp:fallback' Fallback?
-     * S? )?
-     */
-    private void parsePluginTags(Node parent) throws JasperException {
-        reader.skipSpaces();
-
-        if (reader.matches("<jsp:params")) {
-            parseJspParams(parent);
-            reader.skipSpaces();
-        }
-
-        if (reader.matches("<jsp:fallback")) {
-            parseFallBack(parent);
-            reader.skipSpaces();
-        }
-    }
-
     /*
      * StandardAction ::= 'include' StdActionContent | 'forward'
      * StdActionContent | 'invoke' StdActionContent | 'doBody' StdActionContent |
@@ -1146,18 +1085,12 @@ class Parser implements TagConstants {
             parseSetProperty(parent);
         } else if (reader.matches(USE_BEAN_ACTION)) {
             parseUseBean(parent);
-        } else if (reader.matches(PLUGIN_ACTION)) {
-            parsePlugin(parent);
         } else if (reader.matches(ELEMENT_ACTION)) {
             parseElement(parent);
         } else if (reader.matches(ATTRIBUTE_ACTION)) {
             err.jspError(start, "jsp.error.namedAttribute.invalidUse");
         } else if (reader.matches(BODY_ACTION)) {
             err.jspError(start, "jsp.error.jspbody.invalidUse");
-        } else if (reader.matches(FALLBACK_ACTION)) {
-            err.jspError(start, "jsp.error.fallback.invalidUse");
-        } else if (reader.matches(PARAMS_ACTION)) {
-            err.jspError(start, "jsp.error.params.invalidUse");
         } else if (reader.matches(PARAM_ACTION)) {
             err.jspError(start, "jsp.error.param.invalidUse");
         } else if (reader.matches(OUTPUT_ACTION)) {
@@ -1651,14 +1584,6 @@ class Parser implements TagConstants {
                 err.jspError(start, "jasper.error.emptybodycontent.nonempty",
                         tag);
             }
-        } else if (bodyType == JAVAX_BODY_CONTENT_PLUGIN) {
-            // (note the == since we won't recognize JAVAX_*
-            // from outside this module).
-            parsePluginTags(parent);
-            if (!reader.matchesETag(tag)) {
-                err.jspError(reader.mark(), "jsp.error.unterminated", "&lt;"
-                        + tag);
-            }
         } else if (bodyType.equalsIgnoreCase(TagInfo.BODY_CONTENT_JSP)
                 || bodyType.equalsIgnoreCase(TagInfo.BODY_CONTENT_SCRIPTLESS)
                 || (bodyType == JAVAX_BODY_CONTENT_PARAM)
@@ -1770,10 +1695,6 @@ class Parser implements TagConstants {
             if ("beanName".equals(name)) {
                 return TagInfo.BODY_CONTENT_JSP;
             }
-        } else if (n instanceof Node.PlugIn) {
-            if ("width".equals(name) || "height".equals(name)) {
-                return TagInfo.BODY_CONTENT_JSP;
-            }
         } else if (n instanceof Node.ParamAction) {
             if ("value".equals(name)) {
                 return TagInfo.BODY_CONTENT_JSP;
diff --git a/java/org/apache/jasper/compiler/SmapUtil.java b/java/org/apache/jasper/compiler/SmapUtil.java
index c3e5b4c14e..281abdea04 100644
--- a/java/org/apache/jasper/compiler/SmapUtil.java
+++ b/java/org/apache/jasper/compiler/SmapUtil.java
@@ -529,12 +529,6 @@ public class SmapUtil {
             visitBody(n);
         }
 
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-            doSmap(n);
-            visitBody(n);
-        }
-
         @Override
         public void visit(Node.CustomTag n) throws JasperException {
             doSmap(n);
diff --git a/java/org/apache/jasper/compiler/TagConstants.java b/java/org/apache/jasper/compiler/TagConstants.java
index 88157a171e..25564ffac4 100644
--- a/java/org/apache/jasper/compiler/TagConstants.java
+++ b/java/org/apache/jasper/compiler/TagConstants.java
@@ -58,15 +58,6 @@ public interface TagConstants {
     public static final String PARAM_ACTION = "param";
     public static final String JSP_PARAM_ACTION = "jsp:param";
 
-    public static final String PARAMS_ACTION = "params";
-    public static final String JSP_PARAMS_ACTION = "jsp:params";
-
-    public static final String PLUGIN_ACTION = "plugin";
-    public static final String JSP_PLUGIN_ACTION = "jsp:plugin";
-
-    public static final String FALLBACK_ACTION = "fallback";
-    public static final String JSP_FALLBACK_ACTION = "jsp:fallback";
-
     public static final String TEXT_ACTION = "text";
     public static final String JSP_TEXT_ACTION = "jsp:text";
     public static final String JSP_TEXT_ACTION_END = "</jsp:text>";
diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java
index e6d9ff2074..249460d80f 100644
--- a/java/org/apache/jasper/compiler/Validator.java
+++ b/java/org/apache/jasper/compiler/Validator.java
@@ -483,21 +483,6 @@ class Validator {
                 new JspUtil.ValidAttribute("type"),
                 new JspUtil.ValidAttribute("beanName", false) };
 
-        private static final JspUtil.ValidAttribute[] plugInAttrs = {
-                new JspUtil.ValidAttribute("type", true),
-                new JspUtil.ValidAttribute("code", true),
-                new JspUtil.ValidAttribute("codebase"),
-                new JspUtil.ValidAttribute("align"),
-                new JspUtil.ValidAttribute("archive"),
-                new JspUtil.ValidAttribute("height", false),
-                new JspUtil.ValidAttribute("hspace"),
-                new JspUtil.ValidAttribute("jreversion"),
-                new JspUtil.ValidAttribute("name"),
-                new JspUtil.ValidAttribute("vspace"),
-                new JspUtil.ValidAttribute("width", false),
-                new JspUtil.ValidAttribute("nspluginurl"),
-                new JspUtil.ValidAttribute("iepluginurl") };
-
         private static final JspUtil.ValidAttribute[] attributeAttrs = {
                 new JspUtil.ValidAttribute("name", true),
                 new JspUtil.ValidAttribute("trim"),
@@ -584,16 +569,6 @@ class Validator {
             visitBody(n);
         }
 
-        @Override
-        public void visit(Node.ParamsAction n) throws JasperException {
-            // Make sure we've got at least one nested jsp:param
-            Node.Nodes subElems = n.getBody();
-            if (subElems == null) {
-                err.jspError(n, "jsp.error.params.emptyBody");
-            }
-            visitBody(n);
-        }
-
         @Override
         public void visit(Node.IncludeAction n) throws JasperException {
             JspUtil.checkAttributes("Include action", n, includeActionAttrs,
@@ -679,45 +654,6 @@ class Validator {
             visitBody(n);
         }
 
-        @SuppressWarnings("null") // type can't be null after initial test
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-            JspUtil.checkAttributes("Plugin", n, plugInAttrs, err);
-
-            throwErrorIfExpression(n, "type", "jsp:plugin");
-            throwErrorIfExpression(n, "code", "jsp:plugin");
-            throwErrorIfExpression(n, "codebase", "jsp:plugin");
-            throwErrorIfExpression(n, "align", "jsp:plugin");
-            throwErrorIfExpression(n, "archive", "jsp:plugin");
-            throwErrorIfExpression(n, "hspace", "jsp:plugin");
-            throwErrorIfExpression(n, "jreversion", "jsp:plugin");
-            throwErrorIfExpression(n, "name", "jsp:plugin");
-            throwErrorIfExpression(n, "vspace", "jsp:plugin");
-            throwErrorIfExpression(n, "nspluginurl", "jsp:plugin");
-            throwErrorIfExpression(n, "iepluginurl", "jsp:plugin");
-
-            String type = n.getTextAttribute("type");
-            if (type == null) {
-                err.jspError(n, "jsp.error.plugin.notype");
-            }
-            if (!type.equals("bean") && !type.equals("applet")) {
-                err.jspError(n, "jsp.error.plugin.badtype");
-            }
-            if (n.getTextAttribute("code") == null) {
-                err.jspError(n, "jsp.error.plugin.nocode");
-            }
-
-            Node.JspAttribute width = getJspAttribute(null, "width", null,
-                    null, n.getAttributeValue("width"), n, null, false);
-            n.setWidth(width);
-
-            Node.JspAttribute height = getJspAttribute(null, "height", null,
-                    null, n.getAttributeValue("height"), n, null, false);
-            n.setHeight(height);
-
-            visitBody(n);
-        }
-
         @Override
         public void visit(Node.NamedAttribute n) throws JasperException {
             JspUtil.checkAttributes("Attribute", n, attributeAttrs, err);
diff --git a/java/org/apache/jasper/resources/LocalStrings.properties b/java/org/apache/jasper/resources/LocalStrings.properties
index 9b3817f988..7ade331ca3 100644
--- a/java/org/apache/jasper/resources/LocalStrings.properties
+++ b/java/org/apache/jasper/resources/LocalStrings.properties
@@ -72,7 +72,6 @@ jsp.error.dynamic.attributes.not.implemented=The [{0}] tag declares that it acce
 jsp.error.el.parse=[{0}] : [{1}]
 jsp.error.el.template.deferred=#{...} is not allowed in template text
 jsp.error.el_interpreter_class.instantiation=Failed to load or instantiate ELInterpreter class [{0}]
-jsp.error.fallback.invalidUse=jsp:fallback must be a direct child of jsp:plugin
 jsp.error.file.already.registered=Recursive include of file [{0}]
 jsp.error.file.cannot.read=Cannot read file: [{0}]
 jsp.error.file.not.found=JSP file [{0}] not found
@@ -168,17 +167,12 @@ jsp.error.page.multi.pageencoding=Page directive must not have multiple occurren
 jsp.error.page.noSession=Cannot access session scope in page that does not participate in any session
 jsp.error.page.nullThrowable=Null exception
 jsp.error.page.sessionRequired=Page needs a session and none is available
-jsp.error.param.invalidUse=The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements
+jsp.error.param.invalidUse=The jsp:param action must not be used outside the jsp:include or jsp:forward elements
 jsp.error.paramexpected=Expecting "jsp:param" standard action with "name" and "value" attributes
-jsp.error.params.emptyBody=jsp:params must contain at least one nested jsp:param
-jsp.error.params.invalidUse=jsp:params must be a direct child of jsp:plugin
 jsp.error.parse.error.in.TLD=Parse Error in the tag library descriptor: [{0}]
 jsp.error.parse.xml=XML parsing error on file [{0}]
 jsp.error.parse.xml.line=XML parsing error on file [{0}]: (line [{1}], col [{2}])
 jsp.error.parse.xml.scripting.invalid.body=Body of [{0}] element must not contain any XML elements
-jsp.error.plugin.badtype=Illegal value for 'type' attribute in jsp:plugin: must be 'bean' or 'applet'
-jsp.error.plugin.nocode=code not declared in jsp:plugin
-jsp.error.plugin.notype=type not declared in jsp:plugin
 jsp.error.precompilation=Could not precompile JSP [{0}]
 jsp.error.precompilation.parameter=Cannot have precompilation request parameter [{0}] set to [{1}]
 jsp.error.prefix.refined=Attempt to redefine the prefix [{0}] to [{1}], when it was already defined as [{2}] in the current scope.
@@ -353,7 +347,6 @@ where options include:\n\
 \                          file (default is UTF-8)\n\
 \    -addwebxmlmappings    Merge generated web.xml fragment into the web.xml file of the\n\
 \                          web-app, whose JSP pages we are processing\n\
-\    -ieplugin <clsid>     Java Plugin classid for Internet Explorer\n\
 \    -classpath <path>     Overrides java.class.path system property\n\
 \    -xpoweredBy           Add X-Powered-By response header\n\
 \    -trimSpaces [single]  Remove template text that consists entirely of whitespace\n\
diff --git a/java/org/apache/jasper/resources/LocalStrings_cs.properties b/java/org/apache/jasper/resources/LocalStrings_cs.properties
index 6293b1347e..c5224d28d7 100644
--- a/java/org/apache/jasper/resources/LocalStrings_cs.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_cs.properties
@@ -21,7 +21,6 @@ jsp.error.attribute.noequal=jsou očekávány stejné symboly
 jsp.error.attribute.nowhitespace=JSP specifikace vyžaduje jméno atributu s úvodní mezerou
 jsp.error.data.file.processing=Chyba při zpracování souboru [{0}]
 jsp.error.el.template.deferred=#{...} není dovoleno v textu šablony
-jsp.error.fallback.invalidUse=jsp:fallback musí být přímý potomek jsp:plugin
 jsp.error.invalid.tagdir=Adresář tag souborů [{0}] nezačíná "/WEB-INF/tags"
 jsp.error.invalid.version=Neplatná verze JSP definovaná pro souboru tagů na [{0}]
 jsp.error.ise_on_clear=Nedovolené volání metody clear(), když velikost buffer == 0
diff --git a/java/org/apache/jasper/resources/LocalStrings_de.properties b/java/org/apache/jasper/resources/LocalStrings_de.properties
index 178e53b93e..aad46a9393 100644
--- a/java/org/apache/jasper/resources/LocalStrings_de.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_de.properties
@@ -27,7 +27,6 @@ jsp.error.compilation.source=Fehler beim Laden der Quelldatei [{0}]
 jsp.error.compiler=Keine Java-Compiler verfügbar
 jsp.error.data.file.processing=Fehler beim Verarbeiten der Datei [{0}]
 jsp.error.el.template.deferred=#{...} is im Template Text nicht erlaubt
-jsp.error.fallback.invalidUse=jsp:fallback muss ein direktes Kind von jsp:plugin sein
 jsp.error.file.not.found=Datei [{0}] nicht gefunden
 jsp.error.internal.filenotfound=Interner Fehler: Datei [{0}] nicht gefunden
 jsp.error.invalid.attribute=[{0}] hat ein ungültiges Attribut: [{1}]
diff --git a/java/org/apache/jasper/resources/LocalStrings_es.properties b/java/org/apache/jasper/resources/LocalStrings_es.properties
index 94f453a210..6e038f06f0 100644
--- a/java/org/apache/jasper/resources/LocalStrings_es.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_es.properties
@@ -64,7 +64,6 @@ jsp.error.dynamic.attributes.not.implemented=El tag [{0}] declara que acepta atr
 jsp.error.el.parse=[{0}] : [{1}]
 jsp.error.el.template.deferred=#{..} no está permitido en texto de plantilla
 jsp.error.el_interpreter_class.instantiation=No se puede cargar la clase ELInterpreter llamada [{0}]
-jsp.error.fallback.invalidUse=jsp:fallback debe de ser un hijo directo de jsp:plugin
 jsp.error.file.already.registered=El archivo [{0}] ya se ha visto, ¿podría ser un include recursivo?
 jsp.error.file.cannot.read=No se puede leer el archivo: [{0}]
 jsp.error.file.not.found=Archivo JSP [{0}] no encontrado
@@ -148,17 +147,12 @@ jsp.error.page.invalid.trimdirectivewhitespaces=Directiva de página: valor inv
 jsp.error.page.language.nonjava=Directiva Page: atributo language incorrecto
 jsp.error.page.multi.pageencoding=La directiva Page no debe de tener múltiples ocurrencias de pageencoding
 jsp.error.page.noSession=No puedo acceder al ámbito de sesión en una página que no participa en una sesión
-jsp.error.param.invalidUse=La acción jsp:param no debe de ser usada fuera de los elementos jsp:include, jsp:forward o jsp:params
+jsp.error.param.invalidUse=La acción jsp:param no debe de ser usada fuera de los elementos jsp:include o jsp:forward
 jsp.error.paramexpected=El tag "param" era esperado con los atributos "name" y "value" después del tag "params".
-jsp.error.params.emptyBody=jsp:params debe de contener al menos un jsp:param anidado
-jsp.error.params.invalidUse=jsp:params debe de ser un hijo directo de jsp:plugin
 jsp.error.parse.error.in.TLD=Error de análisis en el descriptor de biblioteca de tags: [{0}]
 jsp.error.parse.xml=Error de análisis XML en archivo [{0}]
 jsp.error.parse.xml.line=Error de análisis XML en archivo [{0}]: (línea [{1}], col [{2}])
 jsp.error.parse.xml.scripting.invalid.body=El cuerpo de elemento [{0}] no debe de contener elementos XML
-jsp.error.plugin.badtype=Valor ilegal para atributo 'type' en jsp:plugin: debe de ser 'bean' o 'applet'
-jsp.error.plugin.nocode=Código no declarado en jsp:plugin
-jsp.error.plugin.notype=Tipo no declarado en jsp:plugin
 jsp.error.prefix.refined=Intento de redefinir el prefijo [{0}] por [{1}], cuando ya estaba definido como [{2}] en el ámbito en curso.
 jsp.error.prefix.use_before_dcl=El prefijo [{0}] especificado en esta directiva de marca ha sido usado previamente mediante un fichero de acción [{1}] línea [{2}].
 jsp.error.prolog_config_encoding_mismatch=El Page-encoding especificado en XML prolog [{0}] difiere del especificado en jsp-property-group [{1}]
@@ -288,7 +282,6 @@ y donde <opciones> incluyen:\n\
 \                          file (default is UTF-8)\n\
 \    -addwebxmlmappings    Merge generated web.xml fragment into the web.xml file of the\n\
 \                          web-app, whose JSP pages we are processing\n\
-\    -ieplugin <clsid>     Java Plugin classid para Internet Explorer\n\
 \    -classpath <path>     Pasa por alto la propiedad de sistema java.class.path\n\
 \    -xpoweredBy           Añade cabecera de respuesta  X-Powered-By\n\
 \    -trimSpaces [single]  Remove template text that consists entirely of whitespace\n\
diff --git a/java/org/apache/jasper/resources/LocalStrings_fr.properties b/java/org/apache/jasper/resources/LocalStrings_fr.properties
index 5e4bbf1cb4..f65e6a6bf3 100644
--- a/java/org/apache/jasper/resources/LocalStrings_fr.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_fr.properties
@@ -72,7 +72,6 @@ jsp.error.dynamic.attributes.not.implemented=Le tag [{0}] indique qu''il accepte
 jsp.error.el.parse=[{0}] : [{1}]
 jsp.error.el.template.deferred=#{...} n'est pas admis dans le texte d'un modèle (template)
 jsp.error.el_interpreter_class.instantiation=Impossible de charger ou d''instancier la classe ELInterpreter [{0}]
-jsp.error.fallback.invalidUse=jsp:fallback doit être un enfant direct de jsp:plugin
 jsp.error.file.already.registered=Inclusion récursive du fichier [{0}]
 jsp.error.file.cannot.read=Impossible de lire le fichier : [{0}]
 jsp.error.file.not.found=Le fichier [{0}] n''a pas été trouvé
@@ -167,17 +166,12 @@ jsp.error.page.multi.pageencoding=La directive de page ne doit pas avoir plusieu
 jsp.error.page.noSession=Impossible d'accéder à la portée session de la page car elle n'a pas de session asoociée
 jsp.error.page.nullThrowable=L'exception est null
 jsp.error.page.sessionRequired=La page nécessite une session et aucune n'est disponible
-jsp.error.param.invalidUse=L'action jsp:param ne peut pas être utilisée en dehors d'éléments jsp:include, jsp:forward ou jsp:params
+jsp.error.param.invalidUse=L'action jsp:param ne peut pas être utilisée en dehors d'éléments jsp:include ou jsp:forward
 jsp.error.paramexpected=Le tag "param" est attendu avec les attributs "name" et "value" après le tag "params".
-jsp.error.params.emptyBody=jsp:params doit inclure au moins un jsp:param
-jsp.error.params.invalidUse=jsp:params doit être directement inclus dans jsp:plugin
 jsp.error.parse.error.in.TLD=Erreur d''évaluation (parse) dans le descripteur de la bibliothèque de tag (TLD) : [{0}]
 jsp.error.parse.xml=Erreur d''évaluation XML sur le fichier [{0}]
 jsp.error.parse.xml.line=Erreur d''évaluation XML sur le fichier  [{0}] : (ligne [{1}], col [{2}])
 jsp.error.parse.xml.scripting.invalid.body=Le corps de l''élément [{0}] ne doit contenir aucun éléments XML
-jsp.error.plugin.badtype=Valeur invalide pour l'attribut 'type' dans jsp:plugin : la valeur doit être 'bean' ou 'applet'
-jsp.error.plugin.nocode=code non déclaré dans jsp:plugin
-jsp.error.plugin.notype=type non déclaré dans jsp:plugin
 jsp.error.precompilation=Impossible de précompiler le JSP [{0}]
 jsp.error.precompilation.parameter=Impossible de définir le paramètre de requête [{0}] pour la précompilation comme [{1}]
 jsp.error.prefix.refined=Tentative de redéfinition du préfixe [{0}] en [{1}] alors qu''il a déjà été défini comme [{2}] dans la portée actuelle
@@ -353,7 +347,6 @@ et où les options sont :\n\
 \                          web.xml (par défaut UTF-8)\n\
 \    -addwebxmlmappings    Fusionne le fragment de web.xml généré dans le web.xml\n\
 \                          de l'application web dont les pages JSP sont générées\n\
-\    -ieplugin <clsid>     Le classid du Plugin Java pour Internet Explorer\n\
 \    -classpath <path>     Remplace la propriété système java.class.path\n\
 \    -xpoweredBy           Ajoute l'en-tête de réponse X-Powered-By\n\
 \    -trimSpaces [single]  Enlève le texte de base qui est constitué entièrement d'espaces blancs\n\
diff --git a/java/org/apache/jasper/resources/LocalStrings_ja.properties b/java/org/apache/jasper/resources/LocalStrings_ja.properties
index ffa98b1fa6..5ec82f02d5 100644
--- a/java/org/apache/jasper/resources/LocalStrings_ja.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_ja.properties
@@ -73,7 +73,6 @@ jsp.error.dynamic.attributes.not.implemented=[{0}] タグはそれがdynamic属
 jsp.error.el.parse=[{0}] : [{1}]
 jsp.error.el.template.deferred=テンプレート文字列に #{...} を含めることはできません。
 jsp.error.el_interpreter_class.instantiation=ELInterpreter class [{0}] のロードまたはインスタンス化に失敗しました
-jsp.error.fallback.invalidUse=jsp:fallbackはjsp:pluginの直接の子でなければいけません
 jsp.error.file.already.registered=ファイル [{0}] の再帰的な取り込みです
 jsp.error.file.cannot.read=ファイルが読めません: [{0}]
 jsp.error.file.not.found=JSP ファイル [{0}] が見つかりません
@@ -169,17 +168,12 @@ jsp.error.page.multi.pageencoding=Pageディレクティブは複数のpageencod
 jsp.error.page.noSession=セッションに加わっていないページの中ではセッションスコープにアクセスできません
 jsp.error.page.nullThrowable=Null 例外
 jsp.error.page.sessionRequired=ページにセッションが必要であり、none が利用可能です。
-jsp.error.param.invalidUse=jsp:include、jsp:forward、またはjsp:params要素の外でjsp:paramアクションを使用してはいけません
+jsp.error.param.invalidUse=jsp:include、またはjsp:forward要素の外でjsp:paramアクションを使用してはいけません
 jsp.error.paramexpected="name"属性 と "value" 属性を持つ "jsp:param" 標準アクションが必要です
-jsp.error.params.emptyBody=jsp:paramsは少なくとも一つのネストしたjsp:paramを含まねばいけません
-jsp.error.params.invalidUse=jsp:paramsはjsp:pluginの直接の子でなければいけません
 jsp.error.parse.error.in.TLD=タグライブラリ記述子 [{0}] 中の解析エラーです
 jsp.error.parse.xml=ファイル[{0}]のXML解析中のエラー
 jsp.error.parse.xml.line=ファイル[{0}]のXML解析エラー: (行 [{1}], 列 [{2}])
 jsp.error.parse.xml.scripting.invalid.body=[{0}] 要素のボディはXML要素を含んではいけません
-jsp.error.plugin.badtype=jsp:pluginの 'type'属性の値が無効です: 'bean'または'applet'でなければいけません
-jsp.error.plugin.nocode=jsp:pluginでcode属性が宣言されていません
-jsp.error.plugin.notype=jsp:pluginでtype属性が宣言されていません
 jsp.error.precompilation=JSP [{0}]をプリコンパイルできませんでした
 jsp.error.precompilation.parameter=プリコンパイルリクエストパラメータ [{0}] を [{1}] に設定できません
 jsp.error.prefix.refined=プリフィックス [{0}] が現在のスコープ内で既に [{2}] と定義されているので [{1}] に再定義しました
@@ -353,7 +347,6 @@ JSPファイルの場所は次のオプションで指定するか、\n\
 \                          file (default is UTF-8)\n\
 \    -addwebxmlmappings    Merge generated web.xml fragment into the web.xml file of the\n\
 \                          web-app, whose JSP pages we are processing\n\
-\    -ieplugin <clsid>     Internet ExplorerのJava Pluginのclassid\n\
 \    -classpath <path>     java.class.pathシステムプロパティの上書き\n\
 \    -xpoweredBy           X-Powered-Byレスポンスヘッダの追加\n\
 \    -trimSpaces [single]  Remove template text that consists entirely of whitespace\n\
diff --git a/java/org/apache/jasper/resources/LocalStrings_ko.properties b/java/org/apache/jasper/resources/LocalStrings_ko.properties
index 659124848c..3d0f184699 100644
--- a/java/org/apache/jasper/resources/LocalStrings_ko.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_ko.properties
@@ -73,7 +73,6 @@ jsp.error.dynamic.attributes.not.implemented=[{0}] 태그가 동적 속성들을
 jsp.error.el.parse=[{0}] : [{1}]
 jsp.error.el.template.deferred=#{...}은(는) 템플릿 텍스트에서 허용되지 않습니다.
 jsp.error.el_interpreter_class.instantiation=ELInterpreter 클래스 [{0}]을(를) 로드하지 못했거나, 인스턴스를 생성하지 못했습니다.
-jsp.error.fallback.invalidUse=jsp:fallback은 jsp:plugin의 직계 자식 엘리먼트여야 합니다.
 jsp.error.file.already.registered=파일 [{0}]의 재귀적인 include입니다.
 jsp.error.file.cannot.read=파일을 읽을 수 없습니다: [{0}]
 jsp.error.file.not.found=파일 [{0}]을(를) 찾을 수 없습니다.
@@ -166,17 +165,12 @@ jsp.error.page.multi.pageencoding=페이지 지시어는 여러 개의 pageencod
 jsp.error.page.noSession=어떤 세션에도 참여하지 않는 페이지에서 세션 scope에 접근할 수 없습니다.
 jsp.error.page.nullThrowable=널 예외 발생
 jsp.error.page.sessionRequired=페이지는 세션을 필요로 하나, 가용한 세션이 없습니다.
-jsp.error.param.invalidUse=jsp:param 액션은, jsp:include, jsp:forward, 또는 jsp:params 엘리먼트들 외부에서 사용되서는 안됩니다.
+jsp.error.param.invalidUse=jsp:param 액션은, jsp:include, 또는 jsp:forward 엘리먼트들 외부에서 사용되서는 안됩니다.
 jsp.error.paramexpected="name"과 "value" 속성들을 포함한 "jsp:param" 표준 액션이 요구됩니다.
-jsp.error.params.emptyBody=jsp:params는 반드시 적어도 하나 이상의 jsp:param을 포함해야 합니다.
-jsp.error.params.invalidUse=jsp:params는 반드시 jsp:plugin의 직계 자식이어야 합니다.
 jsp.error.parse.error.in.TLD=태그 라이브러리 descriptor 내에서 파싱 오류 발생: [{0}]
 jsp.error.parse.xml=[{0}] 파일에서 XML 파싱 오류 발생
 jsp.error.parse.xml.line=파일 [{0}]에서 XML 파싱 오류 발생: (행: [{1}], 열: [{2}])
 jsp.error.parse.xml.scripting.invalid.body=[{0}] 엘리먼트의 body 내에서는, 반드시 어떠한 XML 엘리먼트들도 포함해서는 안됩니다.
-jsp.error.plugin.badtype=jsp:plugin: 내의 'type' 속성을 위해 불허되는 값입니다. 반드시 'bean' 또는 'applet'이어야 합니다.
-jsp.error.plugin.nocode=jsp:plugin에 code가 선언 안됨
-jsp.error.plugin.notype=jsp:plugin에 type이 선언되지 않았습니다.
 jsp.error.precompilation=JSP [{0}]을(를) 사전 컴파일 할 수 없었습니다.
 jsp.error.precompilation.parameter=사전 컴파일 요청 파라미터 [{0}]을(를) [{1}](으)로 설정할 수 없습니다.
 jsp.error.prefix.refined=현재 범위에서 이미 [{2}](으)로서 정의되어 있는데, prefix를 [{0}]에서 [{1}](으)로 재정의하려는 시도입니다.
@@ -351,7 +345,6 @@ jsp files 아규먼트는 다음과 같음:\n\
 \                          (기본값은 UTF-8)\n\
 \    -addwebxmlmappings    생성된 web.xml fragment를 우리가 처리하고 있는 JSP 페이지들이 처리된\n\
 \                          해당 web-app의 web.xml 에 병합함.\n\
-\    -ieplugin <clsid>     Internet Explorer를 위한 자바 플러그인 classid\n\
 \    -classpath <path>     java.class.path 시스템 프로퍼티를 오버라이드\n\
 \    -xpoweredBy           X-Powered-By 응답 헤더를 추가\n\
 \    -trimSpaces [single]  전적으로 공백 문자열로 이루어진 템플릿 텍스트를 제거\n\
diff --git a/java/org/apache/jasper/resources/LocalStrings_pt_BR.properties b/java/org/apache/jasper/resources/LocalStrings_pt_BR.properties
index f504b8f067..58de142979 100644
--- a/java/org/apache/jasper/resources/LocalStrings_pt_BR.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_pt_BR.properties
@@ -16,7 +16,6 @@
 jsp.error.attribute.nowhitespace=A especificação JSP requer que o nome de atributo seja precedido por um espaço em branco
 jsp.error.data.file.processing=Erro a processar arquivo [{0}]
 jsp.error.el.template.deferred=#{...} não é permitido no texto do template
-jsp.error.fallback.invalidUse=jsp:fallback precisa ser um filho direto do jsp:plugin
 jsp.error.no.scriptlets=Elementos de script ( &lt;%!, &lt;jsp:declaration, &lt;%=, &lt;jsp:expression, &lt;%, &lt;jsp:scriptlet ) não são permitidos aqui.
 jsp.error.not.in.template=[{0}] não é permitido  no template do texto do body
 jsp.error.outputfolder=Sem diretório de saída
diff --git a/java/org/apache/jasper/resources/LocalStrings_ru.properties b/java/org/apache/jasper/resources/LocalStrings_ru.properties
index 63f68a8f6d..ee779150d7 100644
--- a/java/org/apache/jasper/resources/LocalStrings_ru.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_ru.properties
@@ -19,7 +19,6 @@ jsp.error.attribute.deferredmix=Невозможно использовать о
 jsp.error.attribute.noequal=Необходим символ равенства
 jsp.error.data.file.processing=Ошибка при обработке файла [{0}]
 jsp.error.el.template.deferred=#{...}  не допускается в тексте шаблона
-jsp.error.fallback.invalidUse=jsp:fallback должен быть прямым потомком jsp:plugin
 jsp.error.invalid.tagdir=Директория файла тегов [{0}]  не начинается с "/WEB-INF/tags"
 jsp.error.jspbody.required=Для указания тела тега для [{0}] должно быть использовано jsp: body если используется jsp: attribute.
 jsp.error.jspelement.missing.name=Обязательный атрибут 'name' в XML-стиле отсутствует
diff --git a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
index ab341603ce..3665f3042b 100644
--- a/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
+++ b/java/org/apache/jasper/resources/LocalStrings_zh_CN.properties
@@ -72,7 +72,6 @@ jsp.error.dynamic.attributes.not.implemented=[{0}]标记声明它接受动态属
 jsp.error.el.parse=[{0}]:[{1}]
 jsp.error.el.template.deferred=#{...} 不允许出现在模板文本中
 jsp.error.el_interpreter_class.instantiation=加载或实例化ELInterpreter类[{0}]失败
-jsp.error.fallback.invalidUse=jsp:fallback必须是jsp:plugin的直接子代
 jsp.error.file.already.registered=文件[{0}]的递归包含
 jsp.error.file.cannot.read=无法读取文件 [{0}]
 jsp.error.file.not.found=文.件[{0}] 未找到
@@ -166,17 +165,12 @@ jsp.error.page.multi.pageencoding=页指令不能有多次出现的页编码
 jsp.error.page.noSession=无法访问不参与任何会话的页中的会话作用域
 jsp.error.page.nullThrowable=空异常
 jsp.error.page.sessionRequired=页面需要会话,但没有可用的会话
-jsp.error.param.invalidUse=jsp:param 不能在jsp:include、jsp:forward或jsp:params等元素外使用
+jsp.error.param.invalidUse=jsp:param 不能在jsp:include或jsp:forward等元素外使用
 jsp.error.paramexpected=使用“name”和“value”属性期望“jsp:param”标准操作
-jsp.error.params.emptyBody=jsp:params必须至少包含一个嵌套的jsp:param
-jsp.error.params.invalidUse=参数jsp:params必须是jsp:plugin的直接孩子参数
 jsp.error.parse.error.in.TLD=标记库描述符中的分析错误:[{0}]
 jsp.error.parse.xml=无法解析 XML 文件 [{0}]
 jsp.error.parse.xml.line=文件[{0}]上的XML解析错误:(第[{1}]行,第[{2}]行)
 jsp.error.parse.xml.scripting.invalid.body=[{0}]元素的主体不能包含任何XML元素
-jsp.error.plugin.badtype=jsp:plugin中“type”属性的值非法:必须是“bean”或“applet”
-jsp.error.plugin.nocode=代码未定义在jsp:plugin中
-jsp.error.plugin.notype=jsp:plugin中未声明type
 jsp.error.precompilation=无法预编译JSP[{0}]
 jsp.error.precompilation.parameter=不能将预编译请求参数[{0}]设置为[{1}]
 jsp.error.prefix.refined=尝试将前缀[{0}]重新定义为[{1}],但当前作用域中已将其定义为[{2}]。
@@ -350,7 +344,6 @@ jsp.文件在哪\n\
 \                          文件 (默认是 UTF-8)\n\
 \    -addwebxmlmappings    将生成的.Web.xml片段合并到Web.xml文件中网络应用\n\
 \                          , 我们正在处理哪个.JSP页面\n\
-\    -ieplugin <clsid>     IE浏览器.Java插件的类id\n\
 \    -classpath <path>     重写.java.class.path环境变量参数\n\
 \    -xpoweredBy           添加.X-Powered-By 响应头\n\
 \    -trimSpaces [single]  移除.完全由空格组成的模板文本\n\
diff --git a/test/org/apache/jasper/compiler/Dumper.java b/test/org/apache/jasper/compiler/Dumper.java
index 9bc49170c6..afa55bbaa3 100644
--- a/test/org/apache/jasper/compiler/Dumper.java
+++ b/test/org/apache/jasper/compiler/Dumper.java
@@ -134,20 +134,6 @@ class Dumper {
             printString("</jsp:useBean>");
         }
 
-        @Override
-        public void visit(Node.PlugIn n) throws JasperException {
-            printAttributes("<jsp:plugin", n.getAttributes(), ">");
-            dumpBody(n);
-            printString("</jsp:plugin>");
-        }
-
-        @Override
-        public void visit(Node.ParamsAction n) throws JasperException {
-            printAttributes("<jsp:params", n.getAttributes(), ">");
-            dumpBody(n);
-            printString("</jsp:params>");
-        }
-
         @Override
         public void visit(Node.ParamAction n) throws JasperException {
             printAttributes("<jsp:param", n.getAttributes(), ">");
diff --git a/test/org/apache/jasper/compiler/TestGenerator.java b/test/org/apache/jasper/compiler/TestGenerator.java
index 65fb6d6785..192a4fca17 100644
--- a/test/org/apache/jasper/compiler/TestGenerator.java
+++ b/test/org/apache/jasper/compiler/TestGenerator.java
@@ -749,11 +749,6 @@ public class TestGenerator extends TomcatBaseTest {
         doTestJsp("xml-doctype-02.jspx");
     }
 
-    @Test
-    public void testPlugin01() throws Exception {
-        doTestJsp("plugin-01.jspx");
-    }
-
     @Test
     public void testForward01() throws Exception {
         doTestJsp("forward-01.jsp");
diff --git a/test/org/apache/jasper/compiler/TestJspDocumentParser.java b/test/org/apache/jasper/compiler/TestJspDocumentParser.java
index e1d24555dc..015afaabe5 100644
--- a/test/org/apache/jasper/compiler/TestJspDocumentParser.java
+++ b/test/org/apache/jasper/compiler/TestJspDocumentParser.java
@@ -193,7 +193,12 @@ public class TestJspDocumentParser extends TomcatBaseTest {
 
     @Test
     public void testDocument_4_0() throws Exception {
-        doTestDocument(false, "4.0");
+        doTestDocument(true, "4.0");
+    }
+
+    @Test
+    public void testDocument_4_1() throws Exception {
+        doTestDocument(false, "4.1");
     }
 
     @Test
diff --git a/test/webapp/jsp/doc-version-invalid/document-4.0.jspx b/test/webapp/jsp/doc-version-invalid/document-4.1.jspx
similarity index 92%
copy from test/webapp/jsp/doc-version-invalid/document-4.0.jspx
copy to test/webapp/jsp/doc-version-invalid/document-4.1.jspx
index 9fcdc6bfd1..9126e25306 100644
--- a/test/webapp/jsp/doc-version-invalid/document-4.0.jspx
+++ b/test/webapp/jsp/doc-version-invalid/document-4.1.jspx
@@ -16,7 +16,7 @@
   limitations under the License.
 -->
 <jsp:root
-  xmlns:jsp="http://java.sun.com/JSP/Page" version="4.0">
+  xmlns:jsp="http://java.sun.com/JSP/Page" version="4.1">
 <html>
   <body>
     <p>00-Hello World</p>
diff --git a/test/webapp/jsp/doc-version-invalid/document-4.0.jspx b/test/webapp/jsp/doc-version-valid/document-4.0.jspx
similarity index 100%
rename from test/webapp/jsp/doc-version-invalid/document-4.0.jspx
rename to test/webapp/jsp/doc-version-valid/document-4.0.jspx
diff --git a/test/webapp/jsp/generator/attribute-04.jsp b/test/webapp/jsp/generator/attribute-04.jsp
index fc42a11e5f..7a2d1de8a1 100644
--- a/test/webapp/jsp/generator/attribute-04.jsp
+++ b/test/webapp/jsp/generator/attribute-04.jsp
@@ -47,16 +47,3 @@
     <jsp:setProperty name="bean2" property="intPrimitive" value="1" />
   </jsp:body>
 </bugs:TesterDynamicTag>
-<bugs:TesterDynamicTag bugs:x="foo">
-  <jsp:attribute name="attribute04">
-  </jsp:attribute>
-  <jsp:body>
-    <jsp:plugin code="" type="bean" jreversion="1.5">
-       <jsp:params>
-         <jsp:param name="object" value="bar"/>
-         <jsp:param name="type" value="bar"/>
-         <jsp:param name="foo" value="bar"/>
-       </jsp:params>
-    </jsp:plugin>
-  </jsp:body>
-</bugs:TesterDynamicTag>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/plugin-01.jspx b/test/webapp/jsp/generator/plugin-01.jspx
deleted file mode 100644
index ab8af3e3aa..0000000000
--- a/test/webapp/jsp/generator/plugin-01.jspx
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<jsp:root
-    xmlns:jsp="http://java.sun.com/JSP/Page"
-    version="2.0">
-  <jsp:plugin code="" codebase="" type="bean" width="10" height="10" iepluginurl="bar"/>
-  <jsp:plugin code="" codebase="" type="bean" nspluginurl="bar" archive="bar">
-    <jsp:attribute name="width">10</jsp:attribute>
-    <jsp:attribute name="height">10</jsp:attribute>
-    <jsp:body/>
-  </jsp:plugin>
-  <jsp:plugin code="" type="bean" jreversion="1.5">
-    <jsp:body>
-      <jsp:params>
-        <jsp:param name="object" value="bar"/>
-        <jsp:param name="type" value="bar"/>
-        <jsp:param name="foo" value="bar"/>
-      </jsp:params>
-      <p/>
-    </jsp:body>
-  </jsp:plugin>
-  <jsp:plugin code="" type="bean">
-    <jsp:body>
-      <p/>
-      <jsp:params>
-        <jsp:param name="object" value="bar"/>
-        <jsp:param name="type" value="bar"/>
-        <jsp:param name="foo">
-          <jsp:attribute name="value">bar</jsp:attribute>
-        </jsp:param>
-      </jsp:params>
-    </jsp:body>
-  </jsp:plugin>
-  <jsp:plugin code="" type="bean">
-    <jsp:body>
-      <p/>
-    </jsp:body>
-  </jsp:plugin>
-</jsp:root>
\ No newline at end of file


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