diff options
author | Simon Kaegi | 2010-04-05 03:21:15 +0000 |
---|---|---|
committer | Simon Kaegi | 2010-04-05 03:21:15 +0000 |
commit | b015da3353259a307d9eb666af1f86cd73f9ab0f (patch) | |
tree | 8e796038f0fea236a6fa855166b1b1ca31a71754 /bundles | |
parent | 15bef173615f2a2371821db08f5bba8c19d75881 (diff) | |
download | rt.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')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineSession.java | 4 |
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) { |