Bug 55811 - Do not parse web-fragment.xml files when empty absolute-ordering
Summary: Do not parse web-fragment.xml files when empty absolute-ordering
Status: RESOLVED FIXED
Alias: None
Product: Tomcat 7
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 7.0.47
Hardware: PC All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-22 14:45 UTC by Konstantin Kolinko
Modified: 2013-12-07 21:05 UTC (History)
0 users



Attachments

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.