[
https://issues.apache.org/jira/browse/ARIES-1068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043312#comment-14043312
]
Simon Gormley commented on ARIES-1068:
--------------------------------------
Further minor tweak for ServiceTrackerCustomizers:
ungetService can throw an IllegalStateException if the bundle is no longer
valid, and this code needs to silently ignore this
Line 330:
try {
_callerContext.ungetService(reference);
} catch (IllegalStateException e) {
//Shouldn't matter that we get an IllegalStateException here.
if (LOGGER.isLoggable(Level.FINE)) LOGGER.log(Level.FINE,
"IllegalStateException ungetting " + reference + " from " + _callerContext);
}
Line 422:
try {
bCtx.ungetService(serviceRef);
} catch (IllegalStateException e) {
//Shouldn't matter that we get an IllegalStateException
here.
if (LOGGER.isLoggable(Level.FINE)) LOGGER.log(Level.FINE,
"CacheBundleTrackerCustomizer.removedBundle IllegalStateException ungetting " +
serviceRef + " from " + bCtx);
}
> JNDI lookup performance bad when security enabled
> -------------------------------------------------
>
> Key: ARIES-1068
> URL: https://issues.apache.org/jira/browse/ARIES-1068
> Project: Aries
> Issue Type: Bug
> Components: JNDI
> Reporter: Simon Gormley
> Priority: Critical
> Attachments: servicelookupperf.patch
>
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.2#6252)