Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
org.apache.felix.dependencymanager-r8
-
None
Description
In some cases, the whiteboard pattern remove callbacks aren't called by the depenency manager.
See attached test class. Here some sort of "cyclic" dependency is made between 'Shop' -> 'Item' -> 'Shop'.
See the log when starting and stopping a bundle with the attached Activator.java for an example.
Some investigation pointed us to ComponentImpl line 1191:
if (dc.isRequired()) {
invokeCallbackSafe(dc, EventType.REMOVED, e);
}
When removing the condition for the required dependency, the REMOVED callbacks are called!
Why is the above condition written in the ComponentImpl.java? Can you please investigate this?