[ 
https://issues.apache.org/jira/browse/FELIX-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768484#action_12768484
 ] 

David Savage commented on FELIX-1792:
-------------------------------------

Hmmm one possible source of entropy could be the use of HashSets in the 
ResolverImpl? I recently had make a similar fix to the sigil resolver, to use 
LinkedLists vs HashSets. A cursory look at the code suggests the ResolverImpl 
performs the resolution by iterating over a number of different HashSets which 
are inherently unordered...so could lead to different graph traversals 
depending on the already selected resources? I would need to do further 
analysis to see if this is actually the case though...but thought it might be 
of use...

> Felix OBR seems to just randomly choose one of the satisifed bundles if more 
> than one bundle meets the requirement
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1792
>                 URL: https://issues.apache.org/jira/browse/FELIX-1792
>             Project: Felix
>          Issue Type: Bug
>          Components: Bundle Repository (OBR)
>    Affects Versions: felix-1.8.0
>         Environment: n/a
>            Reporter: david small99
>
> I have one bundle bundle1, which imports a package called com.obr.bundle
> Bundle1's manifest:
> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.7.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Bundle Plug-in
> Bundle-SymbolicName: com.obr.bundle1
> Bundle-Version: 1.0.0
> Export-Package: com.obr.bundle1
> Import-Package: com.obr.bundle;version="[1.2.0.999,3.2.2.bz]"
> There are two bundles in my repositories, bundler2 and bundle 3. Both of them 
> export package com.obr.bundle. Below are their manifest files.
> Bundle2
> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.7.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Bundle Plug-in
> Bundle-SymbolicName: com.obr.bundle2
> Bundle-Version: 1.0.0
> Bundle-Vendor: xxx
> Import-Package: a.b.c
> Export-Package: com.obr.bundle;version=3.2.2.blah
> Bundle3:
> Manifest-Version: 1.0
> Ant-Version: Apache Ant 1.7.0
> Bundle-ManifestVersion: 2
> Bundle-Name: Bundle Plug-in
> Bundle-SymbolicName: com.obr.bundle3
> Bundle-Version: 1.0.0
> Import-Package: a.b.c
> Export-Package: com.obr.bundle;version=3.1
> As you can see, both bundle2 and bundle3 meet the requirements of bundle1. I 
> hope the highest package version, which is bundle2, is chosen by felix obr. 
> However, sometimes bundle 3 was chosen instead of bundle2. The behaviour is 
> random.
> Am I right to say that the Felix obr runtime just picks the first bundle that 
> meets the requirements and then stop searching for any more eligible bundles?
> Thanks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to