You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Henning Andersen (JIRA)" <ji...@apache.org> on 2013/02/12 12:21:13 UTC

[jira] [Updated] (FELIX-3894) Bundle Repository sometimes picks old version rather than newest

     [ https://issues.apache.org/jira/browse/FELIX-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Henning Andersen updated FELIX-3894:
------------------------------------

    Attachment: repository.xml
                TestNewest.java
    
> Bundle Repository sometimes picks old version rather than newest
> ----------------------------------------------------------------
>
>                 Key: FELIX-3894
>                 URL: https://issues.apache.org/jira/browse/FELIX-3894
>             Project: Felix
>          Issue Type: Bug
>          Components: Bundle Repository (OBR)
>    Affects Versions: bundlerepository-1.6.6
>            Reporter: Henning Andersen
>         Attachments: repository.xml, TestNewest.java
>
>
> Consider a simple case, package com.stibo.y depends on com.stibo.x, residing in bundle Y and X respectively. X is available in two versions, 1.0.3 and 1.0.4, both exporting com.stibo.x in version 1.0.
> Adding bundle Y to a resolver and asking it to resolve, OBR will more or less randomly pick one or the other version of X to satisfy Y's requirement. Which one is chosen depends on the resulting order of resources in RepositoryImpl.m_resourceSet, which in turn depends on the hashCode and the size of the hashSet.
> I will attach an example test case demonstrating this. Changing the version numbers in repository.xml you should be able to see it pick the highest version sometimes and sometimes the lowest version.
> It seems the OSGI spec is not entirely clear on how to handle this, but it is illogical to leave it depending on the HashSet implementation. In my view, the logical choice would be the bundle with the highest version number.
> Notice that ensuring micro-versions of packages is not easy for complex bundles. Also, when bugfixing is done in a released version in a branch, relying on updates to the micro version of exported packages will lead to confusion. Since the API package did not change for the bugfix, the version number of the package should not change.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira