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

hehe ji commented on FELIX-1792:
--------------------------------

Hi Richard,

Thanks for the patch. I tried it but I got deadlock problem for the following 
situation:

Bundle71 (in repo) : Depends on Bundle72
Bundle72 v1 (in repo) : depends on bundle73
Bundle72_2 v2 (in eba)  : Depends on Bundle.invalid // This should not be 
picked up
Bundle73 (in eba) : No Dependencies

I expect bundle71, bundle71 v1 and bundle73 are installed in framework.



3XMTHREADINFO      "Thread-129" TID:0x000000000238A400, 
j9thread_t:0x000004000ABA1920, state:CW, prio=5
3XMTHREADINFO1            (native thread ID:0x6BF9, native priority:0x5, native 
policy:UNKNOWN)
3XMTHREADINFO2            (native stack address range from:0x000004000B580000, 
to:0x000004000B540000, size:0x40000)
4XESTACKTRACE          at 
java/lang/Character.toLowerCase(Character.java:4187(Compiled Code))
4XESTACKTRACE          at 
java/lang/String.compareValue(String.java:450(Compiled Code))
4XESTACKTRACE          at 
java/lang/String.compareToIgnoreCase(String.java:466(Compiled Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResourceImpl$1.compare(ResourceImpl.java:55(Compiled
 Code))
4XESTACKTRACE          at java/util/TreeMap.cmp(TreeMap.java:4472(Compiled 
Code))
4XESTACKTRACE          at java/util/TreeMap.get(TreeMap.java:4344(Compiled 
Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResourceImpl.getSymbolicName(ResourceImpl.java:107(Compiled
 Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResourceImpl.hashCode(ResourceImpl.java:84(Compiled
 Code))
4XESTACKTRACE          at java/util/HashMap.getEntry(HashMap.java:506(Compiled 
Code))
4XESTACKTRACE          at 
java/util/HashMap.containsKey(HashMap.java:432(Compiled Code))
4XESTACKTRACE          at java/util/HashSet.contains(HashSet.java:138(Compiled 
Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResolverImpl.resolve(ResolverImpl.java:158(Compiled
 Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResolverImpl.resolve(ResolverImpl.java:199(Compiled
 Code))
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResolverImpl.resolve(ResolverImpl.java:199)
4XESTACKTRACE          at 
org/apache/felix/bundlerepository/ResolverImpl.resolve(ResolverImpl.java:133)

Please let me know if you need more information.
Thanks
Emily

> 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: bundlerepository-1.4.2
>         Environment: n/a
>            Reporter: david small99
>            Assignee: Richard S. Hall
>             Fix For: bundlerepository-1.6.0
>
>
> 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