From a70a08eeea7ac9bd66a476334275d12a15e75775 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Thu, 27 May 2010 12:54:31 +0000 Subject: [PATCH] LMS-1544 Fixed bug caused by incorrect dss-url. SVN: 16166 --- .../logic/FeatureVectorDatasetLoader.java | 2 +- .../server/logic/ImageDatasetLoader.java | 6 ++--- .../server/logic/PlateDatasetLoader.java | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java index f1fc3a5e4a9..5bf9a6110d3 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java @@ -100,7 +100,7 @@ class FeatureVectorDatasetLoader extends ImageDatasetLoader DataStore dataStore = externalData.getDataStore(); ExternalData parentDataset = externalData.getParents().iterator().next(); return new FeatureVectorDatasetReference(externalData.getCode(), - dataStore.getDownloadUrl(), createPlateIdentifier(parentDataset), + getDataStoreUrlFromDataStore(dataStore), createPlateIdentifier(parentDataset), extractPlateGeometry(parentDataset), externalData.getRegistrationDate(), asImageDataset(parentDataset)); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java index 2dee96c43c8..86d5a60c01d 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java @@ -65,8 +65,8 @@ class ImageDatasetLoader extends PlateDatasetLoader protected ImageDatasetReference asImageDataset(ExternalData externalData) { DataStore dataStore = externalData.getDataStore(); - return new ImageDatasetReference(externalData.getCode(), dataStore.getDownloadUrl(), - createPlateIdentifier(externalData), extractPlateGeometry(externalData), - externalData.getRegistrationDate()); + return new ImageDatasetReference(externalData.getCode(), + getDataStoreUrlFromDataStore(dataStore), createPlateIdentifier(externalData), + extractPlateGeometry(externalData), externalData.getRegistrationDate()); } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java index 891e0309cf7..3629d4b483f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java @@ -1,5 +1,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.server.logic; +import static ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants.DATA_STORE_SERVER_WEB_APPLICATION_NAME; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -7,6 +9,7 @@ import java.util.List; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.business.bo.datasetlister.IDatasetLister; import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria; @@ -225,6 +228,25 @@ class PlateDatasetLoader return sampleIds; } + protected String getDataStoreUrlFromDataStore(DataStore dataStore) + { + String datastoreUrl = dataStore.getDownloadUrl(); + // The url objained form a DataStore object is the *download* url. Convert this to the + // datastore URL + if (datastoreUrl.endsWith(DATA_STORE_SERVER_WEB_APPLICATION_NAME)) + { + datastoreUrl = + datastoreUrl.substring(0, datastoreUrl.length() + - DATA_STORE_SERVER_WEB_APPLICATION_NAME.length()); + } + if (datastoreUrl.endsWith("/")) + { + datastoreUrl = datastoreUrl.substring(0, datastoreUrl.length() - 1); + } + + return datastoreUrl; + } + protected static SampleIdentifier createSampleIdentifier(PlateIdentifier plate) { SampleOwnerIdentifier owner; -- GitLab