[ https://issues.apache.org/jira/browse/FELIX-4417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13892218#comment-13892218 ]
Victor Antonovich edited comment on FELIX-4417 at 2/5/14 3:19 PM: ------------------------------------------------------------------ Failed test case output log attached. was (Author: kapyar): Failed test case output log. > 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)