felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (FELIX-1165) When restarting a bundle, the config admin reports "Configuration ... has already been delivered", and the bundle receives no configuration.
Date Fri, 14 Aug 2009 21:51:14 GMT

     [ https://issues.apache.org/jira/browse/FELIX-1165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Felix Meschberger resolved FELIX-1165.

       Resolution: Fixed
    Fix Version/s: configadmin-1.0.12

Thanks for tracking down this issue - this helped a lot.

And here is the actual way to reproduce the problem:

   * start a bundle registering a ManagedService
   * create and update configuration for the ManagedService
   * --> the ManagedService gets the configuration
   * stop the bundle unregistering the ManagedService (*)
   * start the bundle registering a ManagedService
  * --> the ManagedService does *not* get the configuration

the problem effectively is, that when the configuration is first handed to the ManagedService
through the UpdateConfiguration task, the service reference field is not set. Thus the delivered
flag is not rest on ManagedService unregistration. When the bundle is restarted and the ManagedService
registered again, the ConfigurationAdmin falsely assumes the configuration has already been

This problem does not occurr if the configuration is created *before* the ManagedService is
registered for the first time because then the ManagedServiceUpdate task is called which in
fact sets the service reference field and thus on service unregistration, the delivered flag
is reset as expected.

In Rev. 804387 I committed the fix along with a new integration test ensuring this behaviour.

Can you please verify and close this issue. Thanks.

> When restarting a bundle, the config admin reports "Configuration ... has already been
delivered", and the bundle receives no configuration.
> --------------------------------------------------------------------------------------------------------------------------------------------
>                 Key: FELIX-1165
>                 URL: https://issues.apache.org/jira/browse/FELIX-1165
>             Project: Felix
>          Issue Type: Bug
>          Components: Configuration Admin
>    Affects Versions: configadmin-1.0.1, configadmin-1.0.4, configadmin-1.0.8, configadmin-1.0.10
>         Environment: Windows XP, JDK 1.6.0_10, Felix 1.8.0, configadmin 1.0.10
>            Reporter: James Hanson
>            Assignee: Felix Meschberger
>            Priority: Minor
>             Fix For: configadmin-1.0.12
>         Attachments: sample.zip
> When restarting a bundle, the configuration admin reports "Configuration ... has already
been delivered", and the bundle receives no configuration.
> As far as I can tell this only occurs if a bundle is installed and started by the felix.auto.start.1
property in the config.properties.  If Felix is restarted and the bundle is loaded from the
cache, the problem disappears.
> Test setup:
> Create a "configurable" bundle, implement ManagedService and register as a ManagedService
with a PID from the BundleActivator start() method.
> Create a "configurator" bundle and send a configuration to the PID.
> Extract Felix and add the Felix config admin bundle to the felix.auto.start.1 property
in conf/config.properties
> Add the two new bundles to the felix.auto.start.1 property.
> Start Felix.
> Stop the "configurable" bundle, and start it again.
> * If the configuration is sent from the "configurator", the bundle receives it.
> * If felix is restarted, the problem disappears unless the felix-cache is deleted.
> This can be reproduced with felix 1.8.0 using the example at:
> http://www.dynamicjava.org/articles/osgi-compendium/configuration-admin-service
> See also bug FELIX-516.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message