Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Kaegi2010-04-05 03:21:15 +0000
committerSimon Kaegi2010-04-05 03:21:15 +0000
commitb015da3353259a307d9eb666af1f86cd73f9ab0f (patch)
tree8e796038f0fea236a6fa855166b1b1ca31a71754 /bundles/org.eclipse.equinox.p2.engine/src
parent15bef173615f2a2371821db08f5bba8c19d75881 (diff)
downloadrt.equinox.p2-b015da3353259a307d9eb666af1f86cd73f9ab0f.tar.gz
rt.equinox.p2-b015da3353259a307d9eb666af1f86cd73f9ab0f.tar.xz
rt.equinox.p2-b015da3353259a307d9eb666af1f86cd73f9ab0f.zip
Bug 308036 - Actions are not undone in proper order
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.engine/src')
-rw-r--r--bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java
index e9f6b1919..a5ffc7383 100644
--- a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java
+++ b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java
@@ -222,7 +222,9 @@ public class EngineSession {
for (ListIterator<ActionsRecord> it = actionRecords.listIterator(actionRecords.size()); it.hasPrevious();) {
ActionsRecord record = it.previous();
- ProvisioningAction[] actions = record.actions.toArray(new ProvisioningAction[record.actions.size()]);
+ List<ProvisioningAction> reversedActions = new ArrayList<ProvisioningAction>(record.actions);
+ Collections.reverse(reversedActions);
+ ProvisioningAction[] actions = reversedActions.toArray(new ProvisioningAction[record.actions.size()]);
try {
phase.undo(result, this, profile, record.operand, actions, context);
} catch (RuntimeException e) {

Back to the top