aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (ARIES-1068) JNDI lookup performance bad when security enabled
Date Mon, 19 Feb 2018 10:10:00 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043312#comment-14043312
] 

Guillaume Nodet edited comment on ARIES-1068 at 2/19/18 10:09 AM:
------------------------------------------------------------------

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:
{code}
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);
      }
{code}

Line 422:
{code}
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);
                    }
{code}



was (Author: sgormley):
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
>            Assignee: Jeremy Hughes
>            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
(v7.6.3#76005)

Mime
View raw message