Bug 47836 - TldConfig keeps an internal list of ApplicationListeners
TldConfig keeps an internal list of ApplicationListeners
Product: Tomcat 6
Classification: Unclassified
Component: Catalina
All All
: P2 normal (vote)
: default
Assigned To: Tomcat Developers Mailing List
Depends on:
  Show dependency tree
Reported: 2009-09-14 07:03 UTC by Guillaume Sauthier
Modified: 2009-12-19 18:22 UTC (History)
0 users

When the Context is stopped, clears the listeners list (686 bytes, patch)
2009-09-14 07:03 UTC, Guillaume Sauthier
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.