diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java index 90ce128d6..45afb00f7 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java @@ -335,6 +335,12 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme internal.setRepository(this); if (isFolderBased(descriptor)) internal.setRepositoryProperty(ARTIFACT_FOLDER, Boolean.TRUE.toString()); + + //clear out the UUID if we aren't using the blobstore. + if (flatButPackedEnabled(descriptor) && internal.getProperty(ARTIFACT_UUID) != null) { + internal.setProperty(ARTIFACT_UUID, null); + } + if (descriptor instanceof SimpleArtifactDescriptor) { Map<String, String> repoProperties = ((SimpleArtifactDescriptor) descriptor).getRepositoryProperties(); for (Map.Entry<String, String> entry : repoProperties.entrySet()) { @@ -666,15 +672,15 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme } public synchronized URI getLocation(IArtifactDescriptor descriptor) { + if (flatButPackedEnabled(descriptor)) { + return getLocationForPackedButFlatArtifacts(descriptor); + } + // if the artifact has a uuid then use it String uuid = descriptor.getProperty(ARTIFACT_UUID); if (uuid != null) return blobStore.fileFor(bytesFromHexString(uuid)); - if (flatButPackedEnabled(descriptor)) { - return getLocationForPackedButFlatArtifacts(descriptor); - } - try { // if the artifact is just a reference then return the reference location if (descriptor instanceof SimpleArtifactDescriptor) { |