[ https://issues.apache.org/jira/browse/FELIX-5453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeroen Daanen updated FELIX-5453: --------------------------------- Description: If you have multiple aspects on a service with interface X and one of the aspects with a lower rank is removed, the service requiring service X does not get the swap callback. See the attached Activator with example code. The swap method is not called when 'aspect1' is removed. Actual output of running the activator: {noformat} Add: XImpl Swap old: XImpl Swap new: Aspect1 Swap old: Aspect1 Swap new: Aspect2 Swap old: Aspect2 Swap new: XImpl {noformat} I can imagine why swap is not called, because for ServiceRequiringX Aspect1 does not get really 'swapped' But is there any way to find out this is happening? was: If you have multiple aspects on a service with interface X and one of the aspects with a lower rank is removed, the service requiring service X does not get the swap callback. See the attached Activator with example code. The swap method is not called when 'aspect1' is removed. Output of running the activator: {noformat} Add: XImpl Swap old: XImpl Swap new: Aspect1 Swap old: Aspect1 Swap new: Aspect2 Swap old: Aspect2 Swap new: XImpl {noformat} > Swap callback not called when there are multiple aspects on a service and one > of the aspects with lower rank is removed > ----------------------------------------------------------------------------------------------------------------------- > > Key: FELIX-5453 > URL: https://issues.apache.org/jira/browse/FELIX-5453 > Project: Felix > Issue Type: Bug > Components: Dependency Manager > Affects Versions: org.apache.felix.dependencymanager-r8 > Reporter: Jeroen Daanen > Attachments: Activator.java > > > If you have multiple aspects on a service with interface X and one of the > aspects with a lower rank is removed, the service requiring service X does > not get the swap callback. > See the attached Activator with example code. > The swap method is not called when 'aspect1' is removed. > Actual output of running the activator: > {noformat} > Add: XImpl > Swap old: XImpl > Swap new: Aspect1 > Swap old: Aspect1 > Swap new: Aspect2 > Swap old: Aspect2 > Swap new: XImpl > {noformat} > I can imagine why swap is not called, because for ServiceRequiringX Aspect1 > does not get really 'swapped' But is there any way to find out this is > happening? -- This message was sent by Atlassian JIRA (v6.3.4#6332)