|Summary:||TldConfig keeps an internal list of ApplicationListeners|
|Product:||Tomcat 6||Reporter:||Guillaume Sauthier <guillaume.sauthier>|
|Component:||Catalina||Assignee:||Tomcat Developers Mailing List <dev>|
|Attachments:||When the Context is stopped, clears the listeners list|
Description Guillaume Sauthier 2009-09-14 07:03:43 UTC
Created attachment 24258 [details] When the Context is stopped, clears the listeners list When a WebApp is refreshed, the following warning is displayed: "StandardContext.addApplicationListener : The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored." This is because the TldConfig instance does not react to a STOP event of the StandardContext. It should clear the list's content when the WebApp is stopped. We've encountered this bug with tomcat 6.0.20. I've checked the Tomcat7 TldConfig code to see if the issue may still be there, but I'm not sure: there is some code dealing with already registered taglib URI that may prevent the warning. So the provided patch is against tomcat6.0.x branch (but should be easy to port to trunk if there is some interest). BTW, I've checked the TldLocationsCache source code, but it is not implementing the LifecycleListener interface, so that patch cannot be applied on that file ...
Comment 1 Mark Thomas 2009-11-23 17:27:47 UTC
I found a handful of places where this was an issue in trunk. I've fixed these and will propose for backport to 6.0.x once I'm sure I have found them all.
Comment 2 Mark Thomas 2009-12-14 15:18:44 UTC
Patch proposed for 6.0.x
Comment 3 Mark Thomas 2009-12-19 18:22:12 UTC
Patch applied to 6.0.x and will be included in 6.0.21 onwards.