Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Bug
-
scr-2.1.24
-
None
-
None
Description
I think it is an SCR problem, because the problem occurs with Equinox or Felix as framework.
Someone changes a ServiceRegistration for a service A, that will be updated using setProperties, as soon something changes.
One of the property values for the registration is String+ that should accept a collection.
Another component K should be activated or deactivated, depending on a reference binding to A with a certain target filter for A's properties
I experienced that K is always activated correctly. But it will not de-activate, if the target filter for A does not match anymore, when the registration properties are changed using certain collection types like e.g. Collections#unmodifiableList as property value.
Changing the value to an ordinary list, everything behaves correct.
I attached a bnd based test, that illustrates the problem. There are 3 tests that are working as expected and 3 tests failing. I deactivated two of these failing tests, because feiling just one test casuses an invalid state in the framework.
I am not sure, if the rejection of certain collection types eventually by intention. But it has a large impact to the behavior of the framework.
At least ther should be an warning or exception, that tells the user, that he uses invalid types.