[
https://issues.apache.org/jira/browse/FELIX-6335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17202413#comment-17202413
]
Tom Watson commented on FELIX-6335:
-----------------------------------
Right, I know the specification states that, but I also am pretty sure the
framework is obligated to at least make a copy of the key-value pairs out of
the dictionary into its own copy of a Dictionary/Map for the
ServiceRegistration, if for no other reason it needs to do this so that the
keys can be case insensitive for the properties it returns from
ServiceReference.getProperties() and uses to do filter matching.
But I do agree that the framework is not obligated to protect against this kind
of attack on the values of a registered service properties.
> String+ service property value of certain collection types causes incorrect
> dependency handling
> -----------------------------------------------------------------------------------------------
>
> Key: FELIX-6335
> URL: https://issues.apache.org/jira/browse/FELIX-6335
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: scr-2.1.24
> Reporter: Mark Hoffmann
> Priority: Major
> Attachments: demo.test.zip
>
>
> 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.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)