Community
Participate
Working Groups
Created attachment 126244 [details] content.xml The director cannot find the IU for org.eclipse.e4.ui.tests.feature.feature.group in the repo. When I run it I get the error from the log. PW
Performing this operation through the Install UI on the very same installation works. PW
A version of the repo can (hopefully) be found in bug 265577 PW
command line: -nosplash --launcher.suppressErrors -consoleLog -flavor tooling -installIU org.eclipse.e4.ui.feature.feature.group -p2.os linux -p2.ws gtk -p2.arch x86 -profile SDKProfile -metadataRepository file:/shared/eclipse/e4/build/e4/downloads/drops/4.0.0/I20090220-0807/I20090220-0807/repository,file:/shared/eclipse/e4/build/e4/downloads/drops/4.0.0/targets/galileo-repo-m5-trans -artifactRepository file:/shared/eclipse/e4/build/e4/downloads/drops/4.0.0/I20090220-0807/I20090220-0807/repository,file:/shared/eclipse/e4/build/e4/downloads/drops/4.0.0/targets/galileo-repo-m5-trans -destination /shared/eclipse/e4/build/e4/downloads/drops/4.0.0/I20090220-0807/tests/eclipse-testing/test-eclipse/eclipse -bundlepool /shared/eclipse/e4/build/e4/downloads/drops/4.0.0/I20090220-0807/tests/eclipse-testing/test-eclipse/eclipse -vmargs -Declipse.p2.data.area=/shared/eclipse/e4/build/e4/downloads/drops/4.0.0/I20090220-0807/tests/eclipse-testing/test-eclipse/eclipse/p2 -Declipse.p2.MD5Check=false
org.eclipse.equinox.internal.provisional.p2.query.CompoundQueryable.query(Query, Collector, IProgressMonitor) has this line in it: results = queryables[i].query(query, results, subMonitor.newChild(10)); But in org.eclipse.equinox.internal.p2.director.app.Application.LocationQueryable, the collector is thrown away: public Collector query(Query query, Collector collector, IProgressMonitor monitor) { return ProvisioningHelper.getInstallableUnits(location, query, monitor); } So my IU is found in the first repo and then when the second repo is queried, the result is thrown away. This works in the UI, BTW. PW
The javadoc on Query#perform says "The collector returned must be the collector passed in." I think we are going to need to be explicit on whether or not this is required for IQueryable.query
workaround: make sure the IU you want to install is in the last repo PW
I think the LocationQueryable should be changed to: public Collector query(Query query, Collector collector, IProgressMonitor monitor) { return ProvisioningHelper.getInstallableUnits(location, query, collector, monitor); } (note the one that takes the collector). I will test this and prepare a patch.
Created attachment 126329 [details] Fix Here is a fix. Note: In the test case I use reflection to access a private method in the director application.
Created attachment 126330 [details] mylyn/context/zip
Fix released in HEAD.