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 2021/05/17 10:50:31 UTC
[tomcat] 03/03: Improve code coverage of Generator tests
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 74717b362d7921103506aedaea81ab79feeaa1ba
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Mar 31 11:52:45 2021 +0100
Improve code coverage of Generator tests
These tests are fairly simple in that they only check for the correct
return code. The do not check the content of response body. The aim
of the tests is to detect a compilation problem with the Java code
generated from a JSP if the generation process is optimised (eg to
remove a variable declaraton in some cases) incorrectly.
Coverage is as close to 100% as practical for the Generator class
---
java/org/apache/jasper/compiler/Generator.java | 22 +-
test/org/apache/jasper/compiler/TestGenerator.java | 634 ++++++++++++++++++++-
.../jasper/runtime/TestCustomHttpJspPage.java | 20 +-
test/org/apache/jasper/runtime/TesterBean.java | 26 +
test/webapp/WEB-INF/bugs.tld | 102 +++-
.../bug58444.jsp => WEB-INF/tags/circular01.tag} | 18 +-
.../bug58444.jsp => WEB-INF/tags/circular02.tag} | 18 +-
.../bug58444.jsp => WEB-INF/tags/dobody.tagx} | 25 +-
.../tags/echo-deferred-method.tag} | 16 +-
.../bug58444.jsp => WEB-INF/tags/forward.tag} | 13 +-
.../bug58444.jsp => WEB-INF/tags/invoke.tagx} | 23 +-
.../bug58444.jsp => WEB-INF/tags/jsp-root.tagx} | 20 +-
.../bug58444.jsp => WEB-INF/tags/no-jsp-root.tagx} | 18 +-
.../bug58444.jsp => WEB-INF/tags/setters.tag} | 15 +-
.../tags/variable-from-attr.tag} | 16 +-
.../bug58444.jsp => WEB-INF/tags/variable.tag} | 18 +-
test/webapp/WEB-INF/web.xml | 134 +++++
.../bug5nnnn/{bug58444.jsp => bug58444a.jsp} | 0
.../bug5nnnn/{bug58444.jsp => bug58444b.jsp} | 0
.../generator/attribute-01.jsp} | 22 +-
test/webapp/jsp/generator/attribute-02.jsp | 36 ++
.../generator/attribute-03.jsp} | 19 +-
test/webapp/jsp/generator/attribute-04.jsp | 62 ++
.../bug58444.jsp => jsp/generator/beaninfo-01.jsp} | 13 +-
.../generator/break-el-interpreter.jsp} | 14 +-
.../generator/break-string-interpreter.jsp} | 14 +-
.../bug58444.jsp => jsp/generator/circular-01.jsp} | 11 +-
.../generator/customtag-02.jsp} | 18 +-
.../generator/customtag-03.jsp} | 14 +-
.../generator/customtag-04.jsp} | 14 +-
.../generator/deferred-method-01.jsp} | 17 +-
.../generator/deferred-method-02.jsp} | 17 +-
.../bug58444.jsp => jsp/generator/dobody-01.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/element-01.jsp} | 20 +-
.../bug58444.jsp => jsp/generator/forward-01.jsp} | 14 +-
.../bug58444.jsp => jsp/generator/forward-02.jsp} | 15 +-
.../bug58444.jsp => jsp/generator/forward-03.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/forward-04.jsp} | 11 +-
.../bug58444.jsp => jsp/generator/include-01.jsp} | 17 +-
.../generator/info-conflict-none.jsp} | 13 +-
.../generator/info-conflict.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/info.jsp} | 12 +-
.../bug58444.jsp => jsp/generator/invoke-01.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/jsp-id.jsp} | 14 +-
.../bug58444.jsp => jsp/generator/jsp-id.jspx} | 22 +-
test/webapp/jsp/generator/plugin-01.jspx | 54 ++
.../generator/scriptingvariables-01.jsp} | 20 +-
.../generator/scriptingvariables-02.jsp} | 19 +-
test/webapp/jsp/generator/setproperty-01.jsp | 32 ++
.../bug58444.jsp => jsp/generator/setters-01.jsp} | 11 +-
.../generator/single-threaded.jsp} | 12 +-
test/webapp/jsp/generator/templatetext-01.jsp | 283 +++++++++
test/webapp/jsp/generator/templatetext-02.jsp | 19 +
.../generator/try-catch-finally.jsp} | 16 +-
.../bug58444.jsp => jsp/generator/usebean-01.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-02.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-03.jsp} | 29 +-
.../bug58444.jsp => jsp/generator/usebean-04.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-05.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-06.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-07.jsp} | 13 +-
.../bug58444.jsp => jsp/generator/usebean-08.jsp} | 23 +-
.../generator/variable-from-attr-nested.jsp} | 16 +-
.../variable-tagfile-from-attr-nested.jsp} | 14 +-
.../generator/variable-tagfile-nested.jsp} | 21 +-
.../generator/variable-tei-nested.jsp} | 20 +-
.../generator/x-powered-by.jsp} | 13 +-
.../generator/xml-doctype-01.jspx} | 22 +-
.../generator/xml-doctype-02.jspx} | 23 +-
.../generator/xml-prolog-01.jspx} | 21 +-
.../generator/xml-prolog-02.jspx} | 21 +-
.../generator/xml-prolog-tag.jspx} | 18 +-
72 files changed, 1849 insertions(+), 535 deletions(-)
diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java
index 771283e..05cc767 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -866,9 +866,8 @@ class Generator {
* "no" or "false" - JSP document without a <jsp:root>
*/
String omitXmlDecl = pageInfo.getOmitXmlDecl();
- if ((omitXmlDecl != null && !JspUtil.booleanValue(omitXmlDecl))
- || (omitXmlDecl == null && page.getRoot().isXmlSyntax()
- && !pageInfo.hasJspRoot() && !ctxt.isTagFile())) {
+ if ((omitXmlDecl != null && !JspUtil.booleanValue(omitXmlDecl)) ||
+ (omitXmlDecl == null && page.getRoot().isXmlSyntax() && !pageInfo.hasJspRoot() && !ctxt.isTagFile())) {
String cType = pageInfo.getContentType();
String charSet = cType.substring(cType.indexOf("charset=") + 8);
out.printil("out.write(\"<?xml version=\\\"1.0\\\" encoding=\\\""
@@ -1171,8 +1170,7 @@ class Generator {
// If the page for jsp:forward was specified via
// jsp:attribute, first generate code to evaluate
// that body.
- pageParam = generateNamedAttributeValue(page
- .getNamedAttributeNode());
+ pageParam = generateNamedAttributeValue(page.getNamedAttributeNode());
} else {
pageParam = attributeValue(page, false, String.class);
}
@@ -2106,8 +2104,7 @@ class Generator {
String text = n.getText();
// If the extended option is being used attempt to minimize the
// frequency of regex operations.
- if (ctxt.getOptions().getTrimSpaces().equals(TrimSpacesOption.EXTENDED) &&
- text.contains("\n")) {
+ if (ctxt.getOptions().getTrimSpaces().equals(TrimSpacesOption.EXTENDED) && text.contains("\n")) {
// Ensure there are no <pre> or </pre> tags embedded in this
// text - if there are, we want to NOT modify the whitespace.
Matcher preMatcher = PRE_TAG_PATTERN.matcher(text);
@@ -4048,8 +4045,7 @@ class Generator {
this.propertyEditorMaps = new Hashtable<>();
try {
- BeanInfo tagClassInfo = Introspector
- .getBeanInfo(tagHandlerClass);
+ BeanInfo tagClassInfo = Introspector.getBeanInfo(tagHandlerClass);
PropertyDescriptor[] pd = tagClassInfo.getPropertyDescriptors();
for (PropertyDescriptor propertyDescriptor : pd) {
/*
@@ -4064,8 +4060,12 @@ class Generator {
.getPropertyEditorClass());
}
} catch (IntrospectionException ie) {
- err.jspError(n, ie, "jsp.error.introspect.taghandler",
- tagHandlerClass.getName());
+ // Likely unreachable code
+ // When last checked (May 2021), current versions of Java only
+ // throw IntrospectionException for the 2-arg version of
+ // getBeanInfo if the stop class is not a super class of the
+ // bean class. That does not apply here.
+ err.jspError(n, ie, "jsp.error.introspect.taghandler", tagHandlerClass.getName());
}
}
diff --git a/test/org/apache/jasper/compiler/TestGenerator.java b/test/org/apache/jasper/compiler/TestGenerator.java
index b28decc..04748e8 100644
--- a/test/org/apache/jasper/compiler/TestGenerator.java
+++ b/test/org/apache/jasper/compiler/TestGenerator.java
@@ -17,6 +17,10 @@
package org.apache.jasper.compiler;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.beans.PropertyEditorSupport;
import java.io.File;
import java.io.IOException;
import java.util.Date;
@@ -24,12 +28,19 @@ import java.util.Scanner;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.BodyTagSupport;
+import javax.servlet.jsp.tagext.DynamicAttributes;
+import javax.servlet.jsp.tagext.JspIdConsumer;
+import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.TagSupport;
+import javax.servlet.jsp.tagext.TryCatchFinally;
import javax.servlet.jsp.tagext.VariableInfo;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
import org.apache.catalina.Context;
@@ -145,10 +156,9 @@ public class TestGenerator extends TomcatBaseTest {
pageContext.setAttribute("now", bean);
return super.doStartTag();
}
-
-
}
+
public static class Bug48701TEI extends TagExtraInfo {
@Override
@@ -158,9 +168,9 @@ public class TestGenerator extends TomcatBaseTest {
true, VariableInfo.AT_END)
};
}
-
}
+
public static class Bean {
private String time;
@@ -335,4 +345,622 @@ public class TestGenerator extends TomcatBaseTest {
}
scanner.close();
}
+
+ @Test
+ public void testEscape01() {
+ String result = Generator.escape("\"\\\n\r");
+ Assert.assertEquals("\\\"\\\\\\n\\r", result);
+ }
+
+ @Test
+ public void testEscape02() {
+ String result = Generator.escape("\\");
+ Assert.assertEquals("\\\\", result);
+ }
+
+ @Test
+ public void testEscape03() {
+ String result = Generator.escape("xxx\\");
+ Assert.assertEquals("xxx\\\\", result);
+ }
+
+ @Test
+ public void testEscape04() {
+ String result = Generator.escape("\\xxx");
+ Assert.assertEquals("\\\\xxx", result);
+ }
+
+ @Test
+ public void testQuote01() {
+ String result = Generator.quote('\'');
+ Assert.assertEquals("\'\\\'\'", result);
+ }
+
+ @Test
+ public void testQuote02() {
+ String result = Generator.quote('\\');
+ Assert.assertEquals("\'\\\\\'", result);
+ }
+
+ @Test
+ public void testQuote03() {
+ String result = Generator.quote('\n');
+ Assert.assertEquals("\'\\n\'", result);
+ }
+
+ @Test
+ public void testQuote04() {
+ String result = Generator.quote('\r');
+ Assert.assertEquals("\'\\r\'", result);
+ }
+
+ @Test
+ public void testQuote05() {
+ String result = Generator.quote('x');
+ Assert.assertEquals("\'x\'", result);
+ }
+
+ @Test
+ public void testJspId() throws Exception {
+ doTestJspId(false);
+ }
+
+ @Test
+ public void testJspIdDocument() throws Exception {
+ doTestJspId(true);
+ }
+
+ private void doTestJspId(boolean document) throws Exception {
+ getTomcatInstanceTestWebapp(false, true);
+
+ String uri = "http://localhost:" + getPort() + "/test/jsp/generator/jsp-id.jsp";
+ if (document) {
+ uri += "x";
+ }
+ ByteChunk res = getUrl(uri);
+
+ String result = res.toString();
+
+ // Two tags should have different IDs
+ String[] ids = new String[2];
+ int start = 0;
+ int end = 0;
+ for (int i = 0; i < ids.length; i++) {
+ start = result.indexOf("Jsp ID is [", start) + 11;
+ end = result.indexOf("]", start);
+ ids[i] = result.substring(start, end);
+ }
+
+ // Confirm the IDs are not the same
+ Assert.assertNotEquals(ids[0], ids[1]);
+ }
+
+ public static class JspIdTag extends TagSupport implements JspIdConsumer {
+
+ private static final long serialVersionUID = 1L;
+
+ private volatile String jspId;
+
+ @Override
+ public int doStartTag() throws JspException {
+ try {
+ pageContext.getOut().print("<p>Jsp ID is [" + jspId + "]</p>");
+ } catch (IOException ioe) {
+ throw new JspException(ioe);
+ }
+ return super.doStartTag();
+ }
+
+ @Override
+ public void setJspId(String jspId) {
+ this.jspId = jspId;
+ }
+ }
+
+ public static class TryCatchFinallyTag extends BodyTagSupport implements TryCatchFinally {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int doStartTag() throws JspException {
+ try {
+ pageContext.getOut().print("<p>OK</p>");
+ } catch (IOException ioe) {
+ throw new JspException(ioe);
+ }
+ return super.doStartTag();
+ }
+
+ @Override
+ public void doCatch(Throwable t) throws Throwable {
+ // NO-OP
+ }
+
+ @Override
+ public void doFinally() {
+ // NO-OP
+ }
+ }
+
+ public static class TesterBodyTag extends BodyTagSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int doStartTag() throws JspException {
+ try {
+ pageContext.getOut().print("<p>OK</p>");
+ } catch (IOException ioe) {
+ throw new JspException(ioe);
+ }
+ return super.doStartTag();
+ }
+ }
+
+ public static class TesterTag implements Tag {
+
+ private Tag parent;
+
+ @Override
+ public void setPageContext(PageContext pc) {
+ }
+
+ @Override
+ public void setParent(Tag t) {
+ parent = t;
+ }
+
+ @Override
+ public Tag getParent() {
+ return parent;
+ }
+
+ @Override
+ public int doStartTag() throws JspException {
+ return 0;
+ }
+
+ @Override
+ public int doEndTag() throws JspException {
+ return 0;
+ }
+
+ @Override
+ public void release() {
+ }
+ }
+
+ public static class TesterTagA extends TesterTag {
+ private String data;
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+ }
+
+ public static class DataPropertyEditor extends PropertyEditorSupport {
+ }
+
+ public static class TesterScriptingTag extends TagSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ private String attribute02;
+ private String attribute03;
+
+ public String getAttribute02() {
+ return attribute02;
+ }
+
+ public void setAttribute02(String attribute02) {
+ this.attribute02 = attribute02;
+ }
+
+ public String getAttribute03() {
+ return attribute03;
+ }
+
+ public void setAttribute03(String attribute03) {
+ this.attribute03 = attribute03;
+ }
+ }
+
+ public static class TesterScriptingTagB extends TagSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ private String attribute02;
+
+ public String getAttribute02() {
+ return attribute02;
+ }
+
+ public void setAttribute02(String attribute02) {
+ this.attribute02 = attribute02;
+ }
+ }
+
+ public static class TesterScriptingTagBTEI extends TagExtraInfo {
+
+ @Override
+ public VariableInfo[] getVariableInfo(TagData data) {
+ return new VariableInfo[] {
+ new VariableInfo("variable01", "java.lang.String", true, VariableInfo.NESTED),
+ new VariableInfo(data.getAttribute("attribute02").toString(),
+ "java.lang.String", true, VariableInfo.NESTED),
+ new VariableInfo("variable03", "java.lang.String", false, VariableInfo.NESTED)
+ };
+ }
+
+ }
+
+ public static class TesterDynamicTag extends TagSupport implements DynamicAttributes {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void setDynamicAttribute(String uri, String localName, Object value)
+ throws JspException {
+ // NO-OP
+ }
+ }
+
+ public static class TesterAttributeTag extends TagSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ private Object attribute01;
+ private Object attribute02;
+ private Object attribute03;
+ private Object attribute04;
+ private Object attribute05;
+ private Object attribute06;
+
+ public Object getAttribute01() {
+ return attribute01;
+ }
+
+ public void setAttribute01(Object attribute01) {
+ this.attribute01 = attribute01;
+ }
+
+ public Object getAttribute02() {
+ return attribute02;
+ }
+
+ public void setAttribute02(Object attribute02) {
+ this.attribute02 = attribute02;
+ }
+
+ public Object getAttribute03() {
+ return attribute03;
+ }
+
+ public void setAttribute03(Object attribute03) {
+ this.attribute03 = attribute03;
+ }
+
+ public Object getAttribute04() {
+ return attribute04;
+ }
+
+ public void setAttribute04(Object attribute04) {
+ this.attribute04 = attribute04;
+ }
+
+ public Object getAttribute05() {
+ return attribute05;
+ }
+
+ public void setAttribute05(Object attribute05) {
+ this.attribute05 = attribute05;
+ }
+
+ public Object getAttribute06() {
+ return attribute06;
+ }
+
+ public void setAttribute06(Object attribute06) {
+ this.attribute06 = attribute06;
+ }
+ }
+
+
+ @Test
+ public void testInfoConflictNone() throws Exception {
+ doTestJsp("info-conflict-none.jsp");
+ }
+
+ @Test
+ public void testInfoConflict() throws Exception {
+ doTestJsp("info-conflict.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testTagWithVariable() throws Exception {
+ doTestJsp("variable-tei-nested.jsp");
+ }
+
+ @Test
+ public void testTagWithVariableFromAttr() throws Exception {
+ doTestJsp("variable-from-attr-nested.jsp");
+ }
+
+ @Test
+ public void testTagFileWithVariable() throws Exception {
+ doTestJsp("variable-tagfile-nested.jsp");
+ }
+
+ @Test
+ public void testTagFileWithVariableFromAttr() throws Exception {
+ doTestJsp("variable-tagfile-from-attr-nested.jsp");
+ }
+
+ @Test
+ public void testSingleThreaded() throws Exception {
+ doTestJsp("single-threaded.jsp");
+ }
+
+ @Test
+ public void testXpoweredBy() throws Exception {
+ doTestJsp("x-powered-by.jsp");
+ }
+
+ @Test
+ public void testXmlProlog01() throws Exception {
+ doTestJsp("xml-prolog-01.jspx");
+ }
+
+ @Test
+ public void testXmlProlog02() throws Exception {
+ doTestJsp("xml-prolog-02.jspx");
+ }
+
+ @Test
+ public void testXmlPrologTag() throws Exception {
+ doTestJsp("xml-prolog-tag.jspx");
+ }
+
+ @Test
+ public void testXmlDoctype01() throws Exception {
+ doTestJsp("xml-doctype-01.jspx");
+ }
+
+ @Test
+ public void testXmlDoctype02() throws Exception {
+ 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");
+ }
+
+ @Test
+ public void testForward02() throws Exception {
+ doTestJsp("forward-02.jsp");
+ }
+
+ @Test
+ public void testForward03() throws Exception {
+ doTestJsp("forward-03.jsp");
+ }
+
+ @Test
+ public void testForward04() throws Exception {
+ doTestJsp("forward-04.jsp");
+ }
+
+ @Test
+ public void testElement01() throws Exception {
+ doTestJsp("element-01.jsp");
+ }
+
+ @Test
+ public void testInclude01() throws Exception {
+ doTestJsp("include-01.jsp");
+ }
+
+ @Test
+ public void testSetProperty01() throws Exception {
+ doTestJsp("setproperty-01.jsp");
+ }
+
+ @Test
+ public void testUseBean01() throws Exception {
+ doTestJsp("usebean-01.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testUseBean02() throws Exception {
+ doTestJsp("usebean-02.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testUseBean03() throws Exception {
+ doTestJsp("usebean-03.jsp");
+ }
+
+ @Test
+ public void testUseBean04() throws Exception {
+ doTestJsp("usebean-04.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Ignore // Requires specific Java settings
+ @Test
+ public void testUseBean05() throws Exception {
+ // Whether this test passes or fails depends on the Java version used
+ // and the JRE settings.
+ // For the test to pass use Java 9+ with --illegal-access=deny
+ doTestJsp("usebean-05.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testUseBean06() throws Exception {
+ doTestJsp("usebean-06.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testUseBean07() throws Exception {
+ doTestJsp("usebean-07.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testUseBean08() throws Exception {
+ doTestJsp("usebean-08.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testCustomTag01() throws Exception {
+ doTestJsp("try-catch-finally.jsp");
+ }
+
+ @Test
+ public void testCustomTag02() throws Exception {
+ doTestJsp("customtag-02.jsp");
+ }
+
+ @Test
+ public void testCustomTag03() throws Exception {
+ doTestJsp("customtag-03.jsp");
+ }
+
+ @Test
+ public void testCustomTag04() throws Exception {
+ doTestJsp("customtag-04.jsp", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+
+ @Test
+ public void testTemplateText01() throws Exception {
+ doTestJsp("templatetext-01.jsp");
+ }
+
+ @Test
+ public void testTemplateText02() throws Exception {
+ doTestJsp("templatetext-02.jsp");
+ }
+
+ @Test
+ public void testInvoke01() throws Exception {
+ doTestJsp("invoke-01.jsp");
+ }
+
+ @Test
+ public void testDoBody01() throws Exception {
+ doTestJsp("dobody-01.jsp");
+ }
+
+ @Test
+ public void testScriptingVariables01() throws Exception {
+ doTestJsp("scriptingvariables-01.jsp");
+ }
+
+ @Test
+ public void testScriptingVariables02() throws Exception {
+ doTestJsp("scriptingvariables-02.jsp");
+ }
+
+ @Test
+ public void testAttribute01() throws Exception {
+ doTestJsp("attribute-01.jsp");
+ }
+
+ @Test
+ public void testAttribute02() throws Exception {
+ doTestJsp("attribute-02.jsp");
+ }
+
+ @Test
+ public void testAttribute03() throws Exception {
+ doTestJsp("attribute-03.jsp");
+ }
+
+ @Test
+ public void testAttribute04() throws Exception {
+ doTestJsp("attribute-04.jsp");
+ }
+
+ @Test
+ public void testSetters01() throws Exception {
+ doTestJsp("setters-01.jsp");
+ }
+
+ @Test
+ public void testCircular01() throws Exception {
+ doTestJsp("circular-01.jsp");
+ }
+
+ @Test
+ public void testDeferredMethod01() throws Exception {
+ doTestJsp("deferred-method-01.jsp");
+ }
+
+ @Test
+ public void testDeferredMethod02() throws Exception {
+ doTestJsp("deferred-method-02.jsp");
+ }
+
+ @Test
+ public void testBeanInfo01() throws Exception {
+ BeanInfo bi = Introspector.getBeanInfo(TesterTagA.class);
+ for (PropertyDescriptor pd : bi.getPropertyDescriptors()) {
+ if (pd.getName().equals("data")) {
+ pd.setPropertyEditorClass(DataPropertyEditor.class);
+ }
+ }
+
+ doTestJsp("beaninfo-01.jsp");
+ }
+
+ @Test
+ public void testBreakELInterpreter() throws Exception {
+ getTomcatInstanceTestWebapp(false, true);
+
+ // This should break all subsequent requests
+ ByteChunk body = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() + "/test/jsp/generator/break-el-interpreter.jsp", body, null);
+ Assert.assertEquals(body.toString(), HttpServletResponse.SC_OK, rc);
+
+ body.recycle();
+
+ rc = getUrl("http://localhost:" + getPort() + "/test/jsp/generator/info.jsp", body, null);
+ Assert.assertEquals(body.toString(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc);
+ }
+
+ @Test
+ public void testBreakStringInterpreter() throws Exception {
+ getTomcatInstanceTestWebapp(false, true);
+
+ // This should break all subsequent requests
+ ByteChunk body = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() + "/test/jsp/generator/break-string-interpreter.jsp", body, null);
+ Assert.assertEquals(body.toString(), HttpServletResponse.SC_OK, rc);
+
+ body.recycle();
+
+ rc = getUrl("http://localhost:" + getPort() + "/test/jsp/generator/info.jsp", body, null);
+ Assert.assertEquals(body.toString(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc);
+ }
+
+ private void doTestJsp(String jspName) throws Exception {
+ doTestJsp(jspName, HttpServletResponse.SC_OK);
+ }
+
+ private void doTestJsp(String jspName, int expectedResponseCode) throws Exception {
+ getTomcatInstanceTestWebapp(false, true);
+
+ ByteChunk body = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() + "/test/jsp/generator/" + jspName, body, null);
+
+ Assert.assertEquals(body.toString(), expectedResponseCode, rc);
+ }
}
diff --git a/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java b/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
index d7737f8..2b4fb72 100644
--- a/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
+++ b/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
@@ -30,12 +30,28 @@ public class TestCustomHttpJspPage extends TomcatBaseTest {
* Bug 58444
*/
@Test
- public void testCustomBasePageWhenUsingTagFiles() throws Exception {
+ public void testCustomBasePageWhenUsingTagFiles01() throws Exception {
getTomcatInstanceTestWebapp(true, true);
ByteChunk out = new ByteChunk();
- int rc = getUrl("http://localhost:" + getPort() + "/test/bug5nnnn/bug58444.jsp", out, null);
+ int rc = getUrl("http://localhost:" + getPort() + "/test/bug5nnnn/bug58444a.jsp", out, null);
+
+ Assert.assertEquals(HttpServletResponse.SC_OK, rc);
+
+ String result = out.toString();
+
+ Assert.assertTrue(result, result.contains("00-PASS"));
+ }
+
+
+ @Test
+ public void testCustomBasePageWhenUsingTagFiles02() throws Exception {
+ getTomcatInstanceTestWebapp(true, true);
+
+ ByteChunk out = new ByteChunk();
+
+ int rc = getUrl("http://localhost:" + getPort() + "/test/bug5nnnn/bug58444b.jsp", out, null);
Assert.assertEquals(HttpServletResponse.SC_OK, rc);
diff --git a/test/org/apache/jasper/runtime/TesterBean.java b/test/org/apache/jasper/runtime/TesterBean.java
index bb201c5..b34f7cf 100644
--- a/test/org/apache/jasper/runtime/TesterBean.java
+++ b/test/org/apache/jasper/runtime/TesterBean.java
@@ -249,4 +249,30 @@ public class TesterBean {
public void setTesterTypeB(TesterTypeB testerTypeB) {
this.testerTypeB = testerTypeB;
}
+
+
+ public static class Inner {
+ private String data;
+
+
+ public String getData() {
+ return data;
+ }
+
+
+ public void setData(String data) {
+ this.data = data;
+ }
+ }
+
+
+ @SuppressWarnings("unused")
+ private static class Inner2 {
+ public Inner2() {
+ }
+ }
+
+
+ public abstract static class Inner4 {
+ }
}
diff --git a/test/webapp/WEB-INF/bugs.tld b/test/webapp/WEB-INF/bugs.tld
index 268e7ee..6428e87 100644
--- a/test/webapp/WEB-INF/bugs.tld
+++ b/test/webapp/WEB-INF/bugs.tld
@@ -34,7 +34,6 @@
<tei-class>org.apache.jasper.compiler.TestScriptingVariabler$Bug48616bTei</tei-class>
<body-content>JSP</body-content>
</tag>
-
<tag>
<name>Bug48701a</name>
<tag-class>org.apache.jasper.compiler.TestGenerator$Bug48701</tag-class>
@@ -54,7 +53,7 @@
<tag>
<name>Bug48701c</name>
<tag-class>org.apache.jasper.compiler.TestGenerator$Bug48701</tag-class>
- <body-content>empty</body-content>
+ <body-content>JSP</body-content>
<variable>
<name-from-attribute>beanName</name-from-attribute>
<variable-class>org.apache.jasper.compiler.TestGenerator.Bean</variable-class>
@@ -80,6 +79,105 @@
<required>true</required>
</attribute>
</tag>
+ <tag>
+ <name>JspIdTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$JspIdTag</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+ <tag>
+ <name>TryCatchFinallyTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TryCatchFinallyTag</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+ <tag>
+ <name>TesterBodyTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterBodyTag</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+ <tag>
+ <name>TesterTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>foo</name>
+ <required>false</required>
+ </attribute>
+ </tag>
+ <tag>
+ <name>TesterTagA</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterTagA</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+ <tag>
+ <name>TesterScriptingTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterScriptingTag</tag-class>
+ <body-content>JSP</body-content>
+ <variable>
+ <name-given>variable01</name-given>
+ </variable>
+ <variable>
+ <name-from-attribute>attribute02</name-from-attribute>
+ </variable>
+ <variable>
+ <name-from-attribute>attribute03</name-from-attribute>
+ <declare>false</declare>
+ </variable>
+ <attribute>
+ <name>attribute02</name>
+ </attribute>
+ <attribute>
+ <name>attribute03</name>
+ </attribute>
+ </tag>
+ <tag>
+ <name>TesterScriptingTagB</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterScriptingTagB</tag-class>
+ <tei-class>org.apache.jasper.compiler.TestGenerator$TesterScriptingTagBTEI</tei-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>attribute02</name>
+ </attribute>
+ </tag>
+ <tag>
+ <name>TesterDynamicTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterDynamicTag</tag-class>
+ <body-content>JSP</body-content>
+ <dynamic-attributes>true</dynamic-attributes>
+ </tag>
+ <tag>
+ <name>TesterAttributeTag</name>
+ <tag-class>org.apache.jasper.compiler.TestGenerator$TesterAttributeTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <name>attribute01</name>
+ <deferred-value/>
+ </attribute>
+ <attribute>
+ <name>attribute02</name>
+ <rtexprvalue>true</rtexprvalue>
+ <deferred-value/>
+ </attribute>
+ <attribute>
+ <name>attribute03</name>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>attribute04</name>
+ <rtexprvalue>true</rtexprvalue>
+ <type>jakarta.el.ValueExpression</type>
+ </attribute>
+ <attribute>
+ <name>attribute05</name>
+ <deferred-method>
+ <method-signature>java.lang.String sayHello(java.lang.String)</method-signature>
+ </deferred-method>
+ </attribute>
+ <attribute>
+ <name>attribute06</name>
+ <rtexprvalue>true</rtexprvalue>
+ <type>jakarta.el.MethodExpression</type>
+ </attribute>
+ </tag>
<function>
<name>bug49555</name>
<function-class>org.apache.el.TesterFunctions$Inner$Class</function-class>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/circular01.tag
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/circular01.tag
index f25ba54..ca70c5a 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/circular01.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,12 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <%
+ if (getParent() == null) {
+ %>
+ <tags:circular02 />
+ <%
+ }
+ %>
+<jsp:doBody/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/circular02.tag
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/circular02.tag
index f25ba54..03b8f4c 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/circular02.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,12 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%
+ if (getParent() == null) {
+%>
+ <tags:circular01 />
+<%
+ }
+%>
+<jsp:doBody/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/dobody.tagx
similarity index 57%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/dobody.tagx
index f25ba54..1b799ef 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/dobody.tagx
@@ -1,23 +1,26 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+<jsp:directive.tag body-content="scriptless" />
+<jsp:doBody var="a" scope="page"/>
+<jsp:doBody var="a" scope="request"/>
+<jsp:doBody var="a" scope="session"/>
+<jsp:doBody var="a" scope="application"/>
+<jsp:doBody varReader="b"/>
+<jsp:doBody/>
+</jsp:root>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/echo-deferred-method.tag
similarity index 66%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/echo-deferred-method.tag
index f25ba54..6710a8c 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/echo-deferred-method.tag
@@ -1,23 +1,19 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+--%><%@ tag %><%@ attribute name="echo" deferredMethod="true" %><%@
+attribute name="echo2" deferredMethod="true" %><%@
+variable name-given="var1" scope="AT_END" %><%@
+tag body-content="empty" %><p>${echo} ${echo2}</p>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/forward.tag
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/forward.tag
index f25ba54..c5f76b8 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/forward.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ tag body-content="empty" %>
+<jsp:forward page="x-powered-by.jsp"/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/invoke.tagx
similarity index 58%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/invoke.tagx
index f25ba54..be146dc 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/invoke.tagx
@@ -1,23 +1,24 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+<jsp:directive.tag body-content="scriptless" />
+<jsp:directive.attribute name="fragment" fragment="true" />
+<jsp:invoke fragment="fragment" var="a" />
+<jsp:invoke fragment="fragment" varReader="b" scope="page"/>
+<jsp:doBody />
+</jsp:root>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/jsp-root.tagx
similarity index 68%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/jsp-root.tagx
index f25ba54..5cae0cf 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/jsp-root.tagx
@@ -1,23 +1,21 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+<hi>
+</hi>
+</jsp:root>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/no-jsp-root.tagx
similarity index 68%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/no-jsp-root.tagx
index f25ba54..154f72b 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/no-jsp-root.tagx
@@ -1,23 +1,19 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<hi>
+</hi>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/setters.tag
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/setters.tag
index f25ba54..01f9096 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/setters.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,9 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
+<%@ tag %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TesterTag>
+ <tags:echo echo="aaa"/>
+</bugs:TesterTag>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/variable-from-attr.tag
similarity index 59%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/variable-from-attr.tag
index f25ba54..285709b 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/variable-from-attr.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ attribute name="varName" type="java.lang.String" required="true" rtexprvalue="false" %>
+<%@ attribute name="varName2" type="java.lang.String" required="true" rtexprvalue="false" %>
+<%@ variable name-from-attribute="varName" alias="data" scope="AT_END" %>
+<%@ variable name-from-attribute="varName2" alias="data2" scope="AT_END" %>
+<jsp:doBody/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/WEB-INF/tags/variable.tag
similarity index 61%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/WEB-INF/tags/variable.tag
index f25ba54..29dec90 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/WEB-INF/tags/variable.tag
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,10 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ variable name-given="var1" scope="AT_END" %>
+<%@ variable name-given="var2" scope="AT_END" %>
+<%@ variable name-given="var3" scope="NESTED" %>
+<%@ variable name-given="var4" scope="NESTED" %>
+<%@ variable name-given="var5" scope="AT_BEGIN" %>
+<%@ variable name-given="var16" scope="AT_BEGIN" %>
+<jsp:doBody/>
\ No newline at end of file
diff --git a/test/webapp/WEB-INF/web.xml b/test/webapp/WEB-INF/web.xml
index d5f5bee..5179cec 100644
--- a/test/webapp/WEB-INF/web.xml
+++ b/test/webapp/WEB-INF/web.xml
@@ -160,6 +160,140 @@
<url-pattern>/bug53574</url-pattern>
</servlet-mapping>
+ <servlet>
+ <servlet-name>JSP-x-powered-by</servlet-name>
+ <jsp-file>/jsp/generator/x-powered-by.jsp</jsp-file>
+ <init-param>
+ <param-name>xpoweredBy</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-x-powered-by</servlet-name>
+ <url-pattern>/jsp/generator/x-powered-by.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>JSP-usebean-04</servlet-name>
+ <jsp-file>/jsp/generator/usebean-04.jsp</jsp-file>
+ <init-param>
+ <param-name>errorOnUseBeanInvalidClassAttribute</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-usebean-04</servlet-name>
+ <url-pattern>/jsp/generator/usebean-04.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>JSP-usebean-07</servlet-name>
+ <jsp-file>/jsp/generator/usebean-07.jsp</jsp-file>
+ <init-param>
+ <param-name>errorOnUseBeanInvalidClassAttribute</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-usebean-07</servlet-name>
+ <url-pattern>/jsp/generator/usebean-07.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>JSP-templatetext-01</servlet-name>
+ <jsp-file>/jsp/generator/templatetext-01.jsp</jsp-file>
+ <init-param>
+ <param-name>trimSpaces</param-name>
+ <param-value>extended</param-value>
+ </init-param>
+ <init-param>
+ <param-name>genStringAsCharArray</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-templatetext-01</servlet-name>
+ <url-pattern>/jsp/generator/templatetext-01.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>JSP-templatetext-02</servlet-name>
+ <jsp-file>/jsp/generator/templatetext-02.jsp</jsp-file>
+ <init-param>
+ <param-name>mappedfile</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-templatetext-02</servlet-name>
+ <url-pattern>/jsp/generator/templatetext-02.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>JSP-jsp-id</servlet-name>
+ <jsp-file>/jsp/generator/jsp-id.jsp</jsp-file>
+ <init-param>
+ <param-name>enablePooling</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>useInstanceManagerForTags</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>JSP-jsp-id</servlet-name>
+ <url-pattern>/jsp/generator/jsp-id.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>bug48701-no-strict</servlet-name>
+ <jsp-file>/bug48nnn/bug48701-VI.jsp</jsp-file>
+ <init-param>
+ <param-name>strictGetProperty</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>bug48701-no-strict</servlet-name>
+ <url-pattern>/bug48nnn/bug48701-VI.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>bug58445b</servlet-name>
+ <jsp-file>/bug5nnnn/bug58444b.jsp</jsp-file>
+ <init-param>
+ <param-name>poolTagsWithExtends</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>bug58445b</servlet-name>
+ <url-pattern>/bug5nnnn/bug58444b.jsp</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>deferred-method-02</servlet-name>
+ <jsp-file>/jsp/generator/deferred-method-02.jsp</jsp-file>
+ <init-param>
+ <param-name>enablePooling</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>-2</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>deferred-method-02</servlet-name>
+ <url-pattern>/jsp/generator/deferred-method-02.jsp</url-pattern>
+ </servlet-mapping>
+
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/bug5nnnn/bug58444a.jsp
similarity index 100%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/bug5nnnn/bug58444a.jsp
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/bug5nnnn/bug58444b.jsp
similarity index 100%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/bug5nnnn/bug58444b.jsp
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/attribute-01.jsp
similarity index 56%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/attribute-01.jsp
index f25ba54..ba356fb 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/attribute-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,14 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%
+ String variable03 = null;
+%>
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute02">foo02</jsp:attribute>
+ <jsp:attribute name="attribute03">foo03</jsp:attribute>
+</bugs:TesterDynamicTag>
+<bugs:TesterDynamicTag attribute03="${'foo03'}">
+ <jsp:attribute name="attribute02">foo02</jsp:attribute>
+</bugs:TesterDynamicTag>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/attribute-02.jsp b/test/webapp/jsp/generator/attribute-02.jsp
new file mode 100644
index 0000000..2e6f104
--- /dev/null
+++ b/test/webapp/jsp/generator/attribute-02.jsp
@@ -0,0 +1,36 @@
+<%--
+ 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.
+--%>
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%@ page import="org.apache.el.TesterBeanA" %>
+<%@ page import="org.apache.el.TesterBeanB" %>
+<bugs:TesterAttributeTag attribute01="aaa" />
+<bugs:TesterAttributeTag attribute01="#{'aaa'}" />
+<bugs:TesterAttributeTag attribute02="${'bbb'}" />
+<bugs:TesterAttributeTag attribute02="#{'bbb'}" />
+<bugs:TesterAttributeTag attribute03="${'bbb'}" />
+<bugs:TesterAttributeTag attribute04="${'bbb'}" />
+<%
+TesterBeanA beanA = new TesterBeanA();
+TesterBeanB beanB = new TesterBeanB();
+beanB.setName("Tomcat");
+beanA.setBean(beanB);
+pageContext.setAttribute("testBeanA", beanA, PageContext.REQUEST_SCOPE);
+pageContext.setAttribute("testBeanB", beanB, PageContext.REQUEST_SCOPE);
+%>
+<bugs:TesterAttributeTag attribute05="#{testBeanA.getBean()}" />
+<bugs:TesterAttributeTag attribute05="#{testBeanB.sayHello('ccc')}" />
+<bugs:TesterAttributeTag attribute06="${testBeanA.getBean()}" />
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/attribute-03.jsp
similarity index 62%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/attribute-03.jsp
index f25ba54..e1043a8 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/attribute-03.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%
+ String variable03 = null;
+%>
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute02">${'foo02'}</jsp:attribute>
+ <jsp:attribute name="attribute03">foo${'03'}</jsp:attribute>
+</bugs:TesterDynamicTag>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/attribute-04.jsp b/test/webapp/jsp/generator/attribute-04.jsp
new file mode 100644
index 0000000..fc42a11
--- /dev/null
+++ b/test/webapp/jsp/generator/attribute-04.jsp
@@ -0,0 +1,62 @@
+<%--
+ 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.
+--%>
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%
+ String variable03 = null;
+%>
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute04">aaa</jsp:attribute>
+</bugs:TesterDynamicTag>
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute04">
+ </jsp:attribute>
+ <jsp:body>
+ <jsp:useBean
+ id="bean1"
+ type="org.apache.jasper.runtime.TesterBean.Inner"
+ beanName="bean1"
+ />
+ </jsp:body>
+</bugs:TesterDynamicTag>
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute04">
+ </jsp:attribute>
+ <jsp:body>
+ <jsp:include page="/index.html"/>
+ </jsp:body>
+</bugs:TesterDynamicTag>
+<jsp:useBean id="bean2" class="org.apache.jasper.runtime.TesterBean" />
+<bugs:TesterDynamicTag bugs:x="foo">
+ <jsp:attribute name="attribute04">
+ </jsp:attribute>
+ <jsp:body>
+ <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/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/beaninfo-01.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/beaninfo-01.jsp
index f25ba54..1c953ad 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/beaninfo-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TesterTagA/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/break-el-interpreter.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/break-el-interpreter.jsp
index f25ba54..9d96495 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/break-el-interpreter.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%
+application.setAttribute(org.apache.jasper.compiler.ELInterpreter.class.getName(), "does.not.exist");
+%>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/break-string-interpreter.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/break-string-interpreter.jsp
index f25ba54..4b84fcc 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/break-string-interpreter.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%
+application.setAttribute(org.apache.jasper.compiler.StringInterpreter.class.getName(), "does.not.exist");
+%>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/circular-01.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/circular-01.jsp
index f25ba54..6252ecb 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/circular-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:circular01/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/customtag-02.jsp
similarity index 66%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/customtag-02.jsp
index f25ba54..14e33eb 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/customtag-02.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,10 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TesterBodyTag>
+ <bugs:TryCatchFinallyTag>
+ <bugs:TesterBodyTag>
+ </bugs:TesterBodyTag>
+ </bugs:TryCatchFinallyTag>
+</bugs:TesterBodyTag>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/customtag-03.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/customtag-03.jsp
index f25ba54..a0901a2 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/customtag-03.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TesterTag>
+</bugs:TesterTag>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/customtag-04.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/customtag-04.jsp
index f25ba54..c779084 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/customtag-04.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TesterTag foo="bar">
+</bugs:TesterTag>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/deferred-method-01.jsp
similarity index 63%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/deferred-method-01.jsp
index f25ba54..3da8727 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/deferred-method-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page import="org.apache.el.TesterBeanB" %>
+<%
+TesterBeanB beanB = new TesterBeanB();
+beanB.setName("Tomcat");
+pageContext.setAttribute("testBeanB", beanB, PageContext.REQUEST_SCOPE);
+%>
+<tags:echo-deferred-method echo="#{testBeanB.sayHello('aaa')}" echo2="#{testBeanB.sayHello('bbb')}"/>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/deferred-method-02.jsp
similarity index 63%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/deferred-method-02.jsp
index f25ba54..3da8727 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/deferred-method-02.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page import="org.apache.el.TesterBeanB" %>
+<%
+TesterBeanB beanB = new TesterBeanB();
+beanB.setName("Tomcat");
+pageContext.setAttribute("testBeanB", beanB, PageContext.REQUEST_SCOPE);
+%>
+<tags:echo-deferred-method echo="#{testBeanB.sayHello('aaa')}" echo2="#{testBeanB.sayHello('bbb')}"/>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/dobody-01.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/dobody-01.jsp
index f25ba54..0818fcc 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/dobody-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:dobody>
+<p>Hello world</p>
+</tags:dobody>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/element-01.jsp
similarity index 58%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/element-01.jsp
index f25ba54..37dd390 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/element-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,12 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<jsp:element name="p">
+ <jsp:attribute name="style">color:red</jsp:attribute>
+ <jsp:body>00-Red</jsp:body>
+</jsp:element>
+<jsp:element name="p" align="left">
+ <jsp:attribute name="style">color:red</jsp:attribute>
+ <jsp:body>00-Red</jsp:body>
+</jsp:element>
+<jsp:element name="p" align="left"><jsp:attribute name="style">color:red</jsp:attribute></jsp:element>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/forward-01.jsp
similarity index 80%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/forward-01.jsp
index f25ba54..3c4173e 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/forward-01.jsp
@@ -13,11 +13,9 @@
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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ --%>
+<jsp:forward page="x-powered-by.jsp?x=y">
+ <jsp:param name="a" value="${1}" />
+ <jsp:param name="b" value="<%= 1+1 %>" />
+ <jsp:param name="c" value="b?a?r" />
+</jsp:forward>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/forward-02.jsp
similarity index 81%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/forward-02.jsp
index f25ba54..29aa7c1 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/forward-02.jsp
@@ -13,11 +13,10 @@
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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ --%>
+<jsp:forward>
+ <jsp:attribute name="page">x-powered-by.jsp</jsp:attribute>
+ <jsp:body>
+ <jsp:param name="a" value="1"/>
+ </jsp:body>
+</jsp:forward>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/forward-03.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/forward-03.jsp
index f25ba54..d289c48 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/forward-03.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:variable>
+ <jsp:forward page="x-powered-by.jsp"/>
+</tags:variable>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/forward-04.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/forward-04.jsp
index f25ba54..956694a 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/forward-04.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:forward/>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/include-01.jsp
similarity index 76%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/include-01.jsp
index f25ba54..a3ba002 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/include-01.jsp
@@ -13,11 +13,12 @@
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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ --%>
+<jsp:include page="x-powered-by.jsp"/>
+<jsp:include>
+ <jsp:attribute name="page">x-powered-by.jsp</jsp:attribute>
+</jsp:include>
+<jsp:include>
+ <jsp:attribute name="page">x-powered-by.jsp</jsp:attribute>
+ <jsp:body/>
+</jsp:include>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/info-conflict-none.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/info-conflict-none.jsp
index f25ba54..690db8f 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/info-conflict-none.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page info="abc" %>
+<%@ include file="info.jsp" %>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/info-conflict.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/info-conflict.jsp
index f25ba54..c6e73e7 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/info-conflict.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page info="123" %>
+<%@ include file="info.jsp" %>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/info.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/info.jsp
index f25ba54..142ee6b 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/info.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,4 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page info="abc" %>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/invoke-01.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/invoke-01.jsp
index f25ba54..ac4e1d1 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/invoke-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:invoke>
+<p>Hello world</p>
+</tags:invoke>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/jsp-id.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/jsp-id.jsp
index f25ba54..c148e99 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/jsp-id.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:JspIdTag/>
+<bugs:JspIdTag/>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/jsp-id.jspx
similarity index 67%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/jsp-id.jspx
index f25ba54..e677085 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/jsp-id.jspx
@@ -1,23 +1,23 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root
+ xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"
+ xmlns:bugs="http://tomcat.apache.org/bugs">
+<bugs:JspIdTag/>
+<bugs:JspIdTag/>
+</jsp:root>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/plugin-01.jspx b/test/webapp/jsp/generator/plugin-01.jspx
new file mode 100644
index 0000000..ab8af3e
--- /dev/null
+++ b/test/webapp/jsp/generator/plugin-01.jspx
@@ -0,0 +1,54 @@
+<?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
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/scriptingvariables-01.jsp
similarity index 59%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/scriptingvariables-01.jsp
index f25ba54..792236a 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/scriptingvariables-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,12 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%
+ String variable03a = null;
+ String variable03b = null;
+%>
+<bugs:TesterScriptingTag attribute02="variable02a" attribute03="variable03a">
+ <bugs:TesterScriptingTag attribute02="variable02b" attribute03="variable03b">
+ </bugs:TesterScriptingTag>
+</bugs:TesterScriptingTag>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/scriptingvariables-02.jsp
similarity index 63%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/scriptingvariables-02.jsp
index f25ba54..909cdb4 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/scriptingvariables-02.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<%
+ String variable03 = null;
+%>
+<bugs:TesterScriptingTagB attribute02="variable02a">
+ <bugs:TesterScriptingTagB attribute02="variable02b">
+ </bugs:TesterScriptingTagB>
+</bugs:TesterScriptingTagB>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/setproperty-01.jsp b/test/webapp/jsp/generator/setproperty-01.jsp
new file mode 100644
index 0000000..222552e
--- /dev/null
+++ b/test/webapp/jsp/generator/setproperty-01.jsp
@@ -0,0 +1,32 @@
+<%--
+ 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:useBean id="bean" class="org.apache.jasper.runtime.TesterBean" />
+<html>
+ <head><title>jsp:setProeprty test cases</title></head>
+ <body>
+ <jsp:setProperty name="bean" property="*"/>
+ <jsp:setProperty name="bean" property="objectValue"/>
+ <jsp:setProperty name="bean" property="objectValue" param="foo"/>
+ <jsp:setProperty name="bean" property="intPrimitive" value="<%=1 %>" />
+ <jsp:setProperty name="bean" property="intPrimitive" value="${1+1}" />
+ <jsp:setProperty name="bean" property="intPrimitive">
+ <jsp:attribute name="value">1</jsp:attribute>
+ </jsp:setProperty>
+ <jsp:setProperty name="bean" property="intPrimitive" value="1" />
+ </body>
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/setters-01.jsp
similarity index 74%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/setters-01.jsp
index f25ba54..53bc50d 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/setters-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:setters/>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/single-threaded.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/single-threaded.jsp
index f25ba54..371ec50 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/single-threaded.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,4 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ page isThreadSafe="false" %>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/templatetext-01.jsp b/test/webapp/jsp/generator/templatetext-01.jsp
new file mode 100644
index 0000000..66e486f
--- /dev/null
+++ b/test/webapp/jsp/generator/templatetext-01.jsp
@@ -0,0 +1,283 @@
+<%--
+ 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.
+--%>
+<html>
+<p>Hello${' '}
+<pre>
+World!
+</pre></p>
+<p>
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+ 123456789 123456789 123456789 123456789 123456789 123456789 123456789
+</p>
+<p>${1+1}</p>
+<p>${1+1}</p>
+<p>${1+1}</p>
+</html>
\ No newline at end of file
diff --git a/test/webapp/jsp/generator/templatetext-02.jsp b/test/webapp/jsp/generator/templatetext-02.jsp
new file mode 100644
index 0000000..6545a4e
--- /dev/null
+++ b/test/webapp/jsp/generator/templatetext-02.jsp
@@ -0,0 +1,19 @@
+<%--
+ 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.
+--%>
+<html>
+<p> 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12345678 [...]
+</html>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/try-catch-finally.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/try-catch-finally.jsp
index f25ba54..73ac9d8 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/try-catch-finally.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:TryCatchFinallyTag>
+ <bugs:TryCatchFinallyTag>
+ </bugs:TryCatchFinallyTag>
+</bugs:TryCatchFinallyTag>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-01.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-01.jsp
index f25ba54..b96c2d3 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-01.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" class="does.not.Exist" />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-02.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-02.jsp
index f25ba54..bb9760e 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-02.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" type="does.not.Exist"/>
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-03.jsp
similarity index 51%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-03.jsp
index f25ba54..be51fd3 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-03.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,25 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
+ <jsp:useBean
+ id="bean"
+ class="org.apache.jasper.runtime.TesterBean$Inner"
+ type="org.apache.jasper.runtime.TesterBean.Inner"
+ />
+ <jsp:useBean
+ id="bean2"
+ class="org.apache.jasper.runtime.TesterBean$Inner"
+ scope="request"
+ />
+ <jsp:useBean
+ id="bean3"
+ class="org.apache.jasper.runtime.TesterBean$Inner"
+ scope="session"
+ />
+ <jsp:useBean
+ id="bean4"
+ class="org.apache.jasper.runtime.TesterBean$Inner"
+ scope="application"
+ />
</html>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-04.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-04.jsp
index f25ba54..2a3b086 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-04.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" class="org.apache.jasper.runtime.TesterBean$Inner2" />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-05.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-05.jsp
index f25ba54..127c735 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-05.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" class="sun.awt.image.BadDepthException" />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-06.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-06.jsp
index f25ba54..53b39b7 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-06.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" class="org.apache.jasper.runtime.TesterBean$Inner4" />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-07.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-07.jsp
index f25ba54..b96c2d3 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-07.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean id="bean" class="does.not.Exist" />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/usebean-08.jsp
similarity index 62%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/usebean-08.jsp
index f25ba54..1344ba7 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/usebean-08.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,17 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+ <jsp:useBean
+ id="bean"
+ type="org.apache.jasper.runtime.TesterBean.Inner"
+ >
+ <jsp:attribute name="beanName">bean2</jsp:attribute>
+ </jsp:useBean>
+ <jsp:useBean
+ id="bean3"
+ type="org.apache.jasper.runtime.TesterBean.Inner"
+ beanName="bean4"
+ />
+</html>
+
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/variable-from-attr-nested.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/variable-from-attr-nested.jsp
index f25ba54..72f2828 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/variable-from-attr-nested.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:Bug48701c beanName="now" >
+ <bugs:Bug48701c beanName="now" >
+ </bugs:Bug48701c>
+</bugs:Bug48701c>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/variable-tagfile-from-attr-nested.jsp
similarity index 71%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/variable-tagfile-from-attr-nested.jsp
index f25ba54..adc476a 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/variable-tagfile-from-attr-nested.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:variable-from-attr varName="var" varName2="var2">
+ <tags:variable-from-attr varName="var" varName2="var2">
+ </tags:variable-from-attr>
+</tags:variable-from-attr>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/variable-tagfile-nested.jsp
similarity index 70%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/variable-tagfile-nested.jsp
index f25ba54..7266190 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/variable-tagfile-nested.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,15 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<tags:variable>
+ <tags:variable>
+ </tags:variable>
+</tags:variable>
+<tags:variable>
+ <jsp:body>
+ <p>Text</p>
+ <tags:variable>
+ </tags:variable>
+ </jsp:body>
+</tags:variable>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/variable-tei-nested.jsp
similarity index 67%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/variable-tei-nested.jsp
index f25ba54..6043a54 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/variable-tei-nested.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,12 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<%@ taglib uri="http://tomcat.apache.org/bugs" prefix="bugs" %>
+<bugs:Bug48616b>
+ <bugs:Bug48616b>
+ </bugs:Bug48616b>
+</bugs:Bug48616b>
+<bugs:Bug48616b>
+ <bugs:Bug48616b>
+ </bugs:Bug48616b>
+</bugs:Bug48616b>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/x-powered-by.jsp
similarity index 69%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/x-powered-by.jsp
index f25ba54..f08c640 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/x-powered-by.jsp
@@ -1,12 +1,12 @@
<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+ 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
+ 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,
@@ -14,10 +14,5 @@
See the License for the specific language governing permissions and
limitations under the License.
--%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+<p>This JSP is configured, via a Servlet element in web.xml, to enable the
+ X-Powered-By header</p>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/xml-doctype-01.jspx
similarity index 65%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/xml-doctype-01.jspx
index f25ba54..9fb6f17 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/xml-doctype-01.jspx
@@ -1,23 +1,23 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root
+ xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" >
+ <jsp:output
+ doctype-root-element="foo"
+ doctype-system="http://tomcat.apache.org/foo" />
+</jsp:root>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/xml-doctype-02.jspx
similarity index 63%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/xml-doctype-02.jspx
index f25ba54..eabebf9 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/xml-doctype-02.jspx
@@ -1,23 +1,24 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<jsp:root
+ xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" >
+ <jsp:output
+ doctype-root-element="foo"
+ doctype-public="foo"
+ doctype-system="http://tomcat.apache.org/foo" />
+</jsp:root>
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/xml-prolog-01.jspx
similarity index 68%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/xml-prolog-01.jspx
index f25ba54..38494df 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/xml-prolog-01.jspx
@@ -1,23 +1,22 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<hi>
+ <jsp:output
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ omit-xml-declaration="true" />
+</hi>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/xml-prolog-02.jspx
similarity index 68%
copy from test/webapp/bug5nnnn/bug58444.jsp
copy to test/webapp/jsp/generator/xml-prolog-02.jspx
index f25ba54..a170887 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/xml-prolog-02.jspx
@@ -1,23 +1,22 @@
-<%--
- Licensed to the Apache Software Foundation (ASF) under one or more
+<?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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<hi>
+ <jsp:output
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ omit-xml-declaration="false" />
+</hi>
\ No newline at end of file
diff --git a/test/webapp/bug5nnnn/bug58444.jsp b/test/webapp/jsp/generator/xml-prolog-tag.jspx
similarity index 75%
rename from test/webapp/bug5nnnn/bug58444.jsp
rename to test/webapp/jsp/generator/xml-prolog-tag.jspx
index f25ba54..3febd85 100644
--- a/test/webapp/bug5nnnn/bug58444.jsp
+++ b/test/webapp/jsp/generator/xml-prolog-tag.jspx
@@ -1,4 +1,5 @@
-<%--
+<?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.
@@ -6,18 +7,15 @@
(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
+ 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.
---%>
-<%@ page extends="org.apache.jasper.runtime.TesterHttpJspBase" %>
-<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
-<html>
-<body>
-<tags:echo echo="00-PASS" />
-</body>
-</html>
\ No newline at end of file
+-->
+<hi>
+<tags:jsp-root xmlns:tags="urn:jsptagdir:/WEB-INF/tags" />
+<tags:no-jsp-root xmlns:tags="urn:jsptagdir:/WEB-INF/tags" />
+</hi>
\ 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