Replying to myself with more information, but still asking for help from P2 devs, (and it’s really bad that there is so little online help/doc about some of these low-level P2, end-user visible error messages…), I traced a bit of the P2 source to determine that this error message comes up when related to this (in)famous property:
org.eclipse.equinox.p2.type.lock
Looking at my .profile after our product built using all the techniques indicated below; and using team.svn as the feature I keep trying to update:
<unit id='org.eclipse.team.svn.feature.group' version='0.7.9.I20110207-1700' singleton='false'>
<update id='org.eclipse.team.svn.feature.group' range='[0.0.0,0.7.9.I20110207-1700)' severity='0'/>
and
<iuProperties id='org.eclipse.team.svn.feature.group' version='0.7.9.I20110207-1700'>
<properties size='4'>
<property name='org.eclipse.equinox.p2.internal.inclusion.rules' value='STRICT'/>
<property name='org.eclipse.equinox.p2.type.root' value='true'/>
<property name='org.eclipse.equinox.p2.type.lock' value='3'/>
are interesting.
So, how did that type.lock value become 3? How can I help that?
(btw, what led me here are the lines of code in InstallAction (see http://grepcode.com/file/repository.grepcode.com/java/eclipse.org/3.5/org.eclipse.equinox.p2/ui/1.0.100/org/eclipse/equinox/internal/provisional/p2/ui/actions/InstallAction.java for example; the 3.6 refactoring I couldn’t follow easily):
if (alreadyInstalled.size() > 0) { // && installedIU.isSingleton()
61
IInstallableUnit installedIU = (IInstallableUnit) alreadyInstalled.iterator().next();
62
int compareTo = ius[i].getVersion().compareTo(installedIU.getVersion());
63
// If the iu is a newer version of something already installed, consider this an
64
// update request
65
if (compareTo > 0) {
66
boolean lockedForUpdate = false;
67
String value = profile.getInstallableUnitProperty(installedIU, IInstallableUnit.PROP_PROFILE_LOCKED_IU);
68
if (value != null)
69
lockedForUpdate = (Integer.parseInt(value) & IInstallableUnit.LOCK_UPDATE) == IInstallableUnit.LOCK_UPDATE;
70
if (lockedForUpdate) {
71
// Add a status telling the user that this implies an update, but the
72
// iu should not be updated
73
status.merge(PlanAnalyzer.getStatus(IStatusCodes.ALTERED_IGNORED_IMPLIED_UPDATE, ius[i]));
Thank you,
Eddie
From: Eddie Galvez
Sent: Friday, May 20, 2011 3:21 PM
To: p2-dev@xxxxxxxxxxx
Subject: P2 build product -- cannot update features contained within (continued)
Hello Paul, Brian, others,
To follow up on my original email (http://dev.eclipse.org/mhonarc/lists/p2-dev/msg04129.html) , I followed the suggestions from http://aniefer.blogspot.com/2009/07/composing-and-updating-custom-eclipse.html and http://aniefer.blogspot.com/2009/07/adt-part-2-more-like-epp.html and a bit of digging into http://dev.eclipse.org/viewcvs/viewvc.cgi/pde-build-home/examples/adt.builder/ but my latest hurdle is that, even after amending my build with a customAssembly.xml that ran the director to install the extra features:
[sbb:eclipse-ant] pre.archive:
[sbb:eclipse-ant] [echo] Executing customAssembly director installs of extra features for F:\sbxbuild\813\co\streambase\apps\ide\plugins\com.streambase.sb.studio\studio.product
[sbb:eclipse-ant]
[sbb:eclipse-ant] runDirector:
[sbb:eclipse-ant] [p2.director] Installing org.eclipse.gef.feature.group 3.6.2.v20110128-0100-777B381A4Bz06565376E32322.
[sbb:eclipse-ant] [p2.director] Operation completed in 2516 ms.
[sbb:eclipse-ant]
[sbb:eclipse-ant] runDirector:
[sbb:eclipse-ant] [p2.director] Installing org.eclipse.jdt.feature.group 3.6.2.r362_v20101117-0800-7z8XFW6FLFlmjJcvz03jyeFBLS_F.
[sbb:eclipse-ant] [p2.director] Operation completed in 2719 ms.
(etc)
I still cannot update features! Here’s how things look in the UI (notice the update buttons are disabled)…

And here’s what the P2 UI says if I try to update the SVN feature:
Cannot complete the request. See the error log for details.
Subversive SVN Team Provider (Incubation) will be ignored because it is already installed, and updates are not permitted.
As a reminder: PDE headless build, off a feature-based .product file.
Thank you,
- Eddie