[
https://issues.apache.org/jira/browse/FELIX-5315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Watkins-Harvey updated FELIX-5315:
----------------------------------------
Description:
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().
was:
In commit 878a710, 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().
> 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
> 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
(v6.3.4#6332)