Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
JNDI lookups can be slow if Java security is enabled, specifically the getService methods take time.
If the services are cached then the lookup only has to be performed once, but care has to be taken that the context performing the service lookup has the required permissions to do so, and so cache buckets for each context will be necessary.
Also to prevent a leak, when contexts drop from scope, the associated caches need to be cleared out.
The ServiceTrackerCustomizer for JNDI already had some caching ability, and the provided patch extends this to avoid looking up Services where possible.