Hi guys,

StandardRoot does that at the moment (taken the 8.5.5 as a reference for
this mail):

for (List<WebResourceSet> list : allResources) {
    for (WebResourceSet webResourceSet : list) {
        webResourceSet.start();
    }
}

// This has to be called after the other resources have been started
// else it won't find all the matching resources
processWebInfLib();
// Need to start the newly found resources
for (WebResourceSet classResource : classResources) {
    classResource.start();
}



This works well in a plain Tomcat but suppose you configure class resources
before that method (statically or programmatically through a listener) then
the iteration over allResources iterates over classesResources and then it
is done again. Doesn't hurt much excepted this log:

14:09:57.362 [main] INFO  org.apache.catalina.util.LifecycleBase - The
start() method was called on component
[org.apache.catalina.webresources.JarResourceSet@2ee5c08d] after start()
had already been called. The second call will be ignored.

Would it be possible to modify it to be:

for (List<WebResourceSet> list : allResources) {
    for (WebResourceSet webResourceSet : list) {
        if (webResourceSet != classResources) webResourceSet.start();

    }
}

// This has to be called after the other resources have been started
// else it won't find all the matching resources
processWebInfLib();
// Need to start the newly found resources
for (WebResourceSet classResource : classResources) {
    classResource.start();
}


?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
<http://www.tomitribe.com> | JavaEE Factory
<https://javaeefactory-rmannibucau.rhcloud.com>

Reply via email to