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 2019/07/24 14:51:20 UTC

[tomcat] branch 7.0.x updated (5091d7f -> 7bbfa2c)

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

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


    from 5091d7f  Prep for next version
     new dd5cbcf  Rename webapp-3.0 to webapp to align with 8.5.x and ease back-ports
     new 3d96f3b  Align version specific tests with 8.5.x
     new 54c4067  Disable debug logging when running cobertura
     new 0eb525f  Polish. Align i18n with 8.5.x
     new 81b3bf2  Polish. Align with 8.5.x. Spacing, Javadoc. No functional change.
     new 4e88cfc  Back-port performance improvement for setting current thread name
     new 49e01f9  Polish. Align with 8.5.x. Re-order and clean-up. No functional change.
     new 8086f27  Back-port performance optimization for path params
     new aaa63d2  Refactor to reduce duplication
     new 3de9834  Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63578
     new 7bbfa2c  Align with 8.5.x to fix failing test

The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |   4 +-
 build.xml                                          |   8 +-
 .../apache/catalina/connector/CoyoteAdapter.java   | 196 +++++++++++++--------
 .../catalina/connector/LocalStrings.properties     |   4 +-
 .../catalina/connector/LocalStrings_es.properties  |   2 +-
 .../catalina/connector/LocalStrings_fr.properties  |  10 ++
 .../catalina/connector/LocalStrings_ja.properties  |  10 ++
 .../LocalStrings_ru.properties                     |   4 +-
 .../coyote/http11/AbstractHttp11Processor.java     |  94 +++++-----
 .../apache/coyote/http11/LocalStrings.properties   |   4 +-
 .../manager.xml => res/cobertura/logback.xml       |  19 +-
 res/rat/rat-excludes.txt                           |  16 +-
 test/javax/el/TestCompositeELResolver.java         |   2 +-
 test/javax/servlet/jsp/TestPageContext.java        |   2 +-
 .../servlet/resources/TestSchemaValidation.java    |   2 +-
 .../connector/TestCoyoteAdapterRequestFuzzing.java |  65 +++++--
 .../catalina/core/TestApplicationContext.java      |   8 +-
 .../catalina/core/TestDefaultInstanceManager.java  |   2 +-
 .../apache/catalina/core/TestStandardContext.java  |   8 +-
 .../core/TestStandardContextResources.java         |  10 +-
 .../apache/catalina/core/TestStandardWrapper.java  |   8 +-
 .../catalina/core/TestSwallowAbortedUploads.java   |  47 +++--
 .../catalina/ha/context/TestReplicatedContext.java |   2 +-
 .../apache/catalina/loader/TestVirtualContext.java |  36 ++--
 .../catalina/loader/TestVirtualWebappLoader.java   |   4 +-
 .../catalina/loader/TestWebappClassLoader.java     |   4 +-
 .../catalina/servlets/TestDefaultServlet.java      |   4 +-
 .../apache/catalina/startup/SimpleHttpClient.java  |  12 +-
 .../apache/catalina/startup/TestContextConfig.java |  14 +-
 test/org/apache/catalina/startup/TestTomcat.java   |   2 +-
 .../catalina/startup/TestWebappServiceLoader.java  |   2 +-
 .../coyote/ajp/TestAbstractAjpProcessor.java       |   2 +-
 .../coyote/http11/TestAbstractHttp11Processor.java |  14 +-
 test/org/apache/el/TestELInJsp.java                |  36 ++--
 test/org/apache/jasper/compiler/TestCompiler.java  |  26 +--
 .../jasper/compiler/TestELInterpreterFactory.java  |   2 +-
 test/org/apache/jasper/compiler/TestGenerator.java |  16 +-
 .../jasper/compiler/TestJspDocumentParser.java     |   8 +-
 test/org/apache/jasper/compiler/TestJspReader.java |   2 +-
 .../jasper/compiler/TestNodeIntegration.java       |   2 +-
 test/org/apache/jasper/compiler/TestParser.java    |  32 ++--
 .../compiler/TestParserNoStrictWhitespace.java     |  10 +-
 .../jasper/compiler/TestScriptingVariabler.java    |   6 +-
 .../jasper/compiler/TestTagPluginManager.java      |   2 +-
 test/org/apache/jasper/compiler/TestValidator.java |  27 ++-
 .../jasper/runtime/TestCustomHttpJspPage.java      |   2 +-
 .../jasper/runtime/TestJspContextWrapper.java      |   2 +-
 .../apache/jasper/runtime/TestJspWriterImpl.java   |   4 +-
 .../apache/jasper/runtime/TestPageContextImpl.java |   6 +-
 test/org/apache/naming/TestEnvEntry.java           |   4 +-
 .../naming/resources/TestFileDirContext.java       |   2 +-
 .../apache/naming/resources/TestNamingContext.java |   2 +-
 .../apache/naming/resources/TestWarDirContext.java |   6 +-
 ...sterThreadScopedHolder.java => TesterData.java} |  25 +--
 .../tomcat/util/http/mapper/TestMapperWebapps.java |   6 +-
 test/webapp-2.2/WEB-INF/web.xml                    |   4 +-
 test/webapp-2.3/WEB-INF/web.xml                    |   4 +-
 test/webapp-2.4/WEB-INF/web.xml                    |   4 +-
 test/webapp-2.5/WEB-INF/web.xml                    |   4 +-
 test/webapp-3.0/WEB-INF/web.xml                    | 119 +------------
 .../WEB-INF/lib/resources.jar                      | Bin
 .../WEB-INF/web.xml                                |   4 +-
 .../'singlequote2.jsp                              |   0
 .../WEB-INF/classes/#Bug51584.txt                  |   0
 .../classes/META-INF/resources/resourceG.jsp       |   0
 .../WEB-INF/lib/resources.jar                      | Bin
 .../WEB-INF/lib/resources2.jar                     | Bin
 .../WEB-INF/web.xml                                |   4 +-
 .../bug51396.jsp                                   |   0
 .../folder/resourceC.jsp                           |   0
 .../folder/resourceE.jsp                           |   0
 .../jndi.jsp                                       |   0
 .../resourceA.jsp                                  |   0
 .../warDirContext.jsp                              |   0
 .../WEB-INF/web.xml                                |   4 +-
 .../WEB-INF/web.xml                                |   4 +-
 .../protected.jsp                                  |   0
 .../unprotected.jsp                                |   0
 .../target/classes/META-INF/C.tld                  |   0
 .../META-INF/resources/rsrc/resourceE.properties   |   0
 .../target/classes/rsrc/resourceC.properties       |   0
 .../src/main/lib/META-INF/B.tld                    |   0
 .../src/main/lib/rsrc/resourceD.properties         |   0
 .../src/main/misc/resourceI.properties             |   0
 .../src/main/webapp/WEB-INF/A.tld                  |   0
 .../WEB-INF/classes/rsrc/resourceA.properties      |   0
 .../src/main/webapp/WEB-INF/lib/rsrc.jar           | Bin
 .../src/main/webapp/WEB-INF/web.xml                |   4 +-
 .../main/webapp/classpathGetResourceAsStream.jsp   |   0
 .../classpathGetResourceUrlThenGetStream.jsp       |   0
 .../src/main/webapp/classpathGetResources.jsp      |   0
 .../src/main/webapp/contextGetRealPath.jsp         |   0
 .../src/main/webapp/contextGetResource.jsp         |   0
 .../src/main/webapp/contextGetResourcePaths.jsp    |   0
 .../src/main/webapp/rsrc/resourceF.properties      |   0
 .../src/main/webapp/testTlds.jsp                   |   0
 .../src/main/webapp2/WEB-INF/D.tld                 |   0
 .../WEB-INF/classes/rsrc/resourceG.properties      |   0
 .../WEB-INF/classes/rsrc2/resourceK.properties     |   0
 .../src/main/webapp2/rsrc/resourceF.properties     |   2 +-
 .../src/main/webapp2/rsrc/resourceH.properties     |   0
 .../src/main/webapp2/rsrc2/resourceJ.properties    |   0
 .../target/classes/rsrc/resourceB.properties       |   0
 test/{webapp-3.0 => webapp}/404.html               |   0
 test/{webapp-3.0 => webapp}/WEB-INF/bug53545.tld   |   0
 test/{webapp-3.0 => webapp}/WEB-INF/bugs.tld       |   0
 .../WEB-INF/classes/META-INF/bug55807.tld          |   0
 .../META-INF/org.apache.jasper/tagPlugins.xml      |   0
 .../classes/org/apache/tomcat/Bug58096.class       | Bin
 .../classes/org/apache/tomcat/Bug58096.java        |   0
 .../WEB-INF/jsp/bug53574.jsp                       |   0
 test/{webapp-3.0 => webapp}/WEB-INF/listener.tld   |   0
 .../WEB-INF/tags/bug42390.tag                      |   0
 .../WEB-INF/tags/bug48668.tagx                     |   0
 .../WEB-INF/tags/bug49297.tag                      |   0
 .../WEB-INF/tags/bug55198.tagx                     |   0
 .../WEB-INF/tags/bug56265.tagx                     |   0
 .../WEB-INF/tags/bug58178.tag                      |   0
 .../WEB-INF/tags/echo-deferred.tag                 |   0
 .../WEB-INF/tags/echo-double.tag                   |   0
 .../WEB-INF/tags/echo-long.tag                     |   0
 .../WEB-INF/tags/echo-noel.tag                     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags/echo.tag  |   0
 .../WEB-INF/tags/implicit.tld                      |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags11.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags12.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags20.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags21.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/test.tld       |   0
 test/{webapp-3.0 => webapp}/WEB-INF/web.xml        |   0
 test/{webapp-3.0 => webapp}/annotations.jsp        |   0
 test/{webapp-3.0 => webapp}/bug36923.jsp           |   0
 test/{webapp-3.0 => webapp}/bug42390.jsp           |   0
 test/{webapp-3.0 => webapp}/bug42565.jsp           |   0
 test/{webapp-3.0 => webapp}/bug44994.jsp           |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015a.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015b.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015c.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45427.jsp  |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451.jspf |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451a.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451b.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451c.jsp |   0
 .../{webapp-3.0 => webapp}/bug45nnn/bug45451d.jspx |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451e.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45511.jsp  |   0
 test/{webapp-3.0 => webapp}/bug46381.jsp           |   0
 test/{webapp-3.0 => webapp}/bug46596.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47331.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47413.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47977.jspx          |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48112.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48616.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48616b.jsp |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48627.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48668a.jsp |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48668b.jsp |   0
 .../bug48nnn/bug48701-TVI-NFA.jsp                  |   0
 .../bug48nnn/bug48701-TVI-NG.jsp                   |   0
 .../bug48nnn/bug48701-UseBean.jsp                  |   0
 .../bug48nnn/bug48701-VI.jsp                       |   0
 .../bug48nnn/bug48701-fail.jsp                     |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48827.jspx |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49196.jsp  |   0
 .../bug49nnn/bug49297DuplicateAttr.jsp             |   0
 .../bug49nnn/bug49297MultipleImport1.jsp           |   0
 .../bug49nnn/bug49297MultipleImport2.jsp           |   0
 .../bug49nnn/bug49297MultiplePageEncoding1.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding2.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding3.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding4.jsp     |   0
 .../bug49nnn/bug49297NoSpace.jsp                   |   0
 .../bug49nnn/bug49297Tag.jsp                       |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49555.jsp  |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49726a.jsp |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49726b.jsp |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49799.jsp  |   0
 test/{webapp-3.0 => webapp}/bug53257/foo bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo bar.txt   |   0
 .../bug53257/foo bar/foobar.jsp                    |   0
 .../bug53257/foo bar/foobar.txt                    |   0
 test/{webapp-3.0 => webapp}/bug53257/foo#bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo#bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo%bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo%bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo&bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo&bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo+bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo+bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo;bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo;bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/index.jsp     |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug50408.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug51544.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug52335.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53465.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53467].jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.html |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53986.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug54241a.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug54241b.jsp |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54801a.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54801b.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54821a.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54821b.jspx |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55198.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55642a.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55642b.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55807.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56029.jspx |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56147.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56265.jsp  |   0
 .../bug5nnnn/bug56334and56561.jspx                 |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56529.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56581.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56612.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.txt  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58096.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58178.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58444.jsp  |   0
 test/{webapp-3.0 => webapp}/bug6nnnn/bug60431.jsp  |   0
 test/{webapp-3.0 => webapp}/echo-params.jsp        |   0
 test/{webapp-3.0 => webapp}/el-method.jsp          |   0
 .../el-misc-no-quote-attribute-el.jsp              |   0
 .../el-misc-with-quote-attribute-el.jsp            |   0
 test/{webapp-3.0 => webapp}/index.html             |   0
 test/{webapp-3.0 => webapp}/jsp/pageContext1.jsp   |   0
 test/{webapp-3.0 => webapp}/jsp/pageContext2.jsp   |   0
 test/{webapp-3.0 => webapp}/script-expr.jsp        |   0
 .../{webapp-3.0 => webapp}/welcome-files/index.jsp |   0
 .../welcome-files/sub/.gitignore                   |   0
 webapps/docs/changelog.xml                         |   8 +
 234 files changed, 529 insertions(+), 485 deletions(-)
 copy java/org/apache/catalina/{servlets => connector}/LocalStrings_ru.properties (73%)
 copy webapps/host-manager/manager.xml => res/cobertura/logback.xml (66%)
 copy test/org/apache/tomcat/unittest/{TesterThreadScopedHolder.java => TesterData.java} (64%)
 rename test/{webapp-3.0-fragments-empty-absolute-ordering => webapp-fragments-empty-absolute-ordering}/WEB-INF/lib/resources.jar (100%)
 rename test/{webapp-3.0-fragments-empty-absolute-ordering => webapp-fragments-empty-absolute-ordering}/WEB-INF/web.xml (95%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/'singlequote2.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/WEB-INF/classes/#Bug51584.txt (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/WEB-INF/classes/META-INF/resources/resourceG.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/WEB-INF/lib/resources.jar (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/WEB-INF/lib/resources2.jar (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/WEB-INF/web.xml (99%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/bug51396.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/folder/resourceC.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/folder/resourceE.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/jndi.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/resourceA.jsp (100%)
 rename test/{webapp-3.0-fragments => webapp-fragments}/warDirContext.jsp (100%)
 rename test/{webapp-3.0-servletsecurity => webapp-servletsecurity}/WEB-INF/web.xml (97%)
 rename test/{webapp-3.0-servletsecurity2 => webapp-servletsecurity2}/WEB-INF/web.xml (96%)
 rename test/{webapp-3.0-servletsecurity2 => webapp-servletsecurity2}/protected.jsp (100%)
 rename test/{webapp-3.0-servletsecurity2 => webapp-servletsecurity2}/unprotected.jsp (100%)
 rename test/{webapp-3.0-virtual-library => webapp-virtual-library}/target/classes/META-INF/C.tld (100%)
 rename test/{webapp-3.0-virtual-library => webapp-virtual-library}/target/classes/META-INF/resources/rsrc/resourceE.properties (100%)
 rename test/{webapp-3.0-virtual-library => webapp-virtual-library}/target/classes/rsrc/resourceC.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/lib/META-INF/B.tld (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/lib/rsrc/resourceD.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/misc/resourceI.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/WEB-INF/A.tld (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/WEB-INF/classes/rsrc/resourceA.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/WEB-INF/lib/rsrc.jar (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/WEB-INF/web.xml (95%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/classpathGetResourceAsStream.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/classpathGetResourceUrlThenGetStream.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/classpathGetResources.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/contextGetRealPath.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/contextGetResource.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/contextGetResourcePaths.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/rsrc/resourceF.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp/testTlds.jsp (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/WEB-INF/D.tld (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/WEB-INF/classes/rsrc/resourceG.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/WEB-INF/classes/rsrc2/resourceK.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/rsrc/resourceF.properties (92%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/rsrc/resourceH.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/src/main/webapp2/rsrc2/resourceJ.properties (100%)
 rename test/{webapp-3.0-virtual-webapp => webapp-virtual-webapp}/target/classes/rsrc/resourceB.properties (100%)
 rename test/{webapp-3.0 => webapp}/404.html (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/bug53545.tld (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/bugs.tld (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/classes/META-INF/bug55807.tld (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/classes/META-INF/org.apache.jasper/tagPlugins.xml (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/classes/org/apache/tomcat/Bug58096.class (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/classes/org/apache/tomcat/Bug58096.java (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/jsp/bug53574.jsp (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/listener.tld (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug42390.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug48668.tagx (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug49297.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug55198.tagx (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug56265.tagx (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/bug58178.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/echo-deferred.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/echo-double.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/echo-long.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/echo-noel.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/echo.tag (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/tags/implicit.tld (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/tags11.tld (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/tags12.tld (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/tags20.tld (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/tags21.tld (100%)
 rename test/{webapp-3.0 => webapp}/WEB-INF/test.tld (100%)
 copy test/{webapp-3.0 => webapp}/WEB-INF/web.xml (100%)
 rename test/{webapp-3.0 => webapp}/annotations.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug36923.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug42390.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug42565.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug44994.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45015a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45015b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45015c.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45427.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451.jspf (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451c.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451d.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45451e.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug45nnn/bug45511.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug46381.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug46596.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug47331.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug47413.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug47977.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48112.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48616.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48616b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48627.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48668a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48668b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48701-TVI-NFA.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48701-TVI-NG.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48701-UseBean.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48701-VI.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48701-fail.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug48nnn/bug48827.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49196.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297DuplicateAttr.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultipleImport1.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultipleImport2.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultiplePageEncoding1.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultiplePageEncoding2.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultiplePageEncoding3.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297MultiplePageEncoding4.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297NoSpace.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49297Tag.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49555.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49726a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49726b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug49nnn/bug49799.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo bar/foobar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo bar/foobar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo#bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo#bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo%bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo%bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo&bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo&bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo+bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo+bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo;bar.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/foo;bar.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug53257/index.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug50408.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug51544.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug52335.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug53465.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug53467].jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.html (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug53986.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54241a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54241b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54801a.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54801b.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54821a.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug54821b.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug55198.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug55642a.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug55642b.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug55807.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56029.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56147.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56265.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56334and56561.jspx (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56529.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56581.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug56612.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.txt (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug58096.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug58178.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug5nnnn/bug58444.jsp (100%)
 rename test/{webapp-3.0 => webapp}/bug6nnnn/bug60431.jsp (100%)
 rename test/{webapp-3.0 => webapp}/echo-params.jsp (100%)
 rename test/{webapp-3.0 => webapp}/el-method.jsp (100%)
 rename test/{webapp-3.0 => webapp}/el-misc-no-quote-attribute-el.jsp (100%)
 rename test/{webapp-3.0 => webapp}/el-misc-with-quote-attribute-el.jsp (100%)
 rename test/{webapp-3.0 => webapp}/index.html (100%)
 rename test/{webapp-3.0 => webapp}/jsp/pageContext1.jsp (100%)
 rename test/{webapp-3.0 => webapp}/jsp/pageContext2.jsp (100%)
 rename test/{webapp-3.0 => webapp}/script-expr.jsp (100%)
 rename test/{webapp-3.0 => webapp}/welcome-files/index.jsp (100%)
 rename test/{webapp-3.0 => webapp}/welcome-files/sub/.gitignore (100%)


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


[tomcat] 01/11: Rename webapp-3.0 to webapp to align with 8.5.x and ease back-ports

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit dd5cbcf166cb6a65124234df4e5fe7ae8e76b7f0
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 23 22:18:47 2019 +0100

    Rename webapp-3.0 to webapp to align with 8.5.x and ease back-ports
---
 .gitignore                                         |   4 +--
 build.xml                                          |   8 ++---
 res/rat/rat-excludes.txt                           |  16 ++++-----
 test/javax/el/TestCompositeELResolver.java         |   2 +-
 test/javax/servlet/jsp/TestPageContext.java        |   2 +-
 .../servlet/resources/TestSchemaValidation.java    |   2 +-
 .../connector/TestCoyoteAdapterRequestFuzzing.java |   2 +-
 .../catalina/core/TestApplicationContext.java      |   8 ++---
 .../catalina/core/TestDefaultInstanceManager.java  |   2 +-
 .../apache/catalina/core/TestStandardContext.java  |   8 ++---
 .../core/TestStandardContextResources.java         |  10 +++---
 .../apache/catalina/core/TestStandardWrapper.java  |   8 ++---
 .../catalina/ha/context/TestReplicatedContext.java |   2 +-
 .../apache/catalina/loader/TestVirtualContext.java |  36 ++++++++++-----------
 .../catalina/loader/TestVirtualWebappLoader.java   |   4 +--
 .../catalina/loader/TestWebappClassLoader.java     |   4 +--
 .../catalina/servlets/TestDefaultServlet.java      |   4 +--
 .../apache/catalina/startup/TestContextConfig.java |  14 ++++----
 test/org/apache/catalina/startup/TestTomcat.java   |   2 +-
 .../catalina/startup/TestWebappServiceLoader.java  |   2 +-
 .../coyote/ajp/TestAbstractAjpProcessor.java       |   2 +-
 .../coyote/http11/TestAbstractHttp11Processor.java |  14 ++++----
 test/org/apache/el/TestELInJsp.java                |  36 ++++++++++-----------
 test/org/apache/jasper/compiler/TestCompiler.java  |  26 +++++++--------
 .../jasper/compiler/TestELInterpreterFactory.java  |   2 +-
 test/org/apache/jasper/compiler/TestGenerator.java |  16 ++++-----
 test/org/apache/jasper/compiler/TestJspConfig.java |   2 +-
 .../jasper/compiler/TestJspDocumentParser.java     |   8 ++---
 test/org/apache/jasper/compiler/TestJspReader.java |   2 +-
 .../jasper/compiler/TestNodeIntegration.java       |   2 +-
 test/org/apache/jasper/compiler/TestParser.java    |  32 +++++++++---------
 .../compiler/TestParserNoStrictWhitespace.java     |  10 +++---
 .../jasper/compiler/TestScriptingVariabler.java    |   6 ++--
 .../jasper/compiler/TestTagPluginManager.java      |   2 +-
 test/org/apache/jasper/compiler/TestValidator.java |   4 +--
 .../jasper/runtime/TestCustomHttpJspPage.java      |   2 +-
 .../jasper/runtime/TestJspContextWrapper.java      |   2 +-
 .../apache/jasper/runtime/TestJspWriterImpl.java   |   4 +--
 .../apache/jasper/runtime/TestPageContextImpl.java |   6 ++--
 test/org/apache/naming/TestEnvEntry.java           |   4 +--
 .../naming/resources/TestFileDirContext.java       |   2 +-
 .../apache/naming/resources/TestNamingContext.java |   2 +-
 .../apache/naming/resources/TestWarDirContext.java |   6 ++--
 .../tomcat/util/http/mapper/TestMapperWebapps.java |   6 ++--
 .../WEB-INF/lib/resources.jar                      | Bin
 .../WEB-INF/web.xml                                |   0
 .../'singlequote2.jsp                              |   0
 .../WEB-INF/classes/#Bug51584.txt                  |   0
 .../classes/META-INF/resources/resourceG.jsp       |   0
 .../WEB-INF/lib/resources.jar                      | Bin
 .../WEB-INF/lib/resources2.jar                     | Bin
 .../WEB-INF/web.xml                                |   0
 .../bug51396.jsp                                   |   0
 .../folder/resourceC.jsp                           |   0
 .../folder/resourceE.jsp                           |   0
 .../jndi.jsp                                       |   0
 .../resourceA.jsp                                  |   0
 .../warDirContext.jsp                              |   0
 .../WEB-INF/web.xml                                |   0
 .../WEB-INF/web.xml                                |   0
 .../protected.jsp                                  |   0
 .../unprotected.jsp                                |   0
 .../target/classes/META-INF/C.tld                  |   0
 .../META-INF/resources/rsrc/resourceE.properties   |   0
 .../target/classes/rsrc/resourceC.properties       |   0
 .../src/main/lib/META-INF/B.tld                    |   0
 .../src/main/lib/rsrc/resourceD.properties         |   0
 .../src/main/misc/resourceI.properties             |   0
 .../src/main/webapp/WEB-INF/A.tld                  |   0
 .../WEB-INF/classes/rsrc/resourceA.properties      |   0
 .../src/main/webapp/WEB-INF/lib/rsrc.jar           | Bin
 .../src/main/webapp/WEB-INF/web.xml                |   0
 .../main/webapp/classpathGetResourceAsStream.jsp   |   0
 .../classpathGetResourceUrlThenGetStream.jsp       |   0
 .../src/main/webapp/classpathGetResources.jsp      |   0
 .../src/main/webapp/contextGetRealPath.jsp         |   0
 .../src/main/webapp/contextGetResource.jsp         |   0
 .../src/main/webapp/contextGetResourcePaths.jsp    |   0
 .../src/main/webapp/rsrc/resourceF.properties      |   0
 .../src/main/webapp/testTlds.jsp                   |   0
 .../src/main/webapp2/WEB-INF/D.tld                 |   0
 .../WEB-INF/classes/rsrc/resourceG.properties      |   0
 .../WEB-INF/classes/rsrc2/resourceK.properties     |   0
 .../src/main/webapp2/rsrc/resourceF.properties     |   2 +-
 .../src/main/webapp2/rsrc/resourceH.properties     |   0
 .../src/main/webapp2/rsrc2/resourceJ.properties    |   0
 .../target/classes/rsrc/resourceB.properties       |   0
 test/{webapp-3.0 => webapp}/404.html               |   0
 test/{webapp-3.0 => webapp}/WEB-INF/bug53545.tld   |   0
 test/{webapp-3.0 => webapp}/WEB-INF/bugs.tld       |   0
 .../WEB-INF/classes/META-INF/bug55807.tld          |   0
 .../META-INF/org.apache.jasper/tagPlugins.xml      |   0
 .../classes/org/apache/tomcat/Bug58096.class       | Bin
 .../classes/org/apache/tomcat/Bug58096.java        |   0
 .../WEB-INF/jsp/bug53574.jsp                       |   0
 test/{webapp-3.0 => webapp}/WEB-INF/listener.tld   |   0
 .../WEB-INF/tags/bug42390.tag                      |   0
 .../WEB-INF/tags/bug48668.tagx                     |   0
 .../WEB-INF/tags/bug49297.tag                      |   0
 .../WEB-INF/tags/bug55198.tagx                     |   0
 .../WEB-INF/tags/bug56265.tagx                     |   0
 .../WEB-INF/tags/bug58178.tag                      |   0
 .../WEB-INF/tags/echo-deferred.tag                 |   0
 .../WEB-INF/tags/echo-double.tag                   |   0
 .../WEB-INF/tags/echo-long.tag                     |   0
 .../WEB-INF/tags/echo-noel.tag                     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags/echo.tag  |   0
 .../WEB-INF/tags/implicit.tld                      |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags11.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags12.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags20.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/tags21.tld     |   0
 test/{webapp-3.0 => webapp}/WEB-INF/test.tld       |   0
 test/{webapp-3.0 => webapp}/WEB-INF/web.xml        |   0
 test/{webapp-3.0 => webapp}/annotations.jsp        |   0
 test/{webapp-3.0 => webapp}/bug36923.jsp           |   0
 test/{webapp-3.0 => webapp}/bug42390.jsp           |   0
 test/{webapp-3.0 => webapp}/bug42565.jsp           |   0
 test/{webapp-3.0 => webapp}/bug44994.jsp           |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015a.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015b.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45015c.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45427.jsp  |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451.jspf |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451a.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451b.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451c.jsp |   0
 .../{webapp-3.0 => webapp}/bug45nnn/bug45451d.jspx |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45451e.jsp |   0
 test/{webapp-3.0 => webapp}/bug45nnn/bug45511.jsp  |   0
 test/{webapp-3.0 => webapp}/bug46381.jsp           |   0
 test/{webapp-3.0 => webapp}/bug46596.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47331.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47413.jsp           |   0
 test/{webapp-3.0 => webapp}/bug47977.jspx          |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48112.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48616.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48616b.jsp |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48627.jsp  |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48668a.jsp |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48668b.jsp |   0
 .../bug48nnn/bug48701-TVI-NFA.jsp                  |   0
 .../bug48nnn/bug48701-TVI-NG.jsp                   |   0
 .../bug48nnn/bug48701-UseBean.jsp                  |   0
 .../bug48nnn/bug48701-VI.jsp                       |   0
 .../bug48nnn/bug48701-fail.jsp                     |   0
 test/{webapp-3.0 => webapp}/bug48nnn/bug48827.jspx |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49196.jsp  |   0
 .../bug49nnn/bug49297DuplicateAttr.jsp             |   0
 .../bug49nnn/bug49297MultipleImport1.jsp           |   0
 .../bug49nnn/bug49297MultipleImport2.jsp           |   0
 .../bug49nnn/bug49297MultiplePageEncoding1.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding2.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding3.jsp     |   0
 .../bug49nnn/bug49297MultiplePageEncoding4.jsp     |   0
 .../bug49nnn/bug49297NoSpace.jsp                   |   0
 .../bug49nnn/bug49297Tag.jsp                       |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49555.jsp  |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49726a.jsp |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49726b.jsp |   0
 test/{webapp-3.0 => webapp}/bug49nnn/bug49799.jsp  |   0
 test/{webapp-3.0 => webapp}/bug53257/foo bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo bar.txt   |   0
 .../bug53257/foo bar/foobar.jsp                    |   0
 .../bug53257/foo bar/foobar.txt                    |   0
 test/{webapp-3.0 => webapp}/bug53257/foo#bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo#bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo%bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo%bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo&bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo&bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo+bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo+bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo;bar.jsp   |   0
 test/{webapp-3.0 => webapp}/bug53257/foo;bar.txt   |   0
 test/{webapp-3.0 => webapp}/bug53257/index.jsp     |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug50408.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug51544.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug52335.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53465.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53467].jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.html |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53545.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug53986.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug54241a.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug54241b.jsp |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54801a.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54801b.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54821a.jspx |   0
 .../{webapp-3.0 => webapp}/bug5nnnn/bug54821b.jspx |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55198.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55642a.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55642b.jsp |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug55807.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56029.jspx |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56147.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56265.jsp  |   0
 .../bug5nnnn/bug56334and56561.jspx                 |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56529.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56581.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug56612.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug57601.txt  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58096.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58178.jsp  |   0
 test/{webapp-3.0 => webapp}/bug5nnnn/bug58444.jsp  |   0
 test/{webapp-3.0 => webapp}/bug6nnnn/bug60431.jsp  |   0
 test/{webapp-3.0 => webapp}/echo-params.jsp        |   0
 test/{webapp-3.0 => webapp}/el-as-literal.jsp      |   0
 test/{webapp-3.0 => webapp}/el-method.jsp          |   0
 .../el-misc-no-quote-attribute-el.jsp              |   0
 .../el-misc-with-quote-attribute-el.jsp            |   0
 test/{webapp-3.0 => webapp}/index.html             |   0
 test/{webapp-3.0 => webapp}/jsp/pageContext1.jsp   |   0
 test/{webapp-3.0 => webapp}/jsp/pageContext2.jsp   |   0
 test/{webapp-3.0 => webapp}/script-expr.jsp        |   0
 test/{webapp-3.0 => webapp}/tld-versions.jsp       |   0
 .../{webapp-3.0 => webapp}/welcome-files/index.jsp |   0
 .../welcome-files/sub/.gitignore                   |   0
 219 files changed, 170 insertions(+), 170 deletions(-)

diff --git a/.gitignore b/.gitignore
index d4d5202..69822ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,8 +17,8 @@
 logs
 nbproject
 output
-# Next line commented out, because test/webapp-3.0-virtual-library and
-# test/webapp-3.0-virtual-webapp use it:
+# Next line commented out, because test/webapp-virtual-library and
+# test/webapp-virtual-webapp use it:
 # target
 work
 build.properties
diff --git a/build.xml b/build.xml
index 1e40448..7853fb9 100644
--- a/build.xml
+++ b/build.xml
@@ -570,8 +570,8 @@
         <exclude name="**/org/apache/tomcat/dbcp/**"/>
         <exclude name="**/tomcat-deps/**"/>
         <!-- Exclude simple test files -->
-        <exclude name="test/webapp-3.0/bug53257/**/*.txt"/>
-        <exclude name="test/webapp-3.0-fragments/WEB-INF/classes/*.txt"/>
+        <exclude name="test/webapp/bug53257/**/*.txt"/>
+        <exclude name="test/webapp-fragments/WEB-INF/classes/*.txt"/>
         <!-- Exclude developer specific local files -->
         <exclude name="build.properties" />
         <exclude name="res/maven/mvn.properties" />
@@ -2172,8 +2172,8 @@ Apache Tomcat ${version} native binaries for Win64 AMD64/EMT64 platform.
             <filename name="**/.project"/>
             <filename name="**/output/**"/>
             <!-- Commented out, because
-                 test/webapp-3.0-virtual-library and
-                 test/webapp-3.0-virtual-webapp use it:
+                 test/webapp-virtual-library and
+                 test/webapp-virtual-webapp use it:
             <filename name="**/target/**"/>
             -->
             <filename name="**/build.properties"/>
diff --git a/res/rat/rat-excludes.txt b/res/rat/rat-excludes.txt
index 250a20f..163fac3 100644
--- a/res/rat/rat-excludes.txt
+++ b/res/rat/rat-excludes.txt
@@ -69,14 +69,14 @@ output/dist/src/test/org/apache/coyote/http11/filters/bug52121-part2
 test/org/apache/coyote/http11/filters/bug52121-part1
 test/org/apache/coyote/http11/filters/bug52121-part2
 
-output/dist/src/test/webapp-3.0/404.html
-output/dist/src/test/webapp-3.0/bug53257/*.txt
-output/dist/src/test/webapp-3.0/bug53257/foo bar/foobar.txt
-output/dist/src/test/webapp-3.0-fragments/WEB-INF/classes/*.txt
-test/webapp-3.0/404.html
-test/webapp-3.0/bug53257/*.txt
-test/webapp-3.0/bug53257/foo bar/foobar.txt
-test/webapp-3.0-fragments/WEB-INF/classes/*.txt
+output/dist/src/test/webapp/404.html
+output/dist/src/test/webapp/bug53257/*.txt
+output/dist/src/test/webapp/bug53257/foo bar/foobar.txt
+output/dist/src/test/webapp-fragments/WEB-INF/classes/*.txt
+test/webapp/404.html
+test/webapp/bug53257/*.txt
+test/webapp/bug53257/foo bar/foobar.txt
+test/webapp-fragments/WEB-INF/classes/*.txt
 
 build.properties
 
diff --git a/test/javax/el/TestCompositeELResolver.java b/test/javax/el/TestCompositeELResolver.java
index a7e38ca..cdd1d20 100644
--- a/test/javax/el/TestCompositeELResolver.java
+++ b/test/javax/el/TestCompositeELResolver.java
@@ -34,7 +34,7 @@ public class TestCompositeELResolver extends TomcatBaseTest {
     public void testBug50408() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir =  new File("test/webapp-3.0");
+        File appDir =  new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
                 "/test", appDir.getAbsolutePath());
diff --git a/test/javax/servlet/jsp/TestPageContext.java b/test/javax/servlet/jsp/TestPageContext.java
index 0e280f9..7b15c91 100644
--- a/test/javax/servlet/jsp/TestPageContext.java
+++ b/test/javax/servlet/jsp/TestPageContext.java
@@ -32,7 +32,7 @@ public class TestPageContext extends TomcatBaseTest {
     public void testBug49196() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/javax/servlet/resources/TestSchemaValidation.java b/test/javax/servlet/resources/TestSchemaValidation.java
index cbfc42d..c7710fc 100644
--- a/test/javax/servlet/resources/TestSchemaValidation.java
+++ b/test/javax/servlet/resources/TestSchemaValidation.java
@@ -96,7 +96,7 @@ public class TestSchemaValidation {
         digester.setErrorHandler(handler);
         digester.push(new WebXml());
         WebXml desc = (WebXml) digester.parse(
-                new File("test/webapp-3.0/WEB-INF/web.xml"));
+                new File("test/webapp/WEB-INF/web.xml"));
         Assert.assertEquals("3.0", desc.getVersion());
         Assert.assertEquals(0, handler.getErrors().size());
         Assert.assertEquals(0, handler.getWarnings().size());
diff --git a/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java b/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
index 0c6f520..453e04a 100644
--- a/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
+++ b/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
@@ -65,7 +65,7 @@ public class TestCoyoteAdapterRequestFuzzing extends TomcatBaseTest {
     public void doTest() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         Context ctxt = tomcat.addContext("", appDir.getAbsolutePath());
         Tomcat.addServlet(ctxt, "default", DefaultServlet.class.getName());
         ctxt.addServletMapping("/", "default");
diff --git a/test/org/apache/catalina/core/TestApplicationContext.java b/test/org/apache/catalina/core/TestApplicationContext.java
index 81c9c9d..09bbde0 100644
--- a/test/org/apache/catalina/core/TestApplicationContext.java
+++ b/test/org/apache/catalina/core/TestApplicationContext.java
@@ -46,7 +46,7 @@ public class TestApplicationContext extends TomcatBaseTest {
     public void testBug53257() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -69,7 +69,7 @@ public class TestApplicationContext extends TomcatBaseTest {
     public void testBug53467() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -112,7 +112,7 @@ public class TestApplicationContext extends TomcatBaseTest {
     public void testGetJspConfigDescriptor() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext standardContext = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
@@ -130,7 +130,7 @@ public class TestApplicationContext extends TomcatBaseTest {
     private ServletContext getServletContext() {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext standardContext = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/catalina/core/TestDefaultInstanceManager.java b/test/org/apache/catalina/core/TestDefaultInstanceManager.java
index 9f76303..980fca1 100644
--- a/test/org/apache/catalina/core/TestDefaultInstanceManager.java
+++ b/test/org/apache/catalina/core/TestDefaultInstanceManager.java
@@ -74,7 +74,7 @@ public class TestDefaultInstanceManager extends TomcatBaseTest {
 
         // Create the context (don't use addWebapp as we want to modify the
         // JSP Servlet settings).
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         StandardContext ctxt = (StandardContext) tomcat.addContext(
                 null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/catalina/core/TestStandardContext.java b/test/org/apache/catalina/core/TestStandardContext.java
index 46a3d39..4d27958 100644
--- a/test/org/apache/catalina/core/TestStandardContext.java
+++ b/test/org/apache/catalina/core/TestStandardContext.java
@@ -190,7 +190,7 @@ public class TestStandardContext extends TomcatBaseTest {
         ((ContainerBase) tomcat.getHost()).setStartChildren(false);
 
         FailingWebappLoader loader = new FailingWebappLoader();
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         Context context = tomcat.addWebapp("", root.getAbsolutePath());
         context.setLoader(loader);
 
@@ -226,7 +226,7 @@ public class TestStandardContext extends TomcatBaseTest {
         ((ContainerBase) tomcat.getHost()).setStartChildren(false);
 
         FailingLifecycleListener listener = new FailingLifecycleListener();
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         Context context = tomcat.addWebapp("", root.getAbsolutePath());
         context.addLifecycleListener(listener);
 
@@ -286,7 +286,7 @@ public class TestStandardContext extends TomcatBaseTest {
         // Set up a container
         Tomcat tomcat = getTomcatInstance();
 
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -790,7 +790,7 @@ public class TestStandardContext extends TomcatBaseTest {
         // Set up a container
         Tomcat tomcat = getTomcatInstance();
 
-        File docBase = new File("test/webapp-3.0");
+        File docBase = new File("test/webapp");
         Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
 
         // Start the context
diff --git a/test/org/apache/catalina/core/TestStandardContextResources.java b/test/org/apache/catalina/core/TestStandardContextResources.java
index 1c3edc1..eab5797 100644
--- a/test/org/apache/catalina/core/TestStandardContextResources.java
+++ b/test/org/apache/catalina/core/TestStandardContextResources.java
@@ -67,7 +67,7 @@ public class TestStandardContextResources extends TomcatBaseTest {
     public void testResources() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         Context ctx = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -105,7 +105,7 @@ public class TestStandardContextResources extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // app dir is relative to server home
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
 
         // Need to cast to be able to set StandardContext specific attribute
         StandardContext ctxt = (StandardContext)
@@ -132,7 +132,7 @@ public class TestStandardContextResources extends TomcatBaseTest {
     public void testResourcesAbsoluteOrdering() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(null, "/test",
                 appDir.getAbsolutePath());
@@ -202,7 +202,7 @@ public class TestStandardContextResources extends TomcatBaseTest {
     public void testResources2() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(null, "/test",
                 appDir.getAbsolutePath());
@@ -231,7 +231,7 @@ public class TestStandardContextResources extends TomcatBaseTest {
     public void testResourceCaching() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/catalina/core/TestStandardWrapper.java b/test/org/apache/catalina/core/TestStandardWrapper.java
index 0da1707..3233929 100644
--- a/test/org/apache/catalina/core/TestStandardWrapper.java
+++ b/test/org/apache/catalina/core/TestStandardWrapper.java
@@ -98,7 +98,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         // Setup Tomcat instance
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -119,7 +119,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         // Setup Tomcat instance
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -149,7 +149,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         // Setup Tomcat instance
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-servletsecurity");
+        File appDir = new File("test/webapp-servletsecurity");
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -168,7 +168,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         // Setup Tomcat instance
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-servletsecurity2");
+        File appDir = new File("test/webapp-servletsecurity2");
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/catalina/ha/context/TestReplicatedContext.java b/test/org/apache/catalina/ha/context/TestReplicatedContext.java
index 61aea86..9c1a858 100644
--- a/test/org/apache/catalina/ha/context/TestReplicatedContext.java
+++ b/test/org/apache/catalina/ha/context/TestReplicatedContext.java
@@ -45,7 +45,7 @@ public class TestReplicatedContext extends TomcatBaseTest {
             ((StandardHost) host).setContextClass(ReplicatedContext.class.getName());
         }
 
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         Context context = tomcat.addWebapp(host, "", root.getAbsolutePath());
 
         Tomcat.addServlet(context, "test", new AccessContextServlet());
diff --git a/test/org/apache/catalina/loader/TestVirtualContext.java b/test/org/apache/catalina/loader/TestVirtualContext.java
index e2e3292..5f12011 100644
--- a/test/org/apache/catalina/loader/TestVirtualContext.java
+++ b/test/org/apache/catalina/loader/TestVirtualContext.java
@@ -58,22 +58,22 @@ public class TestVirtualContext extends TomcatBaseTest {
     public void testVirtualClassLoader() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-virtual-webapp/src/main/webapp");
+        File appDir = new File("test/webapp-virtual-webapp/src/main/webapp");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(null, "/test",
             appDir.getAbsolutePath());
 
         VirtualWebappLoader loader = new VirtualWebappLoader(ctx.getParentClassLoader());
         loader.setVirtualClasspath(//
-            "test/webapp-3.0-virtual-webapp/target/classes;" + //
-                "test/webapp-3.0-virtual-library/target/classes;" + //
-                "test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/classes;" + //
-                "test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes");
+            "test/webapp-virtual-webapp/target/classes;" + //
+                "test/webapp-virtual-library/target/classes;" + //
+                "test/webapp-virtual-webapp/src/main/webapp/WEB-INF/classes;" + //
+                "test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes");
         ctx.setLoader(loader);
 
-        String extraMappings = "/=test/webapp-3.0-virtual-webapp/src/main/webapp2" + //
-            ",/other=test/webapp-3.0-virtual-webapp/src/main/misc" + //
-            ",/WEB-INF/classes=test/webapp-3.0-virtual-webapp/target/classes";
+        String extraMappings = "/=test/webapp-virtual-webapp/src/main/webapp2" + //
+            ",/other=test/webapp-virtual-webapp/src/main/misc" + //
+            ",/WEB-INF/classes=test/webapp-virtual-webapp/target/classes";
         VirtualDirContext resources = new VirtualDirContext();
         resources.setExtraResourcePaths(extraMappings);
         ctx.setResources(resources);
@@ -129,19 +129,19 @@ public class TestVirtualContext extends TomcatBaseTest {
                     "/test/classpathGetResources.jsp?path=rsrc/").toString();
         Assert.assertTrue(
             allUrls,
-            allUrls.indexOf("/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc") > 0);
+            allUrls.indexOf("/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc") > 0);
         Assert.assertTrue(
             allUrls,
-            allUrls.indexOf("/test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc") > 0);
+            allUrls.indexOf("/test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc") > 0);
         Assert.assertTrue(
             allUrls,
-            allUrls.indexOf("/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar!/rsrc") > 0);
+            allUrls.indexOf("/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar!/rsrc") > 0);
         Assert.assertTrue(
             allUrls,
-            allUrls.indexOf("/test/webapp-3.0-virtual-webapp/target/classes/rsrc") > 0);
+            allUrls.indexOf("/test/webapp-virtual-webapp/target/classes/rsrc") > 0);
         Assert.assertTrue(
             allUrls,
-            allUrls.indexOf("/test/webapp-3.0-virtual-library/target/classes/rsrc") > 0);
+            allUrls.indexOf("/test/webapp-virtual-library/target/classes/rsrc") > 0);
 
         // check that there's no duplicate in the URLs
         String[] allUrlsArray = allUrls.split("\\s+");
@@ -154,7 +154,7 @@ public class TestVirtualContext extends TomcatBaseTest {
                     "/test/classpathGetResources.jsp?path=rsrc2/").toString();
         Assert.assertTrue(
             allRsrsc2ClasspathUrls,
-            allRsrsc2ClasspathUrls.indexOf("/test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2") > 0);
+            allRsrsc2ClasspathUrls.indexOf("/test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2") > 0);
 
         // tests context.getRealPath
 
@@ -166,7 +166,7 @@ public class TestVirtualContext extends TomcatBaseTest {
         // Real paths depend on the OS and this test has to work on all
         // platforms so use File to convert the path to a platform specific form
         File f = new File(
-            "test/webapp-3.0-virtual-webapp/src/main/webapp/rsrc/resourceF.properties");
+            "test/webapp-virtual-webapp/src/main/webapp/rsrc/resourceF.properties");
         assertPageContains(
             "/test/contextGetRealPath.jsp?path=/rsrc/resourceF.properties",
             f.getPath());
@@ -236,7 +236,7 @@ public class TestVirtualContext extends TomcatBaseTest {
     public void testAdditionalWebInfClassesPaths() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-virtual-webapp/src/main/webapp");
+        File appDir = new File("test/webapp-virtual-webapp/src/main/webapp");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(null, "/test",
             appDir.getAbsolutePath());
@@ -274,8 +274,8 @@ public class TestVirtualContext extends TomcatBaseTest {
         }
 
         VirtualWebappLoader loader = new VirtualWebappLoader(ctx.getParentClassLoader());
-        loader.setVirtualClasspath("test/webapp-3.0-virtual-webapp/target/classes;" + //
-            "test/webapp-3.0-virtual-library/target/classes;" + //
+        loader.setVirtualClasspath("test/webapp-virtual-webapp/target/classes;" + //
+            "test/webapp-virtual-library/target/classes;" + //
             additionWebInfClasses.getAbsolutePath());
         ctx.setLoader(loader);
 
diff --git a/test/org/apache/catalina/loader/TestVirtualWebappLoader.java b/test/org/apache/catalina/loader/TestVirtualWebappLoader.java
index 53b0f75..e6b59c5 100644
--- a/test/org/apache/catalina/loader/TestVirtualWebappLoader.java
+++ b/test/org/apache/catalina/loader/TestVirtualWebappLoader.java
@@ -38,7 +38,7 @@ public class TestVirtualWebappLoader extends TomcatBaseTest {
     @Test
     public void testStartInternal() throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // Must have a real docBase - just use temp
         StandardContext ctx =
             (StandardContext)tomcat.addContext("",  appDir.getAbsolutePath());
@@ -49,7 +49,7 @@ public class TestVirtualWebappLoader extends TomcatBaseTest {
         ctx.setLoader(loader);
         ctx.setResources(new FileDirContext());
         ctx.resourcesStart();
-        File dir = new File("test/webapp-3.0-fragments/WEB-INF/lib");
+        File dir = new File("test/webapp-fragments/WEB-INF/lib");
         loader.setVirtualClasspath(dir.getAbsolutePath() + "/*.jar");
         loader.start();
         String[] repos = loader.getRepositories();
diff --git a/test/org/apache/catalina/loader/TestWebappClassLoader.java b/test/org/apache/catalina/loader/TestWebappClassLoader.java
index 813d714..dadc847 100644
--- a/test/org/apache/catalina/loader/TestWebappClassLoader.java
+++ b/test/org/apache/catalina/loader/TestWebappClassLoader.java
@@ -32,7 +32,7 @@ public class TestWebappClassLoader extends TomcatBaseTest {
     @Test
     public void testGetCodePath() throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // Must have a real docBase - just use temp
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -45,7 +45,7 @@ public class TestWebappClassLoader extends TomcatBaseTest {
         Assert.assertEquals(HttpServletResponse.SC_OK, rc);
 
         // Build the expected location the same way the webapp base dir is built
-        File f = new File("test/webapp-3.0/WEB-INF/classes");
+        File f = new File("test/webapp/WEB-INF/classes");
         Assert.assertEquals(f.toURI().toURL().toString(), out.toString().trim());
     }
 }
diff --git a/test/org/apache/catalina/servlets/TestDefaultServlet.java b/test/org/apache/catalina/servlets/TestDefaultServlet.java
index 54e97fe..40e5201 100644
--- a/test/org/apache/catalina/servlets/TestDefaultServlet.java
+++ b/test/org/apache/catalina/servlets/TestDefaultServlet.java
@@ -164,7 +164,7 @@ public class TestDefaultServlet extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
 
         // app dir is relative to server home
         Context ctxt = tomcat.addContext("", appDir.getAbsolutePath());
@@ -279,7 +279,7 @@ public class TestDefaultServlet extends TomcatBaseTest {
     public void testBug57601() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/catalina/startup/TestContextConfig.java b/test/org/apache/catalina/startup/TestContextConfig.java
index 9632b73..9073100 100644
--- a/test/org/apache/catalina/startup/TestContextConfig.java
+++ b/test/org/apache/catalina/startup/TestContextConfig.java
@@ -53,7 +53,7 @@ public class TestContextConfig extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         StandardContext ctxt = (StandardContext) tomcat.addContext(null,
                 "/test", appDir.getAbsolutePath());
         ctxt.setDefaultWebXml(new File("conf/web.xml").getAbsolutePath());
@@ -71,7 +71,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug51396() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir =  new File("test/webapp-3.0-fragments");
+        File appDir =  new File("test/webapp-fragments");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -84,7 +84,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug53574() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -96,7 +96,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug54262() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments-empty-absolute-ordering");
+        File appDir = new File("test/webapp-fragments-empty-absolute-ordering");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -111,7 +111,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug54379() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         Context context =
                 tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -130,7 +130,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug54448and54450() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         Context context = tomcat.addWebapp(null, "/test",
                 appDir.getAbsolutePath());
 
@@ -150,7 +150,7 @@ public class TestContextConfig extends TomcatBaseTest {
     public void testBug55210() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/catalina/startup/TestTomcat.java b/test/org/apache/catalina/startup/TestTomcat.java
index 81038ca..c59efcd 100644
--- a/test/org/apache/catalina/startup/TestTomcat.java
+++ b/test/org/apache/catalina/startup/TestTomcat.java
@@ -603,7 +603,7 @@ public class TestTomcat extends TomcatBaseTest {
 
         tomcat.getHost().setConfigClass(CustomContextConfig.class.getName());
 
-        File docBase = new File("test/webapp-3.0");
+        File docBase = new File("test/webapp");
         tomcat.addWebapp("/test", docBase.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/catalina/startup/TestWebappServiceLoader.java b/test/org/apache/catalina/startup/TestWebappServiceLoader.java
index 8692f0e..5e30245 100644
--- a/test/org/apache/catalina/startup/TestWebappServiceLoader.java
+++ b/test/org/apache/catalina/startup/TestWebappServiceLoader.java
@@ -29,7 +29,7 @@ public class TestWebappServiceLoader extends TomcatBaseTest {
     @Test
     public void testWebapp() throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        File appDir = new File("test/webapp-3.0-fragments-empty-absolute-ordering");
+        File appDir = new File("test/webapp-fragments-empty-absolute-ordering");
         StandardContext ctxt = (StandardContext) tomcat.addContext(null, "/test", appDir.getAbsolutePath());
         ctxt.addLifecycleListener(new ContextConfig());
         tomcat.start();
diff --git a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
index 3f01182..93221e7 100644
--- a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
+++ b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
@@ -568,7 +568,7 @@ public class TestAbstractAjpProcessor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java b/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
index 70f5f7c..5f518f2 100644
--- a/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
+++ b/test/org/apache/coyote/http11/TestAbstractHttp11Processor.java
@@ -134,7 +134,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -159,7 +159,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -187,7 +187,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -230,7 +230,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -264,7 +264,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -295,7 +295,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
@@ -324,7 +324,7 @@ public class TestAbstractHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // Use the normal Tomcat ROOT context
-        File root = new File("test/webapp-3.0");
+        File root = new File("test/webapp");
         tomcat.addWebapp("", root.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/el/TestELInJsp.java b/test/org/apache/el/TestELInJsp.java
index 665572f..70a6ea2 100644
--- a/test/org/apache/el/TestELInJsp.java
+++ b/test/org/apache/el/TestELInJsp.java
@@ -38,7 +38,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug36923() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -55,7 +55,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug42565() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -88,7 +88,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -108,7 +108,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -142,7 +142,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -258,7 +258,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -277,7 +277,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -294,7 +294,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -323,7 +323,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -339,7 +339,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug49555() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -356,7 +356,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug51544() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -384,7 +384,7 @@ public class TestELInJsp extends TomcatBaseTest {
 
         // Create the context (don't use addWebapp as we want to modify the
         // JSP Servlet settings).
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         StandardContext ctxt = (StandardContext) tomcat.addContext(
                 null, "/test", appDir.getAbsolutePath());
 
@@ -431,7 +431,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -459,7 +459,7 @@ public class TestELInJsp extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -480,7 +480,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug56029() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
@@ -504,7 +504,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug56147() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctx = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
@@ -527,7 +527,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug56612() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -545,7 +545,7 @@ public class TestELInJsp extends TomcatBaseTest {
     public void testBug60431() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestCompiler.java b/test/org/apache/jasper/compiler/TestCompiler.java
index 67dc010..f46f17c 100644
--- a/test/org/apache/jasper/compiler/TestCompiler.java
+++ b/test/org/apache/jasper/compiler/TestCompiler.java
@@ -37,7 +37,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug49726a() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -59,7 +59,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug49726b() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -81,7 +81,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257a() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -98,7 +98,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257b() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -114,7 +114,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257c() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -131,7 +131,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257d() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -148,7 +148,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257e() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -164,7 +164,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257f() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -180,7 +180,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257g() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -196,7 +196,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug53257z() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -211,7 +211,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug51584() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -224,7 +224,7 @@ public class TestCompiler extends TomcatBaseTest {
     public void testBug55807() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         Context context = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         ((StandardJarScanner) context.getJarScanner()).setScanAllDirectories(true);
         tomcat.start();
@@ -243,7 +243,7 @@ public class TestCompiler extends TomcatBaseTest {
         Assert.assertTrue(result.contains("<p>DependenciesCount: 1</p>"));
 
         // Check the right timestamp was used in the dependency
-        File tld = new File("test/webapp-3.0/WEB-INF/classes/META-INF/bug55807.tld");
+        File tld = new File("test/webapp/WEB-INF/classes/META-INF/bug55807.tld");
         String expected = "/WEB-INF/classes/META-INF/bug55807.tld : " +
                 tld.lastModified() + "</p>";
         Assert.assertTrue(result.contains(expected));
diff --git a/test/org/apache/jasper/compiler/TestELInterpreterFactory.java b/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
index a721302..1b5a8fe 100644
--- a/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
+++ b/test/org/apache/jasper/compiler/TestELInterpreterFactory.java
@@ -47,7 +47,7 @@ public class TestELInterpreterFactory extends TomcatBaseTest {
     public void testBug54239() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         Context ctx = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
diff --git a/test/org/apache/jasper/compiler/TestGenerator.java b/test/org/apache/jasper/compiler/TestGenerator.java
index 0c57e78..a9b4377 100644
--- a/test/org/apache/jasper/compiler/TestGenerator.java
+++ b/test/org/apache/jasper/compiler/TestGenerator.java
@@ -47,7 +47,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -76,7 +76,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -93,7 +93,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -110,7 +110,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
                 "/test", appDir.getAbsolutePath());
@@ -151,7 +151,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -225,7 +225,7 @@ public class TestGenerator extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
@@ -256,7 +256,7 @@ public class TestGenerator extends TomcatBaseTest {
     public void testBug56529() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -316,7 +316,7 @@ public class TestGenerator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestJspConfig.java b/test/org/apache/jasper/compiler/TestJspConfig.java
index 510e5b0..48e3833 100644
--- a/test/org/apache/jasper/compiler/TestJspConfig.java
+++ b/test/org/apache/jasper/compiler/TestJspConfig.java
@@ -92,7 +92,7 @@ public class TestJspConfig extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestJspDocumentParser.java b/test/org/apache/jasper/compiler/TestJspDocumentParser.java
index c1a0647..67d46d7 100644
--- a/test/org/apache/jasper/compiler/TestJspDocumentParser.java
+++ b/test/org/apache/jasper/compiler/TestJspDocumentParser.java
@@ -36,7 +36,7 @@ public class TestJspDocumentParser extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -53,7 +53,7 @@ public class TestJspDocumentParser extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -74,7 +74,7 @@ public class TestJspDocumentParser extends TomcatBaseTest {
     public void testBug54801() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -95,7 +95,7 @@ public class TestJspDocumentParser extends TomcatBaseTest {
     public void testBug54821() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestJspReader.java b/test/org/apache/jasper/compiler/TestJspReader.java
index 673edb9..e275352 100644
--- a/test/org/apache/jasper/compiler/TestJspReader.java
+++ b/test/org/apache/jasper/compiler/TestJspReader.java
@@ -32,7 +32,7 @@ public class TestJspReader extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/jasper/compiler/TestNodeIntegration.java b/test/org/apache/jasper/compiler/TestNodeIntegration.java
index fbdd183..bb2dc87 100644
--- a/test/org/apache/jasper/compiler/TestNodeIntegration.java
+++ b/test/org/apache/jasper/compiler/TestNodeIntegration.java
@@ -32,7 +32,7 @@ public class TestNodeIntegration extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestParser.java b/test/org/apache/jasper/compiler/TestParser.java
index 717236f..c87b32b 100644
--- a/test/org/apache/jasper/compiler/TestParser.java
+++ b/test/org/apache/jasper/compiler/TestParser.java
@@ -39,7 +39,7 @@ public class TestParser extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -60,7 +60,7 @@ public class TestParser extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -105,7 +105,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug48668b() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -122,7 +122,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug49297NoSpaceStrict() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -139,7 +139,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug49297DuplicateAttr() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -157,7 +157,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -177,7 +177,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -197,7 +197,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -216,7 +216,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -235,7 +235,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -254,7 +254,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -273,7 +273,7 @@ public class TestParser extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -293,7 +293,7 @@ public class TestParser extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -314,7 +314,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug55198() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -346,7 +346,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug56265() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
                 "/test", appDir.getAbsolutePath());
@@ -376,7 +376,7 @@ public class TestParser extends TomcatBaseTest {
     public void testBug56334And56561() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
                 "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/jasper/compiler/TestParserNoStrictWhitespace.java b/test/org/apache/jasper/compiler/TestParserNoStrictWhitespace.java
index 987a107..5f3caa0 100644
--- a/test/org/apache/jasper/compiler/TestParserNoStrictWhitespace.java
+++ b/test/org/apache/jasper/compiler/TestParserNoStrictWhitespace.java
@@ -47,7 +47,7 @@ public class TestParserNoStrictWhitespace extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -68,7 +68,7 @@ public class TestParserNoStrictWhitespace extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -113,7 +113,7 @@ public class TestParserNoStrictWhitespace extends TomcatBaseTest {
     public void testBug48668b() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -131,7 +131,7 @@ public class TestParserNoStrictWhitespace extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -151,7 +151,7 @@ public class TestParserNoStrictWhitespace extends TomcatBaseTest {
     public void testBug49297DuplicateAttr() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestScriptingVariabler.java b/test/org/apache/jasper/compiler/TestScriptingVariabler.java
index cd65f1a..0f72fa2 100644
--- a/test/org/apache/jasper/compiler/TestScriptingVariabler.java
+++ b/test/org/apache/jasper/compiler/TestScriptingVariabler.java
@@ -38,7 +38,7 @@ public class TestScriptingVariabler extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -81,7 +81,7 @@ public class TestScriptingVariabler extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -103,7 +103,7 @@ public class TestScriptingVariabler extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestTagPluginManager.java b/test/org/apache/jasper/compiler/TestTagPluginManager.java
index bd2ce2d..aee7828 100644
--- a/test/org/apache/jasper/compiler/TestTagPluginManager.java
+++ b/test/org/apache/jasper/compiler/TestTagPluginManager.java
@@ -41,7 +41,7 @@ public class TestTagPluginManager extends TomcatBaseTest {
     public void testBug54240() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         Context ctx = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
         tomcat.start();
 
diff --git a/test/org/apache/jasper/compiler/TestValidator.java b/test/org/apache/jasper/compiler/TestValidator.java
index 90a1e2b..15ec1fc 100644
--- a/test/org/apache/jasper/compiler/TestValidator.java
+++ b/test/org/apache/jasper/compiler/TestValidator.java
@@ -38,7 +38,7 @@ public class TestValidator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -130,7 +130,7 @@ public class TestValidator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java b/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
index a231618..5590c5f 100644
--- a/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
+++ b/test/org/apache/jasper/runtime/TestCustomHttpJspPage.java
@@ -36,7 +36,7 @@ public class TestCustomHttpJspPage extends TomcatBaseTest {
     public void testCustomBasePageWhenUsingTagFiles() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/jasper/runtime/TestJspContextWrapper.java b/test/org/apache/jasper/runtime/TestJspContextWrapper.java
index df09926..f41333c 100644
--- a/test/org/apache/jasper/runtime/TestJspContextWrapper.java
+++ b/test/org/apache/jasper/runtime/TestJspContextWrapper.java
@@ -34,7 +34,7 @@ public class TestJspContextWrapper extends TomcatBaseTest {
     public void testELTagFilePageContext() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/jasper/runtime/TestJspWriterImpl.java b/test/org/apache/jasper/runtime/TestJspWriterImpl.java
index a9923db..bdda346 100644
--- a/test/org/apache/jasper/runtime/TestJspWriterImpl.java
+++ b/test/org/apache/jasper/runtime/TestJspWriterImpl.java
@@ -33,7 +33,7 @@ public class TestJspWriterImpl extends TomcatBaseTest {
     public void bug54241a() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -54,7 +54,7 @@ public class TestJspWriterImpl extends TomcatBaseTest {
     public void bug54241b() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/jasper/runtime/TestPageContextImpl.java b/test/org/apache/jasper/runtime/TestPageContextImpl.java
index 0d5e4a8..901267d 100644
--- a/test/org/apache/jasper/runtime/TestPageContextImpl.java
+++ b/test/org/apache/jasper/runtime/TestPageContextImpl.java
@@ -42,7 +42,7 @@ public class TestPageContextImpl extends TomcatBaseTest {
     public void testDoForward() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
@@ -63,7 +63,7 @@ public class TestPageContextImpl extends TomcatBaseTest {
     public void testDefaultBufferSize() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         Context ctx = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -83,7 +83,7 @@ public class TestPageContextImpl extends TomcatBaseTest {
     public void testIncludeThrowsIOException() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.start();
diff --git a/test/org/apache/naming/TestEnvEntry.java b/test/org/apache/naming/TestEnvEntry.java
index 658e9d2..7efd9c8 100644
--- a/test/org/apache/naming/TestEnvEntry.java
+++ b/test/org/apache/naming/TestEnvEntry.java
@@ -93,7 +93,7 @@ public class TestEnvEntry extends TomcatBaseTest {
     private void doTestJndiLookup(String jndiName, String expected) throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         tomcat.enableNaming();
@@ -114,7 +114,7 @@ public class TestEnvEntry extends TomcatBaseTest {
     private void doTestJndiInjection(String injectionName, String expected) throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         Context context = tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
         Tomcat.addServlet(context, "InjectionServlet", "org.apache.naming.TesterInjectionServlet");
diff --git a/test/org/apache/naming/resources/TestFileDirContext.java b/test/org/apache/naming/resources/TestFileDirContext.java
index 76e0a04..f6aeff0 100644
--- a/test/org/apache/naming/resources/TestFileDirContext.java
+++ b/test/org/apache/naming/resources/TestFileDirContext.java
@@ -33,7 +33,7 @@ public class TestFileDirContext extends TomcatBaseTest {
     public void testLookupResourceWithTrailingSlash() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/naming/resources/TestNamingContext.java b/test/org/apache/naming/resources/TestNamingContext.java
index e642df0..6d52c04 100644
--- a/test/org/apache/naming/resources/TestNamingContext.java
+++ b/test/org/apache/naming/resources/TestNamingContext.java
@@ -478,7 +478,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         File appDir =
-            new File("test/webapp-3.0");
+            new File("test/webapp");
         // app dir is relative to server home
         org.apache.catalina.Context ctxt =
                 tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/naming/resources/TestWarDirContext.java b/test/org/apache/naming/resources/TestWarDirContext.java
index be83c5d..dd4def9 100644
--- a/test/org/apache/naming/resources/TestWarDirContext.java
+++ b/test/org/apache/naming/resources/TestWarDirContext.java
@@ -50,7 +50,7 @@ public class TestWarDirContext extends TomcatBaseTest {
     public void testLookupException() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
@@ -71,7 +71,7 @@ public class TestWarDirContext extends TomcatBaseTest {
     public void testReservedJNDIFileNamesWithCache() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
@@ -101,7 +101,7 @@ public class TestWarDirContext extends TomcatBaseTest {
     public void testReservedJNDIFileNamesNoCache() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0-fragments");
+        File appDir = new File("test/webapp-fragments");
         // app dir is relative to server home
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(
                 null, "/test", appDir.getAbsolutePath());
diff --git a/test/org/apache/tomcat/util/http/mapper/TestMapperWebapps.java b/test/org/apache/tomcat/util/http/mapper/TestMapperWebapps.java
index a7c51e7..1d4f054 100644
--- a/test/org/apache/tomcat/util/http/mapper/TestMapperWebapps.java
+++ b/test/org/apache/tomcat/util/http/mapper/TestMapperWebapps.java
@@ -173,7 +173,7 @@ public class TestMapperWebapps extends TomcatBaseTest{
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
 
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null, "/test",
                 appDir.getAbsolutePath());
@@ -201,7 +201,7 @@ public class TestMapperWebapps extends TomcatBaseTest{
 
         Tomcat tomcat = getTomcatInstance();
 
-        File appDir = new File("test/webapp-3.0");
+        File appDir = new File("test/webapp");
 
         StandardContext ctxt = (StandardContext) tomcat.addWebapp(null, "/test",
                 appDir.getAbsolutePath());
@@ -231,7 +231,7 @@ public class TestMapperWebapps extends TomcatBaseTest{
         Tomcat tomcat = getTomcatInstance();
 
         // Use standard test webapp as ROOT
-        File rootDir = new File("test/webapp-3.0");
+        File rootDir = new File("test/webapp");
         org.apache.catalina.Context root =
                 tomcat.addWebapp(null, "", rootDir.getAbsolutePath());
 
diff --git a/test/webapp-3.0-fragments-empty-absolute-ordering/WEB-INF/lib/resources.jar b/test/webapp-fragments-empty-absolute-ordering/WEB-INF/lib/resources.jar
similarity index 100%
rename from test/webapp-3.0-fragments-empty-absolute-ordering/WEB-INF/lib/resources.jar
rename to test/webapp-fragments-empty-absolute-ordering/WEB-INF/lib/resources.jar
diff --git a/test/webapp-3.0-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0-fragments-empty-absolute-ordering/WEB-INF/web.xml
rename to test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
diff --git a/test/webapp-3.0-fragments/'singlequote2.jsp b/test/webapp-fragments/'singlequote2.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/'singlequote2.jsp
rename to test/webapp-fragments/'singlequote2.jsp
diff --git a/test/webapp-3.0-fragments/WEB-INF/classes/#Bug51584.txt b/test/webapp-fragments/WEB-INF/classes/#Bug51584.txt
similarity index 100%
rename from test/webapp-3.0-fragments/WEB-INF/classes/#Bug51584.txt
rename to test/webapp-fragments/WEB-INF/classes/#Bug51584.txt
diff --git a/test/webapp-3.0-fragments/WEB-INF/classes/META-INF/resources/resourceG.jsp b/test/webapp-fragments/WEB-INF/classes/META-INF/resources/resourceG.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/WEB-INF/classes/META-INF/resources/resourceG.jsp
rename to test/webapp-fragments/WEB-INF/classes/META-INF/resources/resourceG.jsp
diff --git a/test/webapp-3.0-fragments/WEB-INF/lib/resources.jar b/test/webapp-fragments/WEB-INF/lib/resources.jar
similarity index 100%
rename from test/webapp-3.0-fragments/WEB-INF/lib/resources.jar
rename to test/webapp-fragments/WEB-INF/lib/resources.jar
diff --git a/test/webapp-3.0-fragments/WEB-INF/lib/resources2.jar b/test/webapp-fragments/WEB-INF/lib/resources2.jar
similarity index 100%
rename from test/webapp-3.0-fragments/WEB-INF/lib/resources2.jar
rename to test/webapp-fragments/WEB-INF/lib/resources2.jar
diff --git a/test/webapp-3.0-fragments/WEB-INF/web.xml b/test/webapp-fragments/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0-fragments/WEB-INF/web.xml
rename to test/webapp-fragments/WEB-INF/web.xml
diff --git a/test/webapp-3.0-fragments/bug51396.jsp b/test/webapp-fragments/bug51396.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/bug51396.jsp
rename to test/webapp-fragments/bug51396.jsp
diff --git a/test/webapp-3.0-fragments/folder/resourceC.jsp b/test/webapp-fragments/folder/resourceC.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/folder/resourceC.jsp
rename to test/webapp-fragments/folder/resourceC.jsp
diff --git a/test/webapp-3.0-fragments/folder/resourceE.jsp b/test/webapp-fragments/folder/resourceE.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/folder/resourceE.jsp
rename to test/webapp-fragments/folder/resourceE.jsp
diff --git a/test/webapp-3.0-fragments/jndi.jsp b/test/webapp-fragments/jndi.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/jndi.jsp
rename to test/webapp-fragments/jndi.jsp
diff --git a/test/webapp-3.0-fragments/resourceA.jsp b/test/webapp-fragments/resourceA.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/resourceA.jsp
rename to test/webapp-fragments/resourceA.jsp
diff --git a/test/webapp-3.0-fragments/warDirContext.jsp b/test/webapp-fragments/warDirContext.jsp
similarity index 100%
rename from test/webapp-3.0-fragments/warDirContext.jsp
rename to test/webapp-fragments/warDirContext.jsp
diff --git a/test/webapp-3.0-servletsecurity/WEB-INF/web.xml b/test/webapp-servletsecurity/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0-servletsecurity/WEB-INF/web.xml
rename to test/webapp-servletsecurity/WEB-INF/web.xml
diff --git a/test/webapp-3.0-servletsecurity2/WEB-INF/web.xml b/test/webapp-servletsecurity2/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0-servletsecurity2/WEB-INF/web.xml
rename to test/webapp-servletsecurity2/WEB-INF/web.xml
diff --git a/test/webapp-3.0-servletsecurity2/protected.jsp b/test/webapp-servletsecurity2/protected.jsp
similarity index 100%
rename from test/webapp-3.0-servletsecurity2/protected.jsp
rename to test/webapp-servletsecurity2/protected.jsp
diff --git a/test/webapp-3.0-servletsecurity2/unprotected.jsp b/test/webapp-servletsecurity2/unprotected.jsp
similarity index 100%
rename from test/webapp-3.0-servletsecurity2/unprotected.jsp
rename to test/webapp-servletsecurity2/unprotected.jsp
diff --git a/test/webapp-3.0-virtual-library/target/classes/META-INF/C.tld b/test/webapp-virtual-library/target/classes/META-INF/C.tld
similarity index 100%
rename from test/webapp-3.0-virtual-library/target/classes/META-INF/C.tld
rename to test/webapp-virtual-library/target/classes/META-INF/C.tld
diff --git a/test/webapp-3.0-virtual-library/target/classes/META-INF/resources/rsrc/resourceE.properties b/test/webapp-virtual-library/target/classes/META-INF/resources/rsrc/resourceE.properties
similarity index 100%
rename from test/webapp-3.0-virtual-library/target/classes/META-INF/resources/rsrc/resourceE.properties
rename to test/webapp-virtual-library/target/classes/META-INF/resources/rsrc/resourceE.properties
diff --git a/test/webapp-3.0-virtual-library/target/classes/rsrc/resourceC.properties b/test/webapp-virtual-library/target/classes/rsrc/resourceC.properties
similarity index 100%
rename from test/webapp-3.0-virtual-library/target/classes/rsrc/resourceC.properties
rename to test/webapp-virtual-library/target/classes/rsrc/resourceC.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/lib/META-INF/B.tld b/test/webapp-virtual-webapp/src/main/lib/META-INF/B.tld
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/lib/META-INF/B.tld
rename to test/webapp-virtual-webapp/src/main/lib/META-INF/B.tld
diff --git a/test/webapp-3.0-virtual-webapp/src/main/lib/rsrc/resourceD.properties b/test/webapp-virtual-webapp/src/main/lib/rsrc/resourceD.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/lib/rsrc/resourceD.properties
rename to test/webapp-virtual-webapp/src/main/lib/rsrc/resourceD.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/misc/resourceI.properties b/test/webapp-virtual-webapp/src/main/misc/resourceI.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/misc/resourceI.properties
rename to test/webapp-virtual-webapp/src/main/misc/resourceI.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/A.tld b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/A.tld
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/A.tld
rename to test/webapp-virtual-webapp/src/main/webapp/WEB-INF/A.tld
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc/resourceA.properties b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc/resourceA.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc/resourceA.properties
rename to test/webapp-virtual-webapp/src/main/webapp/WEB-INF/classes/rsrc/resourceA.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar
rename to test/webapp-virtual-webapp/src/main/webapp/WEB-INF/lib/rsrc.jar
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/web.xml b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/WEB-INF/web.xml
rename to test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResourceAsStream.jsp b/test/webapp-virtual-webapp/src/main/webapp/classpathGetResourceAsStream.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResourceAsStream.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/classpathGetResourceAsStream.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResourceUrlThenGetStream.jsp b/test/webapp-virtual-webapp/src/main/webapp/classpathGetResourceUrlThenGetStream.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResourceUrlThenGetStream.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/classpathGetResourceUrlThenGetStream.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResources.jsp b/test/webapp-virtual-webapp/src/main/webapp/classpathGetResources.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/classpathGetResources.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/classpathGetResources.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetRealPath.jsp b/test/webapp-virtual-webapp/src/main/webapp/contextGetRealPath.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetRealPath.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/contextGetRealPath.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetResource.jsp b/test/webapp-virtual-webapp/src/main/webapp/contextGetResource.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetResource.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/contextGetResource.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetResourcePaths.jsp b/test/webapp-virtual-webapp/src/main/webapp/contextGetResourcePaths.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/contextGetResourcePaths.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/contextGetResourcePaths.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/rsrc/resourceF.properties b/test/webapp-virtual-webapp/src/main/webapp/rsrc/resourceF.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/rsrc/resourceF.properties
rename to test/webapp-virtual-webapp/src/main/webapp/rsrc/resourceF.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp/testTlds.jsp b/test/webapp-virtual-webapp/src/main/webapp/testTlds.jsp
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp/testTlds.jsp
rename to test/webapp-virtual-webapp/src/main/webapp/testTlds.jsp
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/D.tld b/test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/D.tld
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/D.tld
rename to test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/D.tld
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc/resourceG.properties b/test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc/resourceG.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc/resourceG.properties
rename to test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc/resourceG.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2/resourceK.properties b/test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2/resourceK.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2/resourceK.properties
rename to test/webapp-virtual-webapp/src/main/webapp2/WEB-INF/classes/rsrc2/resourceK.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties b/test/webapp-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties
similarity index 92%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties
rename to test/webapp-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties
index a574e17..9e4fa83 100644
--- a/test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties
+++ b/test/webapp-virtual-webapp/src/main/webapp2/rsrc/resourceF.properties
@@ -14,4 +14,4 @@
 #  limitations under the License.
 
 This file should not be served, it is masked by
-/test/webapp-3.0-virtual-webapp/src/main/webapp/rsrc/resourceF.properties
\ No newline at end of file
+/test/webapp-virtual-webapp/src/main/webapp/rsrc/resourceF.properties
\ No newline at end of file
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc/resourceH.properties b/test/webapp-virtual-webapp/src/main/webapp2/rsrc/resourceH.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc/resourceH.properties
rename to test/webapp-virtual-webapp/src/main/webapp2/rsrc/resourceH.properties
diff --git a/test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc2/resourceJ.properties b/test/webapp-virtual-webapp/src/main/webapp2/rsrc2/resourceJ.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/src/main/webapp2/rsrc2/resourceJ.properties
rename to test/webapp-virtual-webapp/src/main/webapp2/rsrc2/resourceJ.properties
diff --git a/test/webapp-3.0-virtual-webapp/target/classes/rsrc/resourceB.properties b/test/webapp-virtual-webapp/target/classes/rsrc/resourceB.properties
similarity index 100%
rename from test/webapp-3.0-virtual-webapp/target/classes/rsrc/resourceB.properties
rename to test/webapp-virtual-webapp/target/classes/rsrc/resourceB.properties
diff --git a/test/webapp-3.0/404.html b/test/webapp/404.html
similarity index 100%
rename from test/webapp-3.0/404.html
rename to test/webapp/404.html
diff --git a/test/webapp-3.0/WEB-INF/bug53545.tld b/test/webapp/WEB-INF/bug53545.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/bug53545.tld
rename to test/webapp/WEB-INF/bug53545.tld
diff --git a/test/webapp-3.0/WEB-INF/bugs.tld b/test/webapp/WEB-INF/bugs.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/bugs.tld
rename to test/webapp/WEB-INF/bugs.tld
diff --git a/test/webapp-3.0/WEB-INF/classes/META-INF/bug55807.tld b/test/webapp/WEB-INF/classes/META-INF/bug55807.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/classes/META-INF/bug55807.tld
rename to test/webapp/WEB-INF/classes/META-INF/bug55807.tld
diff --git a/test/webapp-3.0/WEB-INF/classes/META-INF/org.apache.jasper/tagPlugins.xml b/test/webapp/WEB-INF/classes/META-INF/org.apache.jasper/tagPlugins.xml
similarity index 100%
rename from test/webapp-3.0/WEB-INF/classes/META-INF/org.apache.jasper/tagPlugins.xml
rename to test/webapp/WEB-INF/classes/META-INF/org.apache.jasper/tagPlugins.xml
diff --git a/test/webapp-3.0/WEB-INF/classes/org/apache/tomcat/Bug58096.class b/test/webapp/WEB-INF/classes/org/apache/tomcat/Bug58096.class
similarity index 100%
rename from test/webapp-3.0/WEB-INF/classes/org/apache/tomcat/Bug58096.class
rename to test/webapp/WEB-INF/classes/org/apache/tomcat/Bug58096.class
diff --git a/test/webapp-3.0/WEB-INF/classes/org/apache/tomcat/Bug58096.java b/test/webapp/WEB-INF/classes/org/apache/tomcat/Bug58096.java
similarity index 100%
rename from test/webapp-3.0/WEB-INF/classes/org/apache/tomcat/Bug58096.java
rename to test/webapp/WEB-INF/classes/org/apache/tomcat/Bug58096.java
diff --git a/test/webapp-3.0/WEB-INF/jsp/bug53574.jsp b/test/webapp/WEB-INF/jsp/bug53574.jsp
similarity index 100%
rename from test/webapp-3.0/WEB-INF/jsp/bug53574.jsp
rename to test/webapp/WEB-INF/jsp/bug53574.jsp
diff --git a/test/webapp-3.0/WEB-INF/listener.tld b/test/webapp/WEB-INF/listener.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/listener.tld
rename to test/webapp/WEB-INF/listener.tld
diff --git a/test/webapp-3.0/WEB-INF/tags/bug42390.tag b/test/webapp/WEB-INF/tags/bug42390.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug42390.tag
rename to test/webapp/WEB-INF/tags/bug42390.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/bug48668.tagx b/test/webapp/WEB-INF/tags/bug48668.tagx
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug48668.tagx
rename to test/webapp/WEB-INF/tags/bug48668.tagx
diff --git a/test/webapp-3.0/WEB-INF/tags/bug49297.tag b/test/webapp/WEB-INF/tags/bug49297.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug49297.tag
rename to test/webapp/WEB-INF/tags/bug49297.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/bug55198.tagx b/test/webapp/WEB-INF/tags/bug55198.tagx
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug55198.tagx
rename to test/webapp/WEB-INF/tags/bug55198.tagx
diff --git a/test/webapp-3.0/WEB-INF/tags/bug56265.tagx b/test/webapp/WEB-INF/tags/bug56265.tagx
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug56265.tagx
rename to test/webapp/WEB-INF/tags/bug56265.tagx
diff --git a/test/webapp-3.0/WEB-INF/tags/bug58178.tag b/test/webapp/WEB-INF/tags/bug58178.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/bug58178.tag
rename to test/webapp/WEB-INF/tags/bug58178.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/echo-deferred.tag b/test/webapp/WEB-INF/tags/echo-deferred.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/echo-deferred.tag
rename to test/webapp/WEB-INF/tags/echo-deferred.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/echo-double.tag b/test/webapp/WEB-INF/tags/echo-double.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/echo-double.tag
rename to test/webapp/WEB-INF/tags/echo-double.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/echo-long.tag b/test/webapp/WEB-INF/tags/echo-long.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/echo-long.tag
rename to test/webapp/WEB-INF/tags/echo-long.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/echo-noel.tag b/test/webapp/WEB-INF/tags/echo-noel.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/echo-noel.tag
rename to test/webapp/WEB-INF/tags/echo-noel.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/echo.tag b/test/webapp/WEB-INF/tags/echo.tag
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/echo.tag
rename to test/webapp/WEB-INF/tags/echo.tag
diff --git a/test/webapp-3.0/WEB-INF/tags/implicit.tld b/test/webapp/WEB-INF/tags/implicit.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags/implicit.tld
rename to test/webapp/WEB-INF/tags/implicit.tld
diff --git a/test/webapp-3.0/WEB-INF/tags11.tld b/test/webapp/WEB-INF/tags11.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags11.tld
rename to test/webapp/WEB-INF/tags11.tld
diff --git a/test/webapp-3.0/WEB-INF/tags12.tld b/test/webapp/WEB-INF/tags12.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags12.tld
rename to test/webapp/WEB-INF/tags12.tld
diff --git a/test/webapp-3.0/WEB-INF/tags20.tld b/test/webapp/WEB-INF/tags20.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags20.tld
rename to test/webapp/WEB-INF/tags20.tld
diff --git a/test/webapp-3.0/WEB-INF/tags21.tld b/test/webapp/WEB-INF/tags21.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/tags21.tld
rename to test/webapp/WEB-INF/tags21.tld
diff --git a/test/webapp-3.0/WEB-INF/test.tld b/test/webapp/WEB-INF/test.tld
similarity index 100%
rename from test/webapp-3.0/WEB-INF/test.tld
rename to test/webapp/WEB-INF/test.tld
diff --git a/test/webapp-3.0/WEB-INF/web.xml b/test/webapp/WEB-INF/web.xml
similarity index 100%
rename from test/webapp-3.0/WEB-INF/web.xml
rename to test/webapp/WEB-INF/web.xml
diff --git a/test/webapp-3.0/annotations.jsp b/test/webapp/annotations.jsp
similarity index 100%
rename from test/webapp-3.0/annotations.jsp
rename to test/webapp/annotations.jsp
diff --git a/test/webapp-3.0/bug36923.jsp b/test/webapp/bug36923.jsp
similarity index 100%
rename from test/webapp-3.0/bug36923.jsp
rename to test/webapp/bug36923.jsp
diff --git a/test/webapp-3.0/bug42390.jsp b/test/webapp/bug42390.jsp
similarity index 100%
rename from test/webapp-3.0/bug42390.jsp
rename to test/webapp/bug42390.jsp
diff --git a/test/webapp-3.0/bug42565.jsp b/test/webapp/bug42565.jsp
similarity index 100%
rename from test/webapp-3.0/bug42565.jsp
rename to test/webapp/bug42565.jsp
diff --git a/test/webapp-3.0/bug44994.jsp b/test/webapp/bug44994.jsp
similarity index 100%
rename from test/webapp-3.0/bug44994.jsp
rename to test/webapp/bug44994.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45015a.jsp b/test/webapp/bug45nnn/bug45015a.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45015a.jsp
rename to test/webapp/bug45nnn/bug45015a.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45015b.jsp b/test/webapp/bug45nnn/bug45015b.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45015b.jsp
rename to test/webapp/bug45nnn/bug45015b.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45015c.jsp b/test/webapp/bug45nnn/bug45015c.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45015c.jsp
rename to test/webapp/bug45nnn/bug45015c.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45427.jsp b/test/webapp/bug45nnn/bug45427.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45427.jsp
rename to test/webapp/bug45nnn/bug45427.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45451.jspf b/test/webapp/bug45nnn/bug45451.jspf
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451.jspf
rename to test/webapp/bug45nnn/bug45451.jspf
diff --git a/test/webapp-3.0/bug45nnn/bug45451a.jsp b/test/webapp/bug45nnn/bug45451a.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451a.jsp
rename to test/webapp/bug45nnn/bug45451a.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45451b.jsp b/test/webapp/bug45nnn/bug45451b.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451b.jsp
rename to test/webapp/bug45nnn/bug45451b.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45451c.jsp b/test/webapp/bug45nnn/bug45451c.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451c.jsp
rename to test/webapp/bug45nnn/bug45451c.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45451d.jspx b/test/webapp/bug45nnn/bug45451d.jspx
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451d.jspx
rename to test/webapp/bug45nnn/bug45451d.jspx
diff --git a/test/webapp-3.0/bug45nnn/bug45451e.jsp b/test/webapp/bug45nnn/bug45451e.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45451e.jsp
rename to test/webapp/bug45nnn/bug45451e.jsp
diff --git a/test/webapp-3.0/bug45nnn/bug45511.jsp b/test/webapp/bug45nnn/bug45511.jsp
similarity index 100%
rename from test/webapp-3.0/bug45nnn/bug45511.jsp
rename to test/webapp/bug45nnn/bug45511.jsp
diff --git a/test/webapp-3.0/bug46381.jsp b/test/webapp/bug46381.jsp
similarity index 100%
rename from test/webapp-3.0/bug46381.jsp
rename to test/webapp/bug46381.jsp
diff --git a/test/webapp-3.0/bug46596.jsp b/test/webapp/bug46596.jsp
similarity index 100%
rename from test/webapp-3.0/bug46596.jsp
rename to test/webapp/bug46596.jsp
diff --git a/test/webapp-3.0/bug47331.jsp b/test/webapp/bug47331.jsp
similarity index 100%
rename from test/webapp-3.0/bug47331.jsp
rename to test/webapp/bug47331.jsp
diff --git a/test/webapp-3.0/bug47413.jsp b/test/webapp/bug47413.jsp
similarity index 100%
rename from test/webapp-3.0/bug47413.jsp
rename to test/webapp/bug47413.jsp
diff --git a/test/webapp-3.0/bug47977.jspx b/test/webapp/bug47977.jspx
similarity index 100%
rename from test/webapp-3.0/bug47977.jspx
rename to test/webapp/bug47977.jspx
diff --git a/test/webapp-3.0/bug48nnn/bug48112.jsp b/test/webapp/bug48nnn/bug48112.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48112.jsp
rename to test/webapp/bug48nnn/bug48112.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48616.jsp b/test/webapp/bug48nnn/bug48616.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48616.jsp
rename to test/webapp/bug48nnn/bug48616.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48616b.jsp b/test/webapp/bug48nnn/bug48616b.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48616b.jsp
rename to test/webapp/bug48nnn/bug48616b.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48627.jsp b/test/webapp/bug48nnn/bug48627.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48627.jsp
rename to test/webapp/bug48nnn/bug48627.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48668a.jsp b/test/webapp/bug48nnn/bug48668a.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48668a.jsp
rename to test/webapp/bug48nnn/bug48668a.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48668b.jsp b/test/webapp/bug48nnn/bug48668b.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48668b.jsp
rename to test/webapp/bug48nnn/bug48668b.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48701-TVI-NFA.jsp b/test/webapp/bug48nnn/bug48701-TVI-NFA.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48701-TVI-NFA.jsp
rename to test/webapp/bug48nnn/bug48701-TVI-NFA.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48701-TVI-NG.jsp b/test/webapp/bug48nnn/bug48701-TVI-NG.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48701-TVI-NG.jsp
rename to test/webapp/bug48nnn/bug48701-TVI-NG.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48701-UseBean.jsp b/test/webapp/bug48nnn/bug48701-UseBean.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48701-UseBean.jsp
rename to test/webapp/bug48nnn/bug48701-UseBean.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48701-VI.jsp b/test/webapp/bug48nnn/bug48701-VI.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48701-VI.jsp
rename to test/webapp/bug48nnn/bug48701-VI.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48701-fail.jsp b/test/webapp/bug48nnn/bug48701-fail.jsp
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48701-fail.jsp
rename to test/webapp/bug48nnn/bug48701-fail.jsp
diff --git a/test/webapp-3.0/bug48nnn/bug48827.jspx b/test/webapp/bug48nnn/bug48827.jspx
similarity index 100%
rename from test/webapp-3.0/bug48nnn/bug48827.jspx
rename to test/webapp/bug48nnn/bug48827.jspx
diff --git a/test/webapp-3.0/bug49nnn/bug49196.jsp b/test/webapp/bug49nnn/bug49196.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49196.jsp
rename to test/webapp/bug49nnn/bug49196.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297DuplicateAttr.jsp b/test/webapp/bug49nnn/bug49297DuplicateAttr.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297DuplicateAttr.jsp
rename to test/webapp/bug49nnn/bug49297DuplicateAttr.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultipleImport1.jsp b/test/webapp/bug49nnn/bug49297MultipleImport1.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultipleImport1.jsp
rename to test/webapp/bug49nnn/bug49297MultipleImport1.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultipleImport2.jsp b/test/webapp/bug49nnn/bug49297MultipleImport2.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultipleImport2.jsp
rename to test/webapp/bug49nnn/bug49297MultipleImport2.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding1.jsp b/test/webapp/bug49nnn/bug49297MultiplePageEncoding1.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding1.jsp
rename to test/webapp/bug49nnn/bug49297MultiplePageEncoding1.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding2.jsp b/test/webapp/bug49nnn/bug49297MultiplePageEncoding2.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding2.jsp
rename to test/webapp/bug49nnn/bug49297MultiplePageEncoding2.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding3.jsp b/test/webapp/bug49nnn/bug49297MultiplePageEncoding3.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding3.jsp
rename to test/webapp/bug49nnn/bug49297MultiplePageEncoding3.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding4.jsp b/test/webapp/bug49nnn/bug49297MultiplePageEncoding4.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297MultiplePageEncoding4.jsp
rename to test/webapp/bug49nnn/bug49297MultiplePageEncoding4.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297NoSpace.jsp b/test/webapp/bug49nnn/bug49297NoSpace.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297NoSpace.jsp
rename to test/webapp/bug49nnn/bug49297NoSpace.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49297Tag.jsp b/test/webapp/bug49nnn/bug49297Tag.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49297Tag.jsp
rename to test/webapp/bug49nnn/bug49297Tag.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49555.jsp b/test/webapp/bug49nnn/bug49555.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49555.jsp
rename to test/webapp/bug49nnn/bug49555.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49726a.jsp b/test/webapp/bug49nnn/bug49726a.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49726a.jsp
rename to test/webapp/bug49nnn/bug49726a.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49726b.jsp b/test/webapp/bug49nnn/bug49726b.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49726b.jsp
rename to test/webapp/bug49nnn/bug49726b.jsp
diff --git a/test/webapp-3.0/bug49nnn/bug49799.jsp b/test/webapp/bug49nnn/bug49799.jsp
similarity index 100%
rename from test/webapp-3.0/bug49nnn/bug49799.jsp
rename to test/webapp/bug49nnn/bug49799.jsp
diff --git a/test/webapp-3.0/bug53257/foo bar.jsp b/test/webapp/bug53257/foo bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo bar.jsp
rename to test/webapp/bug53257/foo bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo bar.txt b/test/webapp/bug53257/foo bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo bar.txt
rename to test/webapp/bug53257/foo bar.txt
diff --git a/test/webapp-3.0/bug53257/foo bar/foobar.jsp b/test/webapp/bug53257/foo bar/foobar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo bar/foobar.jsp
rename to test/webapp/bug53257/foo bar/foobar.jsp
diff --git a/test/webapp-3.0/bug53257/foo bar/foobar.txt b/test/webapp/bug53257/foo bar/foobar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo bar/foobar.txt
rename to test/webapp/bug53257/foo bar/foobar.txt
diff --git a/test/webapp-3.0/bug53257/foo#bar.jsp b/test/webapp/bug53257/foo#bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo#bar.jsp
rename to test/webapp/bug53257/foo#bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo#bar.txt b/test/webapp/bug53257/foo#bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo#bar.txt
rename to test/webapp/bug53257/foo#bar.txt
diff --git a/test/webapp-3.0/bug53257/foo%bar.jsp b/test/webapp/bug53257/foo%bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo%bar.jsp
rename to test/webapp/bug53257/foo%bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo%bar.txt b/test/webapp/bug53257/foo%bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo%bar.txt
rename to test/webapp/bug53257/foo%bar.txt
diff --git a/test/webapp-3.0/bug53257/foo&bar.jsp b/test/webapp/bug53257/foo&bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo&bar.jsp
rename to test/webapp/bug53257/foo&bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo&bar.txt b/test/webapp/bug53257/foo&bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo&bar.txt
rename to test/webapp/bug53257/foo&bar.txt
diff --git a/test/webapp-3.0/bug53257/foo+bar.jsp b/test/webapp/bug53257/foo+bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo+bar.jsp
rename to test/webapp/bug53257/foo+bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo+bar.txt b/test/webapp/bug53257/foo+bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo+bar.txt
rename to test/webapp/bug53257/foo+bar.txt
diff --git a/test/webapp-3.0/bug53257/foo;bar.jsp b/test/webapp/bug53257/foo;bar.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/foo;bar.jsp
rename to test/webapp/bug53257/foo;bar.jsp
diff --git a/test/webapp-3.0/bug53257/foo;bar.txt b/test/webapp/bug53257/foo;bar.txt
similarity index 100%
rename from test/webapp-3.0/bug53257/foo;bar.txt
rename to test/webapp/bug53257/foo;bar.txt
diff --git a/test/webapp-3.0/bug53257/index.jsp b/test/webapp/bug53257/index.jsp
similarity index 100%
rename from test/webapp-3.0/bug53257/index.jsp
rename to test/webapp/bug53257/index.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug50408.jsp b/test/webapp/bug5nnnn/bug50408.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug50408.jsp
rename to test/webapp/bug5nnnn/bug50408.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug51544.jsp b/test/webapp/bug5nnnn/bug51544.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug51544.jsp
rename to test/webapp/bug5nnnn/bug51544.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug52335.jsp b/test/webapp/bug5nnnn/bug52335.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug52335.jsp
rename to test/webapp/bug5nnnn/bug52335.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug53465.jsp b/test/webapp/bug5nnnn/bug53465.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug53465.jsp
rename to test/webapp/bug5nnnn/bug53465.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug53467].jsp b/test/webapp/bug5nnnn/bug53467].jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug53467].jsp
rename to test/webapp/bug5nnnn/bug53467].jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug53545.html b/test/webapp/bug5nnnn/bug53545.html
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug53545.html
rename to test/webapp/bug5nnnn/bug53545.html
diff --git a/test/webapp-3.0/bug5nnnn/bug53545.jsp b/test/webapp/bug5nnnn/bug53545.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug53545.jsp
rename to test/webapp/bug5nnnn/bug53545.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug53986.jsp b/test/webapp/bug5nnnn/bug53986.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug53986.jsp
rename to test/webapp/bug5nnnn/bug53986.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug54241a.jsp b/test/webapp/bug5nnnn/bug54241a.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54241a.jsp
rename to test/webapp/bug5nnnn/bug54241a.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug54241b.jsp b/test/webapp/bug5nnnn/bug54241b.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54241b.jsp
rename to test/webapp/bug5nnnn/bug54241b.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug54801a.jspx b/test/webapp/bug5nnnn/bug54801a.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54801a.jspx
rename to test/webapp/bug5nnnn/bug54801a.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug54801b.jspx b/test/webapp/bug5nnnn/bug54801b.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54801b.jspx
rename to test/webapp/bug5nnnn/bug54801b.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug54821a.jspx b/test/webapp/bug5nnnn/bug54821a.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54821a.jspx
rename to test/webapp/bug5nnnn/bug54821a.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug54821b.jspx b/test/webapp/bug5nnnn/bug54821b.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug54821b.jspx
rename to test/webapp/bug5nnnn/bug54821b.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug55198.jsp b/test/webapp/bug5nnnn/bug55198.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug55198.jsp
rename to test/webapp/bug5nnnn/bug55198.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug55642a.jsp b/test/webapp/bug5nnnn/bug55642a.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug55642a.jsp
rename to test/webapp/bug5nnnn/bug55642a.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug55642b.jsp b/test/webapp/bug5nnnn/bug55642b.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug55642b.jsp
rename to test/webapp/bug5nnnn/bug55642b.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug55807.jsp b/test/webapp/bug5nnnn/bug55807.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug55807.jsp
rename to test/webapp/bug5nnnn/bug55807.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug56029.jspx b/test/webapp/bug5nnnn/bug56029.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56029.jspx
rename to test/webapp/bug5nnnn/bug56029.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug56147.jsp b/test/webapp/bug5nnnn/bug56147.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56147.jsp
rename to test/webapp/bug5nnnn/bug56147.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug56265.jsp b/test/webapp/bug5nnnn/bug56265.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56265.jsp
rename to test/webapp/bug5nnnn/bug56265.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug56334and56561.jspx b/test/webapp/bug5nnnn/bug56334and56561.jspx
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56334and56561.jspx
rename to test/webapp/bug5nnnn/bug56334and56561.jspx
diff --git a/test/webapp-3.0/bug5nnnn/bug56529.jsp b/test/webapp/bug5nnnn/bug56529.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56529.jsp
rename to test/webapp/bug5nnnn/bug56529.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug56581.jsp b/test/webapp/bug5nnnn/bug56581.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56581.jsp
rename to test/webapp/bug5nnnn/bug56581.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug56612.jsp b/test/webapp/bug5nnnn/bug56612.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug56612.jsp
rename to test/webapp/bug5nnnn/bug56612.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug57601.jsp b/test/webapp/bug5nnnn/bug57601.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug57601.jsp
rename to test/webapp/bug5nnnn/bug57601.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug57601.txt b/test/webapp/bug5nnnn/bug57601.txt
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug57601.txt
rename to test/webapp/bug5nnnn/bug57601.txt
diff --git a/test/webapp-3.0/bug5nnnn/bug58096.jsp b/test/webapp/bug5nnnn/bug58096.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug58096.jsp
rename to test/webapp/bug5nnnn/bug58096.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug58178.jsp b/test/webapp/bug5nnnn/bug58178.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug58178.jsp
rename to test/webapp/bug5nnnn/bug58178.jsp
diff --git a/test/webapp-3.0/bug5nnnn/bug58444.jsp b/test/webapp/bug5nnnn/bug58444.jsp
similarity index 100%
rename from test/webapp-3.0/bug5nnnn/bug58444.jsp
rename to test/webapp/bug5nnnn/bug58444.jsp
diff --git a/test/webapp-3.0/bug6nnnn/bug60431.jsp b/test/webapp/bug6nnnn/bug60431.jsp
similarity index 100%
rename from test/webapp-3.0/bug6nnnn/bug60431.jsp
rename to test/webapp/bug6nnnn/bug60431.jsp
diff --git a/test/webapp-3.0/echo-params.jsp b/test/webapp/echo-params.jsp
similarity index 100%
rename from test/webapp-3.0/echo-params.jsp
rename to test/webapp/echo-params.jsp
diff --git a/test/webapp-3.0/el-as-literal.jsp b/test/webapp/el-as-literal.jsp
similarity index 100%
rename from test/webapp-3.0/el-as-literal.jsp
rename to test/webapp/el-as-literal.jsp
diff --git a/test/webapp-3.0/el-method.jsp b/test/webapp/el-method.jsp
similarity index 100%
rename from test/webapp-3.0/el-method.jsp
rename to test/webapp/el-method.jsp
diff --git a/test/webapp-3.0/el-misc-no-quote-attribute-el.jsp b/test/webapp/el-misc-no-quote-attribute-el.jsp
similarity index 100%
rename from test/webapp-3.0/el-misc-no-quote-attribute-el.jsp
rename to test/webapp/el-misc-no-quote-attribute-el.jsp
diff --git a/test/webapp-3.0/el-misc-with-quote-attribute-el.jsp b/test/webapp/el-misc-with-quote-attribute-el.jsp
similarity index 100%
rename from test/webapp-3.0/el-misc-with-quote-attribute-el.jsp
rename to test/webapp/el-misc-with-quote-attribute-el.jsp
diff --git a/test/webapp-3.0/index.html b/test/webapp/index.html
similarity index 100%
rename from test/webapp-3.0/index.html
rename to test/webapp/index.html
diff --git a/test/webapp-3.0/jsp/pageContext1.jsp b/test/webapp/jsp/pageContext1.jsp
similarity index 100%
rename from test/webapp-3.0/jsp/pageContext1.jsp
rename to test/webapp/jsp/pageContext1.jsp
diff --git a/test/webapp-3.0/jsp/pageContext2.jsp b/test/webapp/jsp/pageContext2.jsp
similarity index 100%
rename from test/webapp-3.0/jsp/pageContext2.jsp
rename to test/webapp/jsp/pageContext2.jsp
diff --git a/test/webapp-3.0/script-expr.jsp b/test/webapp/script-expr.jsp
similarity index 100%
rename from test/webapp-3.0/script-expr.jsp
rename to test/webapp/script-expr.jsp
diff --git a/test/webapp-3.0/tld-versions.jsp b/test/webapp/tld-versions.jsp
similarity index 100%
rename from test/webapp-3.0/tld-versions.jsp
rename to test/webapp/tld-versions.jsp
diff --git a/test/webapp-3.0/welcome-files/index.jsp b/test/webapp/welcome-files/index.jsp
similarity index 100%
rename from test/webapp-3.0/welcome-files/index.jsp
rename to test/webapp/welcome-files/index.jsp
diff --git a/test/webapp-3.0/welcome-files/sub/.gitignore b/test/webapp/welcome-files/sub/.gitignore
similarity index 100%
rename from test/webapp-3.0/welcome-files/sub/.gitignore
rename to test/webapp/welcome-files/sub/.gitignore


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


[tomcat] 04/11: Polish. Align i18n with 8.5.x

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0eb525f09bcfa231a0e89c4796a0e17dbe82d09f
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 10:48:35 2019 +0100

    Polish. Align i18n with 8.5.x
---
 java/org/apache/catalina/connector/CoyoteAdapter.java   |  8 +++-----
 .../apache/catalina/connector/LocalStrings.properties   |  4 ++--
 .../catalina/connector/LocalStrings_es.properties       |  2 +-
 .../catalina/connector/LocalStrings_fr.properties       | 10 ++++++++++
 .../catalina/connector/LocalStrings_ja.properties       | 10 ++++++++++
 .../catalina/connector/LocalStrings_ru.properties       | 17 +++++++++++++++++
 6 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 2f42ef1..882ca47 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -109,8 +109,7 @@ public class CoyoteAdapter implements Adapter {
     /**
      * The string manager for this package.
      */
-    protected static final StringManager sm =
-        StringManager.getManager(Constants.Package);
+    protected static final StringManager sm = StringManager.getManager(CoyoteAdapter.class);
 
 
     /**
@@ -268,8 +267,7 @@ public class CoyoteAdapter implements Adapter {
         Response response = (Response) res.getNote(ADAPTER_NOTES);
 
         if (request == null) {
-            throw new IllegalStateException(
-                    "Dispatch may only happen on an existing request.");
+            throw new IllegalStateException(sm.getString("coyoteAdapter.nullRequest"));
         }
         boolean comet = false;
         boolean success = true;
@@ -374,7 +372,7 @@ public class CoyoteAdapter implements Adapter {
         } catch (Throwable t) {
             ExceptionUtils.handleThrowable(t);
             success = false;
-            log.error(sm.getString("coyoteAdapter.service"), t);
+            log.error(sm.getString("coyoteAdapter.asyncDispatch"), t);
         } finally {
             req.getRequestProcessor().setWorkerThreadName(null);
             // Recycle the wrapper request and response
diff --git a/java/org/apache/catalina/connector/LocalStrings.properties b/java/org/apache/catalina/connector/LocalStrings.properties
index 6aee67a..c432a9a 100644
--- a/java/org/apache/catalina/connector/LocalStrings.properties
+++ b/java/org/apache/catalina/connector/LocalStrings.properties
@@ -16,14 +16,14 @@
 cometEvent.nullRequest=The event object has been recycled and is no longer associated with a request
 
 coyoteAdapter.accesslogFail=Exception while attempting to add an entry to the access log
+coyoteAdapter.asyncDispatch=Exception while processing an asynchronous request
 coyoteAdapter.authenticate=Authenticated user [{0}] provided by connector
 coyoteAdapter.authorize=Authorizing user [{0}] using Tomcat''s Realm
 coyoteAdapter.checkRecycled.request=Encountered a non-recycled request and recycled it forcedly.
 coyoteAdapter.checkRecycled.response=Encountered a non-recycled response and recycled it forcedly.
 coyoteAdapter.debug=The variable [{0}] has value [{1}]
+coyoteAdapter.nullRequest=An asynchronous dispatch may only happen on an existing request
 coyoteAdapter.parsePathParam=Unable to parse the path parameters using encoding [{0}]. The path parameters in the URL will be ignored.
-coyoteAdapter.read=The servlet did not read all available bytes during the processing of the read event
-coyoteAdapter.service=An exception or error occurred in the container during the request processing
 
 coyoteConnector.MapperRegistration=register Mapper: {0}
 coyoteConnector.cannotRegisterProtocol=Cannot register MBean for the Protocol
diff --git a/java/org/apache/catalina/connector/LocalStrings_es.properties b/java/org/apache/catalina/connector/LocalStrings_es.properties
index 82ed8c4..872cc69 100644
--- a/java/org/apache/catalina/connector/LocalStrings_es.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_es.properties
@@ -16,9 +16,9 @@
 cometEvent.nullRequest=El objeto de evento ha sido reciclado y ya no está asociado con este requerimiento
 
 coyoteAdapter.accesslogFail=Excepción al intentar añadir una entrada al historial de acceso
+coyoteAdapter.checkRecycled.response=Se encontró una respuesta no reciclable y se crecicló a la fuerza
 coyoteAdapter.debug=La variable [{0}] tiene el valor [{1}]
 coyoteAdapter.parsePathParam=No puedo analizar los parámetros de ruta mediante la codificación [{0}]. Se ignoran los parámetros de la URL.
-coyoteAdapter.read=El servlet no leyó todos los bytes disponibles durante el procesamiento del evento de lectura
 
 coyoteConnector.MapperRegistration=Mapeador de registro: {0}
 coyoteConnector.cannotRegisterProtocol=No puedo registrar MBean para el Protocolo
diff --git a/java/org/apache/catalina/connector/LocalStrings_fr.properties b/java/org/apache/catalina/connector/LocalStrings_fr.properties
index 4520a86..468f66c 100644
--- a/java/org/apache/catalina/connector/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_fr.properties
@@ -13,6 +13,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+coyoteAdapter.accesslogFail=Exception lors d'une tentative d'ajout d'une entrée au journal d'accès (access log)
+coyoteAdapter.asyncDispatch=Exception lors du traitement d'une requête asynchrone
+coyoteAdapter.authenticate=L''utilisateur authentifié [{0}] a été fourni par le connecteur
+coyoteAdapter.authorize=Autorisation de l''utilisateur [{0}] en utilisant le Realm de Tomcat
+coyoteAdapter.checkRecycled.request=Trouvé une requête non recyclée dont le recyclage a été forcé
+coyoteAdapter.checkRecycled.response=Trouvé une réponse non recyclée, et forcé son recyclage
+coyoteAdapter.debug=La variable [{0}] a la valeur [{1}]
+coyoteAdapter.nullRequest=Un dispatch asynchrone peut seulement se produire sur une requête existante
+coyoteAdapter.parsePathParam=Impossible de parser les paramètres du chemin en utilisant l''encodage [{0}]. Les paramètres du chemin (path) dans le URL seront ignorés.
+
 coyoteConnector.cannotRegisterProtocol=Impossible d''enregistrer le MBean pour le Protocol
 coyoteConnector.protocolHandlerDestroyFailed=La destruction du gestionnaire de protocole a échoué
 coyoteConnector.protocolHandlerInitializationFailed=L''initialisation du gestionnaire de protocole a échoué
diff --git a/java/org/apache/catalina/connector/LocalStrings_ja.properties b/java/org/apache/catalina/connector/LocalStrings_ja.properties
index 7f7ecd7..d03828c 100644
--- a/java/org/apache/catalina/connector/LocalStrings_ja.properties
+++ b/java/org/apache/catalina/connector/LocalStrings_ja.properties
@@ -13,6 +13,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+coyoteAdapter.accesslogFail=アクセスログにエントリを追加する際の例外
+coyoteAdapter.asyncDispatch=非同期リクエストの処理中の例外
+coyoteAdapter.authenticate=コネクターから認証済みユーザー [{0}] を取得しました。
+coyoteAdapter.authorize=Tomcat のRealmでユーザー [{0}] を認証します。
+coyoteAdapter.checkRecycled.request=リサイクルされていないリクエストに遭遇しました。強制的にリサイクルしました。
+coyoteAdapter.checkRecycled.response=リサイクルされていないレスポンスが発生、強制的にリサイクルされました。
+coyoteAdapter.debug=変数[{0}]に値[{1}]があります
+coyoteAdapter.nullRequest=非同期ディスパッチは、既存のリクエストでのみ発生する可能性があります
+coyoteAdapter.parsePathParam=エンコード[{0}]を使用してパスパラメータを解析できません。 URLのパスパラメータは無視されます。
+
 coyoteConnector.cannotRegisterProtocol=そのプロトコルにMBeanを登録できません
 coyoteConnector.protocolHandlerDestroyFailed=プロトコルハンドラの廃棄に失敗しました
 coyoteConnector.protocolHandlerInitializationFailed=プロトコルハンドラの初期化に失敗しました
diff --git a/java/org/apache/catalina/connector/LocalStrings_ru.properties b/java/org/apache/catalina/connector/LocalStrings_ru.properties
new file mode 100644
index 0000000..5f7d005
--- /dev/null
+++ b/java/org/apache/catalina/connector/LocalStrings_ru.properties
@@ -0,0 +1,17 @@
+# 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.
+
+coyoteAdapter.debug=Переменная [{0}] имеет значение [{1}]
+coyoteAdapter.parsePathParam=Невозможно разобрать параметры пути используя кодировку [{0}]. Параметры будут проигнорированы.


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


[tomcat] 06/11: Back-port performance improvement for setting current thread name

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 4e88cfc6b868f2af5d84b6ef9e76f74b4b1d754d
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 10:59:52 2019 +0100

    Back-port performance improvement for setting current thread name
---
 java/org/apache/catalina/connector/CoyoteAdapter.java | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 02e5fbf..5245e84 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -81,6 +81,16 @@ public class CoyoteAdapter implements Adapter {
         Boolean.parseBoolean(System.getProperty("org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH", "false"));
 
 
+    private static final ThreadLocal<String> THREAD_NAME =
+            new ThreadLocal<String>() {
+
+                @Override
+                protected String initialValue() {
+                    return Thread.currentThread().getName();
+                }
+
+    };
+
     // ----------------------------------------------------------- Constructors
 
 
@@ -273,7 +283,7 @@ public class CoyoteAdapter implements Adapter {
         boolean success = true;
         AsyncContextImpl asyncConImpl = request.getAsyncContextInternal();
 
-        req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName());
+        req.getRequestProcessor().setWorkerThreadName(THREAD_NAME.get());
 
         try {
             if (!request.isAsync() && !comet) {
@@ -428,10 +438,11 @@ public class CoyoteAdapter implements Adapter {
         boolean async = false;
         boolean postParseSuccess = false;
 
+        req.getRequestProcessor().setWorkerThreadName(THREAD_NAME.get());
+
         try {
             // Parse and set Catalina and configuration specific
             // request parameters
-            req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName());
             postParseSuccess = postParseRequest(req, request, res, response);
             if (postParseSuccess) {
                 //check valves if we support async


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


[tomcat] 02/11: Align version specific tests with 8.5.x

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 3d96f3b2c846c440cea65de95ae0f504459c89a9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 23 22:34:25 2019 +0100

    Align version specific tests with 8.5.x
---
 test/org/apache/jasper/compiler/TestJspConfig.java |  2 +-
 test/org/apache/jasper/compiler/TestValidator.java | 27 +++++++++++++++-
 test/webapp-2.2/WEB-INF/web.xml                    |  4 +--
 test/webapp-2.3/WEB-INF/web.xml                    |  4 +--
 test/webapp-2.4/WEB-INF/web.xml                    |  4 +--
 test/webapp-2.5/WEB-INF/web.xml                    |  4 +--
 .../web.xml => webapp-3.0/WEB-INF/listener.tld}    | 30 ++++++++----------
 .../web.xml => webapp-3.0/WEB-INF/tags11.tld}      | 36 ++++++++++++----------
 .../web.xml => webapp-3.0/WEB-INF/tags12.tld}      | 36 ++++++++++++----------
 .../web.xml => webapp-3.0/WEB-INF/tags20.tld}      | 36 ++++++++++++----------
 .../web.xml => webapp-3.0/WEB-INF/tags21.tld}      | 36 ++++++++++++----------
 test/{webapp-2.5 => webapp-3.0}/WEB-INF/web.xml    | 15 +++++----
 test/{webapp => webapp-3.0}/el-as-literal.jsp      |  0
 test/{webapp => webapp-3.0}/tld-versions.jsp       |  0
 .../WEB-INF/web.xml                                |  4 +--
 test/webapp-fragments/WEB-INF/web.xml              |  4 +--
 test/webapp-servletsecurity/WEB-INF/web.xml        |  4 +--
 test/webapp-servletsecurity2/WEB-INF/web.xml       |  4 +--
 .../src/main/webapp/WEB-INF/web.xml                |  4 +--
 19 files changed, 147 insertions(+), 107 deletions(-)

diff --git a/test/org/apache/jasper/compiler/TestJspConfig.java b/test/org/apache/jasper/compiler/TestJspConfig.java
index 48e3833..510e5b0 100644
--- a/test/org/apache/jasper/compiler/TestJspConfig.java
+++ b/test/org/apache/jasper/compiler/TestJspConfig.java
@@ -92,7 +92,7 @@ public class TestJspConfig extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp");
+            new File("test/webapp-3.0");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/org/apache/jasper/compiler/TestValidator.java b/test/org/apache/jasper/compiler/TestValidator.java
index 15ec1fc..dfdda0a 100644
--- a/test/org/apache/jasper/compiler/TestValidator.java
+++ b/test/org/apache/jasper/compiler/TestValidator.java
@@ -51,6 +51,31 @@ public class TestValidator extends TomcatBaseTest {
     }
 
     @Test
+    public void testTldVersions22() throws Exception {
+        Tomcat tomcat = getTomcatInstance();
+
+        File appDir =
+            new File("test/webapp-2.2");
+        // app dir is relative to server home
+        tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
+
+        tomcat.start();
+
+        ByteChunk res = getUrl("http://localhost:" + getPort() +
+                "/test/tld-versions.jsp");
+
+        String result = res.toString();
+
+        Assert.assertTrue(result.indexOf("<p>${'00-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>#{'01-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>${'02-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>#{'03-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>${'04-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>#{'05-hello world'}</p>") > 0);
+        Assert.assertTrue(result.indexOf("<p>${'06-hello world'}</p>") > 0);
+    }
+
+    @Test
     public void testTldVersions23() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
@@ -130,7 +155,7 @@ public class TestValidator extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         File appDir =
-            new File("test/webapp");
+            new File("test/webapp-3.0");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());
 
diff --git a/test/webapp-2.2/WEB-INF/web.xml b/test/webapp-2.2/WEB-INF/web.xml
index cfcaccd..ad7a83d 100644
--- a/test/webapp-2.2/WEB-INF/web.xml
+++ b/test/webapp-2.2/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -29,4 +29,4 @@
     specification do not change the behaviour of applications that declared an
     earlier version of the specification.
   </description>
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-2.3/WEB-INF/web.xml b/test/webapp-2.3/WEB-INF/web.xml
index d385917..9e2373c 100644
--- a/test/webapp-2.3/WEB-INF/web.xml
+++ b/test/webapp-2.3/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -29,4 +29,4 @@
     specification do not change the behaviour of applications that declared an
     earlier version of the specification.
   </description>
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-2.4/WEB-INF/web.xml b/test/webapp-2.4/WEB-INF/web.xml
index 9d5cff6..693d7e5 100644
--- a/test/webapp-2.4/WEB-INF/web.xml
+++ b/test/webapp-2.4/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -30,4 +30,4 @@
     specification do not change the behaviour of applications that declared an
     earlier version of the specification.
   </description>
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-2.5/WEB-INF/web.xml b/test/webapp-2.5/WEB-INF/web.xml
index 6a3b374..c9c7635 100644
--- a/test/webapp-2.5/WEB-INF/web.xml
+++ b/test/webapp-2.5/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -30,4 +30,4 @@
     specification do not change the behaviour of applications that declared an
     earlier version of the specification.
   </description>
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/listener.tld
similarity index 59%
copy from test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/listener.tld
index ce466c7..457d682 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/listener.tld
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,20 +14,16 @@
   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.
--->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-  version="3.0"
-  metadata-complete="false">
+--><taglib xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+      http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
+      version="2.1">
+  <tlib-version>1.0</tlib-version>
+  <short-name>listener</short-name>
+  <uri>http://tomcat.apache.org/listener</uri>
 
-  <display-name>Tomcat Test Application</display-name>
-  <description>
-     Used as part of the Tomcat unit tests when a full web application is
-     required.
-  </description>
-
-  <absolute-ordering/>
-
-</web-app>
\ No newline at end of file
+  <listener>
+    <listener-class>org.apache.catalina.core.TesterTldListener</listener-class>
+  </listener>
+</taglib>
\ No newline at end of file
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/tags11.tld
similarity index 55%
copy from test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/tags11.tld
index ce466c7..3c7ae98 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/tags11.tld
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,20 +14,24 @@
   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.
--->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-  version="3.0"
-  metadata-complete="false">
+--><!DOCTYPE taglib
+      PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
+      "http://java.sun.com/dtd/web-jsptaglibrary_1_1.dtd">
+<taglib>
+  <tlibversion>1.0</tlibversion>
+  <jspversion>1.1</jspversion>
+  <shortname>Tags11</shortname>
+  <uri>http://tomcat.apache.org/tags11</uri>
 
-  <display-name>Tomcat Test Application</display-name>
-  <description>
-     Used as part of the Tomcat unit tests when a full web application is
-     required.
-  </description>
+  <tag>
+    <name>Echo</name>
+    <tagclass>org.apache.jasper.compiler.TestValidator$Echo</tagclass>
+    <bodycontent>empty</bodycontent>
+    <attribute>
+      <name>echo</name>
+      <required>yes</required>
+      <rtexprvalue>true</rtexprvalue>
+    </attribute>
+  </tag>
 
-  <absolute-ordering/>
-
-</web-app>
\ No newline at end of file
+</taglib>
\ No newline at end of file
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/tags12.tld
similarity index 55%
copy from test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/tags12.tld
index ce466c7..533235b 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/tags12.tld
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,20 +14,24 @@
   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.
--->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-  version="3.0"
-  metadata-complete="false">
+--><!DOCTYPE taglib
+      PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+      "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib>
+  <tlib-version>1.0</tlib-version>
+  <jsp-version>1.2</jsp-version>
+  <short-name>Tags12</short-name>
+  <uri>http://tomcat.apache.org/tags12</uri>
 
-  <display-name>Tomcat Test Application</display-name>
-  <description>
-     Used as part of the Tomcat unit tests when a full web application is
-     required.
-  </description>
+  <tag>
+    <name>Echo</name>
+    <tag-class>org.apache.jasper.compiler.TestValidator$Echo</tag-class>
+    <body-content>empty</body-content>
+    <attribute>
+      <name>echo</name>
+      <required>yes</required>
+      <rtexprvalue>true</rtexprvalue>
+    </attribute>
+  </tag>
 
-  <absolute-ordering/>
-
-</web-app>
\ No newline at end of file
+</taglib>
\ No newline at end of file
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/tags20.tld
similarity index 52%
copy from test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/tags20.tld
index ce466c7..056c484 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/tags20.tld
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,20 +14,24 @@
   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.
--->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-  version="3.0"
-  metadata-complete="false">
+--><taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+      http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
+      version="2.0">
+  <tlib-version>1.0</tlib-version>
+  <short-name>Tags20</short-name>
+  <uri>http://tomcat.apache.org/tags20</uri>
 
-  <display-name>Tomcat Test Application</display-name>
-  <description>
-     Used as part of the Tomcat unit tests when a full web application is
-     required.
-  </description>
+  <tag>
+    <name>Echo</name>
+    <tag-class>org.apache.jasper.compiler.TestValidator$Echo</tag-class>
+    <body-content>empty</body-content>
+    <attribute>
+      <name>echo</name>
+      <required>yes</required>
+      <rtexprvalue>true</rtexprvalue>
+    </attribute>
+  </tag>
 
-  <absolute-ordering/>
-
-</web-app>
\ No newline at end of file
+</taglib>
\ No newline at end of file
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/tags21.tld
similarity index 52%
copy from test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/tags21.tld
index ce466c7..4a19675 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/tags21.tld
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,20 +14,24 @@
   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.
--->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-  version="3.0"
-  metadata-complete="false">
+--><taglib xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+      http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
+      version="2.1">
+  <tlib-version>1.0</tlib-version>
+  <short-name>Tags21</short-name>
+  <uri>http://tomcat.apache.org/tags21</uri>
 
-  <display-name>Tomcat Test Application</display-name>
-  <description>
-     Used as part of the Tomcat unit tests when a full web application is
-     required.
-  </description>
+  <tag>
+    <name>Echo</name>
+    <tag-class>org.apache.jasper.compiler.TestValidator$Echo</tag-class>
+    <body-content>empty</body-content>
+    <attribute>
+      <name>echo</name>
+      <required>yes</required>
+      <rtexprvalue>true</rtexprvalue>
+    </attribute>
+  </tag>
 
-  <absolute-ordering/>
-
-</web-app>
\ No newline at end of file
+</taglib>
\ No newline at end of file
diff --git a/test/webapp-2.5/WEB-INF/web.xml b/test/webapp-3.0/WEB-INF/web.xml
similarity index 82%
copy from test/webapp-2.5/WEB-INF/web.xml
copy to test/webapp-3.0/WEB-INF/web.xml
index 6a3b374..3cab0cf 100644
--- a/test/webapp-2.5/WEB-INF/web.xml
+++ b/test/webapp-3.0/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -18,16 +18,19 @@
 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-                      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-  version="2.5">
-  <display-name>Tomcat Servlet 2.5 Tests</display-name>
+                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+  version="3.0"
+  metadata-complete="true">
+
+  <display-name>Tomcat Servlet 3.0 Tests</display-name>
   <description>
     Provides a web application used by the Tomcat unit tests to ensure that
     Tomcat meets the requirements of the current JSP and Servlet specification
-    for web applications that declare that they follow version 2.5 of the
-    Servlet specification and version 2.1 of the JSP specification. This
+    for web applications that declare that they follow version 3.0 of the
+    Servlet specification and version 2.2 of the JSP specification. This
     typically means ensuring that features introduced in later versions of the
     specification do not change the behaviour of applications that declared an
     earlier version of the specification.
   </description>
+
 </web-app>
\ No newline at end of file
diff --git a/test/webapp/el-as-literal.jsp b/test/webapp-3.0/el-as-literal.jsp
similarity index 100%
rename from test/webapp/el-as-literal.jsp
rename to test/webapp-3.0/el-as-literal.jsp
diff --git a/test/webapp/tld-versions.jsp b/test/webapp-3.0/tld-versions.jsp
similarity index 100%
rename from test/webapp/tld-versions.jsp
rename to test/webapp-3.0/tld-versions.jsp
diff --git a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml b/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
index ce466c7..0a735190 100644
--- a/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
+++ b/test/webapp-fragments-empty-absolute-ordering/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -30,4 +30,4 @@
 
   <absolute-ordering/>
 
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-fragments/WEB-INF/web.xml b/test/webapp-fragments/WEB-INF/web.xml
index 156c906..3c2bc07 100644
--- a/test/webapp-fragments/WEB-INF/web.xml
+++ b/test/webapp-fragments/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -176,4 +176,4 @@
     <lookup-name>java:comp/env/env-entry/basic</lookup-name>
   </env-entry>
 
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-servletsecurity/WEB-INF/web.xml b/test/webapp-servletsecurity/WEB-INF/web.xml
index fea216c..2f08870 100644
--- a/test/webapp-servletsecurity/WEB-INF/web.xml
+++ b/test/webapp-servletsecurity/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -45,4 +45,4 @@
     <url-pattern>/</url-pattern>
   </servlet-mapping>
 
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-servletsecurity2/WEB-INF/web.xml b/test/webapp-servletsecurity2/WEB-INF/web.xml
index 47bf7e7..4961bf9 100644
--- a/test/webapp-servletsecurity2/WEB-INF/web.xml
+++ b/test/webapp-servletsecurity2/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -40,4 +40,4 @@
       <url-pattern>/protected.jsp</url-pattern>
     </web-resource-collection>
   </security-constraint>
-</web-app>
\ No newline at end of file
+</web-app>
diff --git a/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml
index 6eb9546..944ffd5 100644
--- a/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/test/webapp-virtual-webapp/src/main/webapp/WEB-INF/web.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?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
@@ -21,4 +21,4 @@
                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version="3.0"
   metadata-complete="false">
-</web-app>
\ No newline at end of file
+</web-app>


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


[tomcat] 03/11: Disable debug logging when running cobertura

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 54c40678928d8e44f49dac1315468e5776f9f0a3
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 09:12:52 2019 +0100

    Disable debug logging when running cobertura
---
 res/cobertura/logback.xml | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/res/cobertura/logback.xml b/res/cobertura/logback.xml
new file mode 100644
index 0000000..72d947b
--- /dev/null
+++ b/res/cobertura/logback.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+<configuration>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <!-- encoders are assigned the type
+         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+    </encoder>
+  </appender>
+
+  <root level="INFO">
+    <appender-ref ref="STDOUT" />
+  </root>
+</configuration>
\ 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


[tomcat] 10/11: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63578

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 3de983433578765d52179e4b1c69ad04019673b2
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Jul 23 19:07:19 2019 +0100

    Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=63578
    
    Various fixes to return 400 responses rather than 500 responses when the
    provided request is invalid.
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 11 +++-
 .../coyote/http11/AbstractHttp11Processor.java     | 46 ++++++++++------
 .../apache/coyote/http11/LocalStrings.properties   |  4 +-
 .../connector/TestCoyoteAdapterRequestFuzzing.java | 63 +++++++++++++++++-----
 .../apache/catalina/startup/SimpleHttpClient.java  | 12 ++++-
 test/org/apache/tomcat/unittest/TesterData.java    | 37 +++++++++++++
 webapps/docs/changelog.xml                         |  8 +++
 7 files changed, 149 insertions(+), 32 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 151fb48..3813073 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -816,7 +816,16 @@ public class CoyoteAdapter implements Adapter {
             }
 
             // Look for session ID in cookies and SSL session
-            parseSessionCookiesId(req, request);
+            try {
+                parseSessionCookiesId(req, request);
+            } catch (IllegalArgumentException e) {
+                // Too many cookies
+                if (!response.isError()) {
+                    response.setError();
+                    response.sendError(400);
+                }
+                return false;
+            }
             parseSessionSslId(request);
 
             sessionID = request.getRequestedSessionId();
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Processor.java b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
index ae0bb2f..1bd0adb 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Processor.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
@@ -1313,7 +1313,7 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
 
         // Check connection header
         MessageBytes connectionValueMB = headers.getValue(Constants.CONNECTION);
-        if (connectionValueMB != null) {
+        if (connectionValueMB != null && !connectionValueMB.isNull()) {
             ByteChunk connectionValueBC = connectionValueMB.getByteChunk();
             if (findBytes(connectionValueBC, Constants.CLOSE_BYTES) != -1) {
                 keepAlive = false;
@@ -1323,17 +1323,16 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
             }
         }
 
-        MessageBytes expectMB = null;
         if (http11) {
-            expectMB = headers.getValue("expect");
-        }
-        if (expectMB != null) {
-            if (expectMB.indexOfIgnoreCase("100-continue", 0) != -1) {
-                getInputBuffer().setSwallowInput(false);
-                expectation = true;
-            } else {
-                response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
-                setErrorState(ErrorState.CLOSE_CLEAN, null);
+            MessageBytes expectMB = headers.getValue("expect");
+            if (expectMB != null && !expectMB.isNull()) {
+                if (expectMB.indexOfIgnoreCase("100-continue", 0) != -1) {
+                    getInputBuffer().setSwallowInput(false);
+                    expectation = true;
+                } else {
+                    response.setStatus(HttpServletResponse.SC_EXPECTATION_FAILED);
+                    setErrorState(ErrorState.CLOSE_CLEAN, null);
+                }
             }
         }
 
@@ -1342,7 +1341,7 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
             MessageBytes userAgentValueMB = headers.getValue("user-agent");
             // Check in the restricted list, and adjust the http11
             // and keepAlive flags accordingly
-            if(userAgentValueMB != null) {
+            if(userAgentValueMB != null && !userAgentValueMB.isNull()) {
                 String userAgentValue = userAgentValueMB.toString();
                 if (restrictedUserAgents.matcher(userAgentValue).matches()) {
                     http11 = false;
@@ -1442,8 +1441,16 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
                 } else {
                     // Not HTTP/1.1 - no Host header so generate one since
                     // Tomcat internals assume it is set
-                    hostValueMB = headers.setValue("host");
-                    hostValueMB.setBytes(uriB, uriBCStart + pos, slashPos - pos);
+                    try {
+                        hostValueMB = headers.setValue("host");
+                        hostValueMB.setBytes(uriB, uriBCStart + pos, slashPos - pos);
+                    } catch (IllegalStateException e) {
+                        // Edge case
+                        // If the request has too many headers it won't be
+                        // possible to create the host header. Ignore this as
+                        // processing won't reach the point where the Tomcat
+                        // internals expect there to be a host header.
+                    }
                 }
             } else {
                 badRequest("http11processor.request.invalidScheme");
@@ -1467,7 +1474,7 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
         if (http11) {
             transferEncodingValueMB = headers.getValue("transfer-encoding");
         }
-        if (transferEncodingValueMB != null) {
+        if (transferEncodingValueMB != null && !transferEncodingValueMB.isNull()) {
             String transferEncodingValue = transferEncodingValueMB.toString();
             // Parse the comma separated list. "identity" codings are ignored
             int startPos = 0;
@@ -1484,7 +1491,14 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
         }
 
         // Parse content-length header
-        long contentLength = request.getContentLengthLong();
+        long contentLength = -1;
+        try {
+            contentLength = request.getContentLengthLong();
+        } catch (NumberFormatException e) {
+            badRequest("http11processor.request.nonNumericContentLength");
+        } catch (IllegalArgumentException e) {
+            badRequest("http11processor.request.multipleContentLength");
+        }
         if (contentLength >= 0) {
             if (contentDelimitation) {
                 // contentDelimitation being true at this point indicates that
diff --git a/java/org/apache/coyote/http11/LocalStrings.properties b/java/org/apache/coyote/http11/LocalStrings.properties
index e41e9d2..035bf71 100644
--- a/java/org/apache/coyote/http11/LocalStrings.properties
+++ b/java/org/apache/coyote/http11/LocalStrings.properties
@@ -26,10 +26,12 @@ http11processor.regexp.error=Error parsing regular expression {0}
 http11processor.request.finish=Error finishing request
 http11processor.request.inconsistentHosts=The host specified in the request line is not consistent with the host header
 http11processor.request.invalidScheme=The HTTP request contained an absolute URI with an invalid scheme
-http11processor.request.invalidUri==The HTTP request contained an invalid URI
+http11processor.request.invalidUri=The HTTP request contained an invalid URI
 http11processor.request.invalidUserInfo=The HTTP request contained an absolute URI with an invalid userinfo
+http11processor.request.multipleContentLength=The request contained multiple content-length headers
 http11processor.request.multipleHosts=The request contained multiple host headers
 http11processor.request.noHostHeader=The HTTP/1.1 request did not provide a host header
+http11processor.request.nonNumericContentLength=The request contained a content-length header with a non-numeric value
 http11processor.request.prepare=Error preparing request
 http11processor.request.process=Error processing request
 http11processor.response.finish=Error finishing response
diff --git a/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java b/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
index 453e04a..a34adc5 100644
--- a/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
+++ b/test/org/apache/catalina/connector/TestCoyoteAdapterRequestFuzzing.java
@@ -27,11 +27,13 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameter;
 
+import static org.apache.catalina.startup.SimpleHttpClient.CRLF;
 import org.apache.catalina.Context;
 import org.apache.catalina.servlets.DefaultServlet;
 import org.apache.catalina.startup.SimpleHttpClient;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterData;
 
 /*
  * Various requests, usually originating from fuzzing, that have triggered an
@@ -41,21 +43,61 @@ import org.apache.catalina.startup.TomcatBaseTest;
 @RunWith(Parameterized.class)
 public class TestCoyoteAdapterRequestFuzzing extends TomcatBaseTest {
 
-    @Parameterized.Parameters(name = "{index}: uri[{0}], host[{1}], expected[{2}]")
+    private static final String VALUE_16K = TesterData.string('x', 16 * 1024);
+    // Default max header count is 100
+    private static final String HEADER_150 = TesterData.string("X-Tomcat-Test: a" + CRLF, 150);
+    // Default max header count is 200 (need to keep under maxHeaderCount as well)
+    private static final String COOKIE_250 = TesterData.string("Cookie: a=b;c=d;e=f;g=h" + CRLF, 75);
+
+    @Parameterized.Parameters(name = "{index}: requestline[{0}], expected[{2}]")
     public static Collection<Object[]> parameters() {
         List<Object[]> parameterSets = new ArrayList<Object[]>();
 
-        parameterSets.add(new Object[] { "/", "lÿ#", "400" } );
-        parameterSets.add(new Object[] { "*;", "", "400" } );
+        parameterSets.add(new Object[] { "GET /00 HTTP/1.1",
+                                         "Host: lÿ#" + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET *; HTTP/1.1",
+                                         "Host: localhost" + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /02 HTTP/1.1",
+                                         "Host: localhost" + CRLF +
+                                         "Content-Length: \u00A0" + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /03 HTTP/1.1",
+                                         "Content-Length: 1" + CRLF +
+                                         "Content-Length: 1" + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /04 HTTP/1.1",
+                                         "Transfer-Encoding: " + VALUE_16K + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /05 HTTP/1.1",
+                                         "Expect: " + VALUE_16K + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /06 HTTP/1.1",
+                                         "Connection: " + VALUE_16K + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /07 HTTP/1.1",
+                                         "User-Agent: " + VALUE_16K + CRLF,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /08 HTTP/1.1",
+                                         HEADER_150,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET http://host/09 HTTP/1.0",
+                                         HEADER_150,
+                                         "400" } );
+        parameterSets.add(new Object[] { "GET /10 HTTP/1.1",
+                                         "Host: localhost" + CRLF +
+                                         COOKIE_250,
+                                         "400" } );
 
         return parameterSets;
     }
 
     @Parameter(0)
-    public String uri;
+    public String requestLine;
 
     @Parameter(1)
-    public String host;
+    public String headers;
 
     @Parameter(2)
     public String expected;
@@ -64,6 +106,7 @@ public class TestCoyoteAdapterRequestFuzzing extends TomcatBaseTest {
     @Test
     public void doTest() throws Exception {
         Tomcat tomcat = getTomcatInstance();
+        tomcat.getConnector().setAttribute("restrictedUserAgents", "value-not-important");
 
         File appDir = new File("test/webapp");
         Context ctxt = tomcat.addContext("", appDir.getAbsolutePath());
@@ -72,20 +115,15 @@ public class TestCoyoteAdapterRequestFuzzing extends TomcatBaseTest {
 
         tomcat.start();
 
-        String request =
-                "GET " + uri + " HTTP/1.1" + SimpleHttpClient.CRLF +
-                "Host: " + host + SimpleHttpClient.CRLF +
-                 SimpleHttpClient.CRLF;
-
         Client client = new Client(tomcat.getConnector().getLocalPort());
-        client.setRequest(new String[] {request});
+        client.setRequest(new String[] {requestLine + CRLF, headers + CRLF});
 
         client.connect();
         client.processRequest();
 
         // Expected response
         String line = client.getResponseLine();
-        Assert.assertTrue(line, line.startsWith("HTTP/1.1 " + expected + " "));
+        Assert.assertTrue(line + CRLF + client.getResponseBody(), line.startsWith("HTTP/1.1 " + expected + " "));
     }
 
 
@@ -93,6 +131,7 @@ public class TestCoyoteAdapterRequestFuzzing extends TomcatBaseTest {
 
         public Client(int port) {
             setPort(port);
+            setRequestPause(0);
         }
 
         @Override
diff --git a/test/org/apache/catalina/startup/SimpleHttpClient.java b/test/org/apache/catalina/startup/SimpleHttpClient.java
index 7e33c76..dd02566 100644
--- a/test/org/apache/catalina/startup/SimpleHttpClient.java
+++ b/test/org/apache/catalina/startup/SimpleHttpClient.java
@@ -28,6 +28,7 @@ import java.io.Writer;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.SocketAddress;
+import java.net.SocketException;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
@@ -305,8 +306,15 @@ public abstract class SimpleHttpClient {
             else {
                 // not using content length, so just read it line by line
                 String line = null;
-                while ((line = readLine()) != null) {
-                    builder.append(line);
+                try {
+                    while ((line = readLine()) != null) {
+                        builder.append(line);
+                    }
+                } catch (SocketException e) {
+                    // Ignore
+                    // May see a SocketException if the request hasn't been
+                    // fully read when the connection is closed as that may
+                    // trigger a TCP reset.
                 }
             }
         }
diff --git a/test/org/apache/tomcat/unittest/TesterData.java b/test/org/apache/tomcat/unittest/TesterData.java
new file mode 100644
index 0000000..fbdc72a
--- /dev/null
+++ b/test/org/apache/tomcat/unittest/TesterData.java
@@ -0,0 +1,37 @@
+/*
+ *  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.
+ */
+package org.apache.tomcat.unittest;
+
+public class TesterData {
+
+    public static String string(char c, int count) {
+        StringBuilder sb = new StringBuilder(count);
+        for (int i = 0; i < count; i++) {
+            sb.append(c);
+        }
+        return sb.toString();
+    }
+
+
+    public static String string(String str, int count) {
+        StringBuilder sb = new StringBuilder(str.length() * count);
+        for (int i = 0; i < count; i++) {
+            sb.append(str);
+        }
+        return sb.toString();
+    }
+}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 948b825..a262706 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -60,6 +60,14 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 7.0.97 (violetagg)">
+  <subsection name="Coyote">
+    <changelog>
+      <fix>
+        <bug>63578</bug>: Improve handling of invalid requests so that 400
+        responses are returned to the client rather than 500 responses. (markt)
+      </fix>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 7.0.96 (violetagg)">
   <subsection name="Catalina">


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


[tomcat] 07/11: Polish. Align with 8.5.x. Re-order and clean-up. No functional change.

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 49e01f938c8beda0ebb65cb9e8bd1840e08bb3c9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 11:03:59 2019 +0100

    Polish. Align with 8.5.x. Re-order and clean-up. No functional change.
---
 java/org/apache/catalina/connector/CoyoteAdapter.java | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 5245e84..1420dd2 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -279,6 +279,7 @@ public class CoyoteAdapter implements Adapter {
         if (request == null) {
             throw new IllegalStateException(sm.getString("coyoteAdapter.nullRequest"));
         }
+
         boolean comet = false;
         boolean success = true;
         AsyncContextImpl asyncConImpl = request.getAsyncContextInternal();
@@ -427,7 +428,6 @@ public class CoyoteAdapter implements Adapter {
 
             // Set query string encoding
             req.getParameters().setQueryStringEncoding(connector.getURIEncoding());
-
         }
 
         if (connector.getXpoweredBy()) {
@@ -472,8 +472,8 @@ public class CoyoteAdapter implements Adapter {
                         request.setFilterChain(null);
                     }
                 }
-
             }
+
             if (request.isAsync()) {
                 async = true;
                 Throwable throwable =
@@ -686,14 +686,14 @@ public class CoyoteAdapter implements Adapter {
         // If the processor has set the scheme (AJP does this, HTTP does this if
         // SSL is enabled) use this to set the secure flag as well. If the
         // processor hasn't set it, use the settings from the connector
-        if (! req.scheme().isNull()) {
-            // use processor specified scheme to determine secure state
-            request.setSecure(req.scheme().equals("https"));
-        } else {
-            // use connector scheme and secure configuration, (defaults to
+        if (req.scheme().isNull()) {
+            // Use connector scheme and secure configuration, (defaults to
             // "http" and false respectively)
             req.scheme().setString(connector.getScheme());
             request.setSecure(connector.getSecure());
+        } else {
+            // Use processor specified scheme to determine secure state
+            request.setSecure(req.scheme().equals("https"));
         }
 
         // At this point the Host header has been processed.
@@ -1419,8 +1419,6 @@ public class CoyoteAdapter implements Adapter {
      * @param len Length
      */
     protected static void copyBytes(byte[] b, int dest, int src, int len) {
-        for (int pos = 0; pos < len; pos++) {
-            b[pos + dest] = b[pos + src];
-        }
+        System.arraycopy(b, src, b, dest, len);
     }
 }


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


[tomcat] 11/11: Align with 8.5.x to fix failing test

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7bbfa2c5b3fe75958266d44d2e496730d96647aa
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 12:23:40 2019 +0100

    Align with 8.5.x to fix failing test
---
 .../catalina/core/TestSwallowAbortedUploads.java   | 47 ++++++++++------------
 1 file changed, 22 insertions(+), 25 deletions(-)

diff --git a/test/org/apache/catalina/core/TestSwallowAbortedUploads.java b/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
index 650e81d..b8f71ed 100644
--- a/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
+++ b/test/org/apache/catalina/core/TestSwallowAbortedUploads.java
@@ -39,6 +39,7 @@ import org.junit.Test;
 
 import org.apache.catalina.Context;
 import org.apache.catalina.Wrapper;
+import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.SimpleHttpClient;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
@@ -49,7 +50,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
 
     private static Log log = LogFactory.getLog(TestSwallowAbortedUploads.class);
 
-    /**
+    /*
      * Test whether size limited uploads correctly handle connection draining.
      */
     public Exception doAbortedUploadTest(AbortedUploadClient client, boolean limited,
@@ -67,7 +68,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
         return ex;
     }
 
-    /**
+    /*
      * Test whether aborted POST correctly handle connection draining.
      */
     public Exception doAbortedPOSTTest(AbortedPOSTClient client, int status,
@@ -127,7 +128,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
         AbortedUploadClient client = new AbortedUploadClient();
         Exception ex = doAbortedUploadTest(client, true, false);
         Assert.assertTrue("Limited upload with swallow disabled does not generate client exception",
-                   ex != null && ex instanceof java.net.SocketException);
+                   ex instanceof java.net.SocketException);
         client.reset();
     }
 
@@ -173,7 +174,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
         AbortedPOSTClient client = new AbortedPOSTClient();
         Exception ex = doAbortedPOSTTest(client, HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE, false);
         Assert.assertTrue("Limited upload with swallow disabled does not generate client exception",
-                   ex != null && ex instanceof java.net.SocketException);
+                   ex instanceof java.net.SocketException);
         client.reset();
     }
 
@@ -227,15 +228,12 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
         private static final String URI = "/uploadAborted";
         private static final String servletName = "uploadAborted";
         private static final int limitSize = 100;
-        private static final int hugeSize = 2000000;
+        private static final int hugeSize = 10000000;
 
-        private boolean init;
         private Context context;
 
         private synchronized void init(boolean limited, boolean swallow)
                 throws Exception {
-            if (init)
-                return;
 
             Tomcat tomcat = getTomcatInstance();
             context = tomcat.addContext("", TEMP_DIR);
@@ -254,10 +252,12 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
             context.addServletMapping(URI, servletName);
             context.setSwallowAbortedUploads(swallow);
 
-            tomcat.start();
-            setPort(tomcat.getConnector().getLocalPort());
+            Connector c = tomcat.getConnector();
+            c.setMaxPostSize(2 * hugeSize);
+            c.setProperty("maxSwallowSize", Integer.toString(hugeSize));
 
-            init = true;
+            tomcat.start();
+            setPort(c.getLocalPort());
         }
 
         private Exception doRequest(boolean limited, boolean swallow) {
@@ -294,7 +294,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
                         "ASCII");
 
                 request = new String[] { "POST http://localhost:" + getPort() + URI + " HTTP/1.1" + CRLF
-                        + "Host: localhost" + CRLF
+                        + "Host: localhost:" + getPort() + CRLF
                         + "Connection: close" + CRLF
                         + "Content-Type: multipart/form-data; boundary=" + boundary + CRLF
                         + "Content-Length: " + content.length() + CRLF
@@ -322,9 +322,9 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
 
         private static final long serialVersionUID = 1L;
 
-        private int status = 200;
+        private final int status;
 
-        public void setStatus(int status) {
+        public AbortedPOSTServlet(int status) {
             this.status = status;
         }
 
@@ -348,30 +348,27 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
 
         private static final String URI = "/uploadAborted";
         private static final String servletName = "uploadAborted";
-        private static final int hugeSize = 2000000;
+        private static final int hugeSize = 10000000;
 
-        private boolean init;
         private Context context;
 
         private synchronized void init(int status, boolean swallow)
                 throws Exception {
-            if (init)
-                return;
 
             Tomcat tomcat = getTomcatInstance();
             context = tomcat.addContext("", TEMP_DIR);
-            AbortedPOSTServlet servlet = new AbortedPOSTServlet();
-            servlet.setStatus(status);
-            Tomcat.addServlet(context, servletName,
-                              servlet);
+            AbortedPOSTServlet servlet = new AbortedPOSTServlet(status);
+            Tomcat.addServlet(context, servletName, servlet);
             context.addServletMapping(URI, servletName);
             context.setSwallowAbortedUploads(swallow);
 
             tomcat.start();
 
-            setPort(tomcat.getConnector().getLocalPort());
+            Connector c = tomcat.getConnector();
+            c.setMaxPostSize(2 * hugeSize);
+            c.setProperty("maxSwallowSize", Integer.toString(hugeSize));
 
-            init = true;
+            setPort(c.getLocalPort());
         }
 
         private Exception doRequest(int status, boolean swallow) {
@@ -390,7 +387,7 @@ public class TestSwallowAbortedUploads extends TomcatBaseTest {
                 String content = new String(body);
 
                 request = new String[] { "POST http://localhost:" + getPort() + URI + " HTTP/1.1" + CRLF
-                        + "Host: localhost" + CRLF
+                        + "Host: localhost:" + getPort() + CRLF
                         + "Connection: close" + CRLF
                         + "Content-Length: " + content.length() + CRLF
                         + CRLF


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


[tomcat] 05/11: Polish. Align with 8.5.x. Spacing, Javadoc. No functional change.

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 81b3bf2a377b495bac9fef2c3a01360a5b7c3df1
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 10:55:35 2019 +0100

    Polish. Align with 8.5.x. Spacing, Javadoc. No functional change.
---
 .../apache/catalina/connector/CoyoteAdapter.java   | 137 ++++++++++++---------
 1 file changed, 78 insertions(+), 59 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 882ca47..02e5fbf 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -143,8 +143,8 @@ public class CoyoteAdapter implements Adapter {
      * @return false to indicate an error, expected or not
      */
     @Override
-    public boolean event(org.apache.coyote.Request req,
-            org.apache.coyote.Response res, SocketStatus status) {
+    public boolean event(org.apache.coyote.Request req, org.apache.coyote.Response res,
+            SocketStatus status) {
 
         Request request = (Request) req.getNote(ADAPTER_NOTES);
         Response response = (Response) res.getNote(ADAPTER_NOTES);
@@ -272,7 +272,9 @@ public class CoyoteAdapter implements Adapter {
         boolean comet = false;
         boolean success = true;
         AsyncContextImpl asyncConImpl = request.getAsyncContextInternal();
+
         req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName());
+
         try {
             if (!request.isAsync() && !comet) {
                 // Error or timeout
@@ -301,13 +303,14 @@ public class CoyoteAdapter implements Adapter {
             // if the application doesn't define one)?
             if (!request.isAsyncDispatching() && request.isAsync() &&
                     response.isErrorReportRequired()) {
-                connector.getService().getContainer().getPipeline().getFirst().invoke(request, response);
+                connector.getService().getContainer().getPipeline().getFirst().invoke(
+                        request, response);
             }
 
             if (request.isAsyncDispatching()) {
-                connector.getService().getContainer().getPipeline().getFirst().invoke(request, response);
-                Throwable t = (Throwable) request.getAttribute(
-                        RequestDispatcher.ERROR_EXCEPTION);
+                connector.getService().getContainer().getPipeline().getFirst().invoke(
+                        request, response);
+                Throwable t = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
                 if (t != null) {
                     asyncConImpl.setErrorState(t, true);
                 }
@@ -390,19 +393,14 @@ public class CoyoteAdapter implements Adapter {
     }
 
 
-    /**
-     * Service method.
-     */
     @Override
-    public void service(org.apache.coyote.Request req,
-                        org.apache.coyote.Response res)
-        throws Exception {
+    public void service(org.apache.coyote.Request req, org.apache.coyote.Response res)
+            throws Exception {
 
         Request request = (Request) req.getNote(ADAPTER_NOTES);
         Response response = (Response) res.getNote(ADAPTER_NOTES);
 
         if (request == null) {
-
             // Create objects
             request = connector.createRequest();
             request.setCoyoteRequest(req);
@@ -418,8 +416,7 @@ public class CoyoteAdapter implements Adapter {
             res.setNote(ADAPTER_NOTES, response);
 
             // Set query string encoding
-            req.getParameters().setQueryStringEncoding
-                (connector.getURIEncoding());
+            req.getParameters().setQueryStringEncoding(connector.getURIEncoding());
 
         }
 
@@ -438,9 +435,11 @@ public class CoyoteAdapter implements Adapter {
             postParseSuccess = postParseRequest(req, request, res, response);
             if (postParseSuccess) {
                 //check valves if we support async
-                request.setAsyncSupported(connector.getService().getContainer().getPipeline().isAsyncSupported());
+                request.setAsyncSupported(
+                        connector.getService().getContainer().getPipeline().isAsyncSupported());
                 // Calling the container
-                connector.getService().getContainer().getPipeline().getFirst().invoke(request, response);
+                connector.getService().getContainer().getPipeline().getFirst().invoke(
+                        request, response);
 
                 if (request.isComet()) {
                     if (!response.isClosed() && !response.isError()) {
@@ -493,6 +492,7 @@ public class CoyoteAdapter implements Adapter {
                     req.action(ActionCode.POST_REQUEST , null);
                 }
             }
+
         } catch (IOException e) {
             // Ignore
         } finally {
@@ -574,8 +574,7 @@ public class CoyoteAdapter implements Adapter {
             res.setNote(ADAPTER_NOTES, response);
 
             // Set query string encoding
-            req.getParameters().setQueryStringEncoding
-                (connector.getURIEncoding());
+            req.getParameters().setQueryStringEncoding(connector.getURIEncoding());
         }
 
         try {
@@ -594,8 +593,7 @@ public class CoyoteAdapter implements Adapter {
                 }
             }
             if (!logged) {
-                connector.getService().getContainer().logAccess(
-                        request, response, time, true);
+                connector.getService().getContainer().logAccess(request, response, time, true);
             }
         } catch (Throwable t) {
             ExceptionUtils.handleThrowable(t);
@@ -653,19 +651,30 @@ public class CoyoteAdapter implements Adapter {
 
     // ------------------------------------------------------ Protected Methods
 
-
     /**
-     * Parse additional request parameters.
+     * Perform the necessary processing after the HTTP headers have been parsed
+     * to enable the request/response pair to be passed to the start of the
+     * container pipeline for processing.
+     *
+     * @param req      The coyote request object
+     * @param request  The catalina request object
+     * @param res      The coyote response object
+     * @param response The catalina response object
+     *
+     * @return <code>true</code> if the request should be passed on to the start
+     *         of the container pipeline, otherwise <code>false</code>
+     *
+     * @throws IOException If there is insufficient space in a buffer while
+     *                     processing headers
+     * @throws ServletException If the supported methods of the target servlet
+     *                          cannot be determined
      */
-    protected boolean postParseRequest(org.apache.coyote.Request req,
-                                       Request request,
-                                       org.apache.coyote.Response res,
-                                       Response response)
-            throws Exception {
+    protected boolean postParseRequest(org.apache.coyote.Request req, Request request,
+            org.apache.coyote.Response res, Response response) throws Exception {
 
-        // XXX the processor may have set a correct scheme and port prior to this point,
-        // in ajp13 protocols don't make sense to get the port from the connector...
-        // otherwise, use connector configuration
+        // If the processor has set the scheme (AJP does this, HTTP does this if
+        // SSL is enabled) use this to set the secure flag as well. If the
+        // processor hasn't set it, use the settings from the connector
         if (! req.scheme().isNull()) {
             // use processor specified scheme to determine secure state
             request.setSecure(req.scheme().equals("https"));
@@ -676,9 +685,6 @@ public class CoyoteAdapter implements Adapter {
             request.setSecure(connector.getSecure());
         }
 
-        // FIXME: the code below doesn't belongs to here,
-        // this is only have sense
-        // in Http11, not in ajp13..
         // At this point the Host header has been processed.
         // Override if the proxyPort/proxyHost are set
         String proxyName = connector.getProxyName();
@@ -761,13 +767,14 @@ public class CoyoteAdapter implements Adapter {
 
         while (mapRequired) {
             // This will map the the latest version by default
-            connector.getMapper().map(serverName, decodedURI, version,
-                                      request.getMappingData());
+            connector.getMapper().map(serverName, decodedURI,
+                    version, request.getMappingData());
             request.setContext((Context) request.getMappingData().context);
             request.setWrapper((Wrapper) request.getMappingData().wrapper);
 
-            // If there is no context at this point, it is likely no ROOT context
-            // has been deployed
+            // If there is no context at this point, either this is a 404
+            // because no ROOT context has been deployed or the URI was invalid
+            // so no context could be mapped.
             if (request.getContext() == null) {
                 res.setStatus(404);
                 res.setMessage("Not found");
@@ -815,7 +822,7 @@ public class CoyoteAdapter implements Adapter {
                 // No session ID means no possibility of remap
                 if (contexts != null && sessionID != null) {
                     // Find the context associated with the session
-                    for (int i = (contexts.length); i > 0; i--) {
+                    for (int i = contexts.length; i > 0; i--) {
                         Context ctxt = (Context) contexts[i - 1];
                         if (ctxt.getManager().findSession(sessionID) != null) {
                             // We found a context. Is it the one that has
@@ -946,9 +953,9 @@ public class CoyoteAdapter implements Adapter {
         }
 
         // Set the authorization type
-        String authtype = req.getAuthType().toString();
-        if (authtype != null) {
-            request.setAuthType(authtype);
+        String authType = req.getAuthType().toString();
+        if (authType != null) {
+            request.setAuthType(authType);
         }
     }
 
@@ -959,8 +966,8 @@ public class CoyoteAdapter implements Adapter {
      * interested in the session ID that will be in this form. Other parameters
      * can safely be ignored.
      *
-     * @param req
-     * @param request
+     * @param req The Coyote request object
+     * @param request The Servlet request object
      */
     protected void parsePathParameters(org.apache.coyote.Request req,
             Request request) {
@@ -1059,15 +1066,14 @@ public class CoyoteAdapter implements Adapter {
     /**
      * Look for SSL session ID if required. Only look for SSL Session ID if it
      * is the only tracking method enabled.
+     *
+     * @param request The Servlet request object
      */
     protected void parseSessionSslId(Request request) {
         if (request.getRequestedSessionId() == null &&
                 SSL_ONLY.equals(request.getServletContext()
                         .getEffectiveSessionTrackingModes()) &&
                         request.connector.secure) {
-            // TODO Is there a better way to map SSL sessions to our session ID?
-            // TODO The request.getAttribute() will cause a number of other SSL
-            //      attribute to be populated. Is this a performance concern?
             String sessionId = (String) request.getAttribute(SSLSupport.SESSION_ID_KEY);
             if (sessionId != null) {
                 request.setRequestedSessionId(sessionId);
@@ -1079,6 +1085,8 @@ public class CoyoteAdapter implements Adapter {
 
     /**
      * Parse session id in Cookie.
+     *
+     * @param request The Servlet request object
      */
     protected void parseSessionCookiesId(org.apache.coyote.Request req, Request request) {
 
@@ -1133,9 +1141,12 @@ public class CoyoteAdapter implements Adapter {
 
     /**
      * Character conversion of the URI.
+     *
+     * @param uri MessageBytes object containing the URI
+     * @param request The Servlet request object
+     * @throws IOException if a IO exception occurs sending an error to the client
      */
-    protected void convertURI(MessageBytes uri, Request request)
-        throws Exception {
+    protected void convertURI(MessageBytes uri, Request request) throws Exception {
 
         ByteChunk bc = uri.getByteChunk();
         int length = bc.getLength();
@@ -1183,6 +1194,8 @@ public class CoyoteAdapter implements Adapter {
 
     /**
      * Character conversion of the a US-ASCII MessageBytes.
+     *
+     * @param mb The MessageBytes instance containing the bytes that should be converted to chars
      */
     protected void convertMB(MessageBytes mb) {
 
@@ -1209,13 +1222,13 @@ public class CoyoteAdapter implements Adapter {
 
 
     /**
-     * Normalize URI.
-     * <p>
-     * This method normalizes "\", "//", "/./" and "/../". This method will
-     * return false when trying to go above the root, or if the URI contains
-     * a null byte.
+     * This method normalizes "\", "//", "/./" and "/../".
      *
      * @param uriMB URI to be normalized
+     *
+     * @return <code>false</code> if normalizing this URI would require going
+     *         above the root, or if the URI contains a null byte, otherwise
+     *         <code>true</code>
      */
     public static boolean normalize(MessageBytes uriMB) {
 
@@ -1321,13 +1334,14 @@ public class CoyoteAdapter implements Adapter {
 
 
     /**
-     * Check that the URI is normalized following character decoding.
-     * <p>
-     * This method checks for "\", 0, "//", "/./" and "/../". This method will
-     * return false if sequences that are supposed to be normalized are still
-     * present in the URI.
+     * Check that the URI is normalized following character decoding. This
+     * method checks for "\", 0, "//", "/./" and "/../".
      *
      * @param uriMB URI to be checked (should be chars)
+     *
+     * @return <code>false</code> if sequences that are supposed to be
+     *         normalized are still present in the URI, otherwise
+     *         <code>true</code>
      */
     public static boolean checkNormalize(MessageBytes uriMB) {
 
@@ -1387,6 +1401,11 @@ public class CoyoteAdapter implements Adapter {
     /**
      * Copy an array of bytes to a different position. Used during
      * normalization.
+     *
+     * @param b The bytes that should be copied
+     * @param dest Destination offset
+     * @param src Source offset
+     * @param len Length
      */
     protected static void copyBytes(byte[] b, int dest, int src, int len) {
         for (int pos = 0; pos < len; pos++) {


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


[tomcat] 09/11: Refactor to reduce duplication

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit aaa63d2f25b3d3f367d91674d25c32de037d3e39
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 11:35:52 2019 +0100

    Refactor to reduce duplication
---
 .../coyote/http11/AbstractHttp11Processor.java     | 48 +++++++---------------
 1 file changed, 15 insertions(+), 33 deletions(-)

diff --git a/java/org/apache/coyote/http11/AbstractHttp11Processor.java b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
index 615172e..ae0bb2f 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Processor.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
@@ -1358,20 +1358,10 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
             hostValueMB = headers.getUniqueValue("host");
         } catch (IllegalArgumentException iae) {
             // Multiple Host headers are not permitted
-            // 400 - Bad request
-            response.setStatus(400);
-            setErrorState(ErrorState.CLOSE_CLEAN, null);
-            if (getLog().isDebugEnabled()) {
-                getLog().debug(sm.getString("http11processor.request.multipleHosts"));
-            }
+            badRequest("http11processor.request.multipleHosts");
         }
         if (http11 && hostValueMB == null) {
-            // 400 - Bad request
-            response.setStatus(400);
-            setErrorState(ErrorState.CLOSE_CLEAN, null);
-            if (getLog().isDebugEnabled()) {
-                getLog().debug(sm.getString("http11processor.request.noHostHeader"));
-            }
+            badRequest("http11processor.request.noHostHeader");
         }
 
         // Check for an absolute-URI less the query string which has already
@@ -1419,11 +1409,7 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
                             // Strictly there needs to be a check for valid %nn
                             // encoding here but skip it since it will never be
                             // decoded because the userinfo is ignored
-                            response.setStatus(400);
-                            setErrorState(ErrorState.CLOSE_CLEAN, null);
-                            if (getLog().isDebugEnabled()) {
-                                getLog().debug(sm.getString("http11processor.request.invalidUserInfo"));
-                            }
+                            badRequest("http11processor.request.invalidUserInfo");
                             break;
                         }
                     }
@@ -1449,11 +1435,7 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
                                 // The requirements of RFC 7230 are being
                                 // applied. If the host header and the request
                                 // line do not agree, trigger a 400 response.
-                                response.setStatus(400);
-                                setErrorState(ErrorState.CLOSE_CLEAN, null);
-                                if (getLog().isDebugEnabled()) {
-                                    getLog().debug(sm.getString("http11processor.request.inconsistentHosts"));
-                                }
+                                badRequest("http11processor.request.inconsistentHosts");
                             }
                         }
                     }
@@ -1464,24 +1446,15 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
                     hostValueMB.setBytes(uriB, uriBCStart + pos, slashPos - pos);
                 }
             } else {
-                response.setStatus(400);
-                setErrorState(ErrorState.CLOSE_CLEAN, null);
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug(sm.getString("http11processor.request.invalidScheme"));
-                }
+                badRequest("http11processor.request.invalidScheme");
             }
-
         }
 
         // Validate the characters in the URI. %nn decoding will be checked at
         // the point of decoding.
         for (int i = uriBC.getStart(); i < uriBC.getEnd(); i++) {
             if (!httpParser.isAbsolutePathRelaxed(uriB[i])) {
-                response.setStatus(400);
-                setErrorState(ErrorState.CLOSE_CLEAN, null);
-                if (getLog().isDebugEnabled()) {
-                    getLog().debug(sm.getString("http11processor.request.invalidUri"));
-                }
+                badRequest("http11processor.request.invalidUri");
                 break;
             }
         }
@@ -1563,6 +1536,15 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
     }
 
 
+    private void badRequest(String errorKey) {
+        response.setStatus(400);
+        setErrorState(ErrorState.CLOSE_CLEAN, null);
+        if (getLog().isDebugEnabled()) {
+            getLog().debug(sm.getString(errorKey));
+        }
+    }
+
+
     /**
      * Connector implementation specific request preparation. Ideally, this will
      * go away in the future.


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


[tomcat] 08/11: Back-port performance optimization for path params

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 8086f27d1c290063334761200c39ddebddcc14de
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 24 11:19:03 2019 +0100

    Back-port performance optimization for path params
---
 java/org/apache/catalina/connector/CoyoteAdapter.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 1420dd2..151fb48 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -988,6 +988,11 @@ public class CoyoteAdapter implements Adapter {
 
         ByteChunk uriBC = req.decodedURI().getByteChunk();
         int semicolon = uriBC.indexOf(';', 0);
+        // Performance optimisation. Return as soon as it is known there are no
+        // path parameters;
+        if (semicolon == -1) {
+            return;
+        }
 
         // What encoding to use? Some platforms, eg z/os, use a default
         // encoding that doesn't give the expected result so be explicit


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