Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
"ClassUtils.getResources(FACES_CONFIG_RESOURCE, this)" will return an iterator over all "META-INF/faces-config.xml" resources that were found. The search is carried out by starting at WebAppClassLoader and making an Enumeration of all resources with the given name that WebAppClassLoader and all its parents see. The jars placed into WEB-INF/lib will be seen by the WebAppClassLoader AND AppClassLoader, thus resulting in the same jars (the ones that have "META-INF/faces-config.xml") being placed on the list twice.
This is fine, but things break when FacesConfigurator.feedClassloaderConfigurations() does not check for duplicate URLs and just blindly registers everything from these jars twice.
One of the effects of this bug is that all phase listeners get registered and therefore executed twice.