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

German Vega edited comment on FELIX-5050 at 9/22/15 8:59 AM:
-------------------------------------------------------------

After some debugging, the problem comes from propagation of properties from the 
ConfigurationHandler to the ProvidedServiceHandler.

The method ConfigurationHandler.propagate(Dictionary,Dictionary) invoke the 
provided service handler to first remove all properties and then adds again the 
properties with the new values. This is ok, as this is the only API available 
provided by the ProvidedServiceHandler to update the service registration.

The problem is that the method ProvidedService.deleteProperties(Dictionary) 
just delete the property defintion from its table without verifying if it is a 
declared service property (with a specified injected field). When the property 
is again added by the propagation the update seems to work, but the information 
about the injected fields is lost.

When the field is accessed, the ProvidedServiceHandler  just returns null 
because it is not regsitered with any property


was (Author: gvega):
After some debugging, the problem comes from propagation of properties from the 
ConfigurationHandler to the ProvidedServiceHandler.

The method ConfigurationHandler.propagate(Dictionary newProps, Dictionary 
oldProps) invoke the provided service handler to first remove all properties 
and then adds again the properties with the new values. This is ok, as this is 
the only API available provided by the ProvidedServiceHandler to update the 
service registration.

The problem is that the method ProvidedService.deleteProperties(Dictionary 
props) just delete the property defintion from its table without verifying if 
it is a declared service property (with a specified injected filed). When the 
property is again added by the propagation the update seems to work, but the 
information about the injected fields is lost.

When the filed is accessed, the ProvidedServiceHandler  just returns null 
because it is not regsitered with any property

> Reconfiguring a component with mixing configurable properties and service 
> properties injected fields produces an error
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-5050
>                 URL: https://issues.apache.org/jira/browse/FELIX-5050
>             Project: Felix
>          Issue Type: Bug
>          Components: iPOJO
>    Affects Versions: ipojo-runtime-1.12.1
>            Reporter: German Vega
>         Attachments: bugs.ipojo.property.reconfiguration.zip
>
>
> When a component using BOTH configurable properties and service properties is 
> reconfigured, the value of the field for the service property is not 
> correctly injected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to