felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Victor Antonovich (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FELIX-4417) Circular references detected but not resolved if one of the references in the cycle has optional cardinality
Date Wed, 05 Feb 2014 14:20:10 GMT

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

Victor Antonovich updated FELIX-4417:
-------------------------------------

    Attachment: CircularReferenceTest-trunk.patch

Integration test case attached.

> 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
>
>
> 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)

Mime
View raw message