Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-6335

String+ service property value of certain collection types causes incorrect dependency handling

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not A Bug
    • scr-2.1.24
    • None
    • Framework
    • 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.

       

       

      Attachments

        1. demo.test.zip
          6 kB
          Mark Hoffmann

        Activity

          People

            Unassigned Unassigned
            maho77 Mark Hoffmann
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: