felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Jencks (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5315) Unexpected release of ConfigurationAdmin service in RegionConfigurationSupport
Date Tue, 02 Aug 2016 05:12:20 GMT

    [ https://issues.apache.org/jira/browse/FELIX-5315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15403363#comment-15403363

David Jencks commented on FELIX-5315:

I committed a fix in r1754817.  I'd like to verify with some experts that the fix is OK since
it involves calling bundleContext.getService(serviceRef) with a serviceReference obtained
from a different bundleContext. This seems to work and I don't see anything in the spec saying
it shouldn't but it certainly isn't a common usage.

This is a pretty egregious and serious problem, I wonder after it really is fixed if we should
immediately release 2.0.6?

> Unexpected release of ConfigurationAdmin service in RegionConfigurationSupport 
> -------------------------------------------------------------------------------
>                 Key: FELIX-5315
>                 URL: https://issues.apache.org/jira/browse/FELIX-5315
>             Project: Felix
>          Issue Type: Bug
>          Components: Configuration Admin, Declarative Services (SCR)
>    Affects Versions: scr-2.0.4
>            Reporter: James Watkins-Harvey
>            Assignee: David Jencks
>             Fix For: scr-2.0.6
> In commit 978a710, RegionConfigurationSupport has been modified to obtain the ConfigurationAdmin
service through the ConfigurationAdmin's bundle context (in getConfigAdmin(), around line
633). However, services acquired through that method are then released using the impersonated
bundle's context (for example in the finally block of configureComponentHolder(ComponentHolder),
around line 186, and the finally block of getConfigurationInfo(TargetedPID, TargetedPID, ComponentHolder,
BundleContext), around line 465).
> This cause leak of service on the ConfigurationAdmin's bundle context, as well as unexpected
early release of services on impersonated bundle contexts, causing an IllegalStateException("Configuration
Admin service has been unregistered") being thrown in ConfigurationAdminImpl#getConfigurationManager().

This message was sent by Atlassian JIRA

View raw message