Community
Participate
Working Groups
If a composite bundle exports and imports the same package things do not work as expected when the resolver chooses the composite to be the exporter of the package. When ends up happening is we incorrectly create a surrogate that has metadata to export and import the package. The resolver for the surrogate/composite framework then may choose to make the surrogate an importer or an exporter of the package. Since the surrogate is at bundle id 0 it is very likely that it will be resolved first and given preference to be the exporter. So now we have the composite bundle on the outside thinking it is the exporter of the package, and the surrogate on the inside thinking it is the exporter of the package, but meanwhile no one gets wired to the actual provider of the package, which must be from another bundle installed inside of the composite.
Created attachment 195519 [details] patch + tests Here is a patch and test for the issue. This patch applies cleanly to both 3.6 and 3.7 streams.
Considering for RC2. Will need 2 additional committer reviews.
DJ, please review also. DJ and BJ, please ping me to discuss. This is not very straight forward.
Created attachment 195620 [details] updated patch and tests Updated patch to fix copy and paste error in the test. It was using the wrong test method name for the composite bundle location. Now it justs getName() instead.
Created attachment 195623 [details] updated patch and tests Same patch but removed the extra resource files that were meant for the testcase in bug 345743.
Patch released.