diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java index ce3e5acbf..2c5135ac9 100644 --- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java +++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/InstallableUnitPatch.java @@ -13,6 +13,7 @@ ******************************************************************************/ package org.eclipse.equinox.internal.p2.metadata; +import java.util.Arrays; import java.util.List; import org.eclipse.equinox.internal.p2.core.helpers.CollectionUtils; import org.eclipse.equinox.p2.metadata.*; @@ -32,8 +33,20 @@ public class InstallableUnitPatch extends InstallableUnit implements IInstallabl IRequirement[] result = new IRequirement[currSize + toAdd.length]; for (int i = 0; i < currSize; ++i) result[i] = current.get(i); - System.arraycopy(toAdd, 0, result, current.size(), toAdd.length); - setRequiredCapabilities(result); + System.arraycopy(toAdd, 0, result, currSize, toAdd.length); + super.setRequiredCapabilities(result); + } + + @Override + public void setRequiredCapabilities(IRequirement[] capabilities) { + IRequirement[] result = capabilities; + if(lifeCycle != null && !Arrays.asList(capabilities).contains(lifeCycle)) { + int currSize = capabilities.length; + result = new IRequirement[currSize + 1]; + System.arraycopy(capabilities, 0, result, 0, capabilities.length); + result[currSize]=lifeCycle; + } + super.setRequiredCapabilities(result); } @Override |