[ 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.