Community
Participate
Working Groups
Build Identifier: 20100617-1415 I am in the process of porting our RCP application from 3.5 to Helios 3.6. During my port I discovered that the P2 API has changed significantly and I modified my headless update code to take advantage of the new API along with the UpdateOperation class. I found that updating from a version of our application that is using 3.5 to a version that is using 3.6 works perfectly fine however once I attempt to upgrade once more to another higher version of our application that is using 3.6 I get the following status error report. !ENTRY org.eclipse.equinox.p2.operations 4 0 2010-07-12 20:19:14.135 !MESSAGE Operation details !SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2010-07-12 20:19:14.135 !MESSAGE Cannot complete the install because of a conflicting dependency. !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE Software being installed: iSymphony 2.2.0.2131 (isymphony 2.2.0.2131) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE Software currently installed: ClientRCP Plug-in 2.2.0.2130 (ClientRCP 2.2.0.2130) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2010-07-12 20:19:14.135 !MESSAGE Only one of the following can be installed at once: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE ClientRCP Plug-in 2.2.0.2130 (ClientRCP 2.2.0.2130) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE ClientRCP Plug-in 2.2.0.2131 (ClientRCP 2.2.0.2131) !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2010-07-12 20:19:14.135 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE From: iSymphony Feature 2.2.0.2131 (iSymphonyFeature.feature.group 2.2.0.2131) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE To: ClientRCP [2.2.0.2131] !SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2010-07-12 20:19:14.135 !MESSAGE Cannot satisfy dependency: !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE From: iSymphony 2.2.0.2131 (isymphony 2.2.0.2131) !SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2010-07-12 20:19:14.135 !MESSAGE To: iSymphonyFeature.feature.group [2.2.0.2131] Note that if I start with the version that contains 3.6 already I can update to my hearts content. It seems as if p2 is trying to do an install instead of a update. I have attached my update class. Please let me know if there is any additional information I can provide that may be of use in assisting me with resolving this issue? Reproducible: Always Steps to Reproduce: 1.Take a RCP application based on RCP 3.5 and upgrade it to 3.6 2.Modify headless update code to use new p2 API. 3.Upgrade application build based on RCP 3.5 to a build based on 3.6 4.Attempt another upgrade to a new build that is also based on 3.6.
Created attachment 174246 [details] Headless update code.
I tried this update with the P2 UI feature installed and i get the same status trace. Note the versions numbers have been changed since my last post. Cannot complete the install because of a conflicting dependency. Software being installed: iSymphony 2.2.0.2145 (isymphony 2.2.0.2145) Software currently installed: iSymphony Feature 2.2.0.2144 (iSymphonyFeature.feature.group 2.2.0.2144) Only one of the following can be installed at once: ClientRCP Plug-in 2.2.0.2145 (ClientRCP 2.2.0.2145) ClientRCP Plug-in 2.2.0.2144 (ClientRCP 2.2.0.2144) Cannot satisfy dependency: From: iSymphony Feature 2.2.0.2144 (iSymphonyFeature.feature.group 2.2.0.2144) To: ClientRCP [2.2.0.2144] Cannot satisfy dependency: From: iSymphony Feature 2.2.0.2145 (iSymphonyFeature.feature.group 2.2.0.2145) To: ClientRCP [2.2.0.2145] Cannot satisfy dependency: From: iSymphony 2.2.0.2145 (isymphony 2.2.0.2145) To: iSymphonyFeature.feature.group [2.2.0.2145]
From the last error message it looks like if the feature that is initially installed is not being uninstalled as part of this update process. I can see two causes to this: 1) You are not using the update operation API properly (or you are using the install API) 2) The metadata for the new version is not declared as an update of the previous version. Normally this "relationship" is declared in the metadata automatically if PDE or Tycho are being used to generate metadata.
I don't believe it is an issue with my update code however I could be wrong. I followed the P2 headless update example in the wiki and double checked my work. I also tried the update using the eclipse UI feature instead of my own code and the same status was thrown. I attached my code to this report if you would like to take a look. All my builds were exported with the PDE so it might be a possible issue with the PDE export and the metadata. If it is an issue with the metadata would I look in the artifact.xml file for the cause of the issue and if so what specifically am I looking for?
I tried running my application with the following in .options. org.eclipse.equinox.p2.engine/profileregistry/debug = true org.eclipse.equinox.p2.engine/engine/debug = true org.eclipse.equinox.p2.engine/enginesession/debug = true And the failed update simply printed out the following. [org.eclipse.equinox.p2.engine-profile registry] Mon Aug 30 14:07:26 MDT 2010 - [ModalContext] SimpleProfileRegistry.updateSelfProfile [org.eclipse.equinox.p2.engine-profile registry] Mon Aug 30 14:07:26 MDT 2010 - [ModalContext] SimpleProfileRegistry.updateRoamingProfile [org.eclipse.equinox.p2.engine-profile registry] Mon Aug 30 14:07:26 MDT 2010 - [ModalContext] SimpleProfileRegistry.updateRoamingProfile(changed=false)
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie.