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

Carsten Ziegeler updated FELIX-367:
-----------------------------------

    Fix Version/s: 1.0.0

> Autogenerated unbind method may incorrectly drop service
> --------------------------------------------------------
>
>                 Key: FELIX-367
>                 URL: https://issues.apache.org/jira/browse/FELIX-367
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven SCR Plugin
>            Reporter: Felix Meschberger
>            Assignee: Carsten Ziegeler
>             Fix For: 1.0.0
>
>
> The SCR plugin may generate an unbind method for references with unary 
> cardinality if no such method is available in the component class. The 
> implementation of this method just sets the internal field to null.
> According to the Declarative Services Specification, section 112.5.10, Bound 
> Service Replacement, the replacement of a service reference with unary 
> cardinality occurrs in the following order:
>    1. the new (replacement) service is bound by calling the bind method
>    2. the old (outgoing) service is unbound by calling the unbind method
> In the case of the current implementation unbinding the old (outgoing) 
> service will actually drop the new (replacement) service. A simple fix to 
> this issue is to check whether the service being unbound is actually the one 
> currently bound, hence
>     private <Type> <name>
>     protected void unbind<Name>(<Type> <name>) {
>         if (this.<name> == <name>) {
>             this.<name> = null;
>         }
>     }
> This is not currently an issue but become an issue when fixing FELIX-366.

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

Reply via email to