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

Victor Antonovich commented on FELIX-4417:
------------------------------------------

By the way, attached test case is passing successfully if definitions of A and 
B components in integration_test_circular.xml are swapped (B is before A).

> Circular references detected but not resolved if one of the references in the 
> cycle has optional cardinality
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-4417
>                 URL: https://issues.apache.org/jira/browse/FELIX-4417
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>    Affects Versions: scr-1.8.2
>            Reporter: Victor Antonovich
>         Attachments: CircularReferenceTest-trunk.patch, 
> CircularReferenceTest.zip
>
>
> Looks like current Apache Felix SCR implementation doesn't conform fully to 
> Declarative Services Specification, which says 
> (http://www.osgi.org/download/r4v43/osgi.cmpn-4.3.0.pdf, 112.3.7):
> "Circular references must be detected by SCR when it attempts to satisfy 
> component configurations and SCR must fail to satisfy the references involved 
> in the cycle and log an error message with the Log Service, if present. 
> However, if one of the references in the cycle has optional cardinality SCR 
> must break the cycle. The reference with the optional cardinality can be 
> satisfied and bound to zero target services. Therefore the cycle is broken 
> and the other references may be satisfied."
> In case of two components, A and B, where A is delayed with 1..1 static 
> reference to B, and B is immediate with 0..n dynamic reference to A, Felix 
> SCR should:
> 1) activate B with dynamic reference to A satisfied and bound to zero services
> 2) activate A with satisfied static reference to B
> 3) bind dynamic reference to B in component A
> But it seems current Felix SCR implementation can't handle this kind of 
> circular dependency correctly and is failing with message "Circular reference 
> detected".



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to