Bug 55811 - Do not parse web-fragment.xml files when empty absolute-ordering
Do not parse web-fragment.xml files when empty absolute-ordering
Product: Tomcat 7
Classification: Unclassified
Component: Catalina
PC All
: P2 enhancement (vote)
: ---
Assigned To: Tomcat Developers Mailing List
Depends on:
  Show dependency tree
Reported: 2013-11-22 14:45 UTC by Konstantin Kolinko
Modified: 2013-12-07 21:05 UTC (History)
0 users


Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Kolinko 2013-11-22 14:45:40 UTC
ContextConfig.webConfig() does the following:

1. Scans for web fragments
> Map<String,WebXml> fragments = processJarsForWebFragments();

This method
a) returns a list of all JAR files, not ignored by jarsToSkip options
b) parses "META-INF/web-fragment.xml" files when they are present

2. Filters and sorts them according to ordering
> orderedFragments = WebXml.orderWebFragments(webXml, fragments, sContext);

3. Uses the ordered set of fragments to look for SCI declarations
> processServletContainerInitializers(orderedFragments);

4. Uses the ordered set of fragments to
- scan them for annotated classes
- merge into main web.xml

5. Uses the original list of web fragments to scan for resources.
> processResourceJARs(resourceJars);

I am saying that parsing of the fragments (step 1-b)) can be skipped when the web application is configured with an empty ordered-fragments element and web.xml validation is turned off (strict servlet compliance is off).

Note that metadata-complete=true alone does not allow to skip that parsing, because we need fragment names to perform the ordering.

It seems that skipping that parsing when validation is on would be a bad idea. We are still using those JARs for resources and thus I think we should validate them.
Comment 1 Mark Thomas 2013-12-07 21:05:07 UTC
Fixed in 8.0.x and 7.0.x for 8.0.0-RC6 and 7.0.48 respectively.