diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java index e2749b5f011bd9c2075b630413c69e3bdf2429a6..e2a78dc8a0d86cbbfcbb2c9f94986123ac1920aa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java @@ -83,6 +83,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetShareId; import ch.systemsx.cisd.openbis.generic.shared.translator.DataStoreTranslator; + import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; @@ -539,15 +540,23 @@ public class DatasetLister extends AbstractLister implements IDatasetLister List<DatasetRecord> dataSets = null; - if (archivingStatus != null && presentInArchive != null) + if (archivingStatus != null) { - dataSets = query.getDatasetsByDataStoreIdWithArchivingStatusAndPressentInArchive(dataStoreID, archivingStatus.name(), presentInArchive); - } else if (archivingStatus == null) + String statusAsString = archivingStatus.name(); + if (presentInArchive != null) + { + dataSets = query.getDatasetsByDataStoreIdWithArchivingStatusAndPressentInArchive(dataStoreID, + statusAsString, presentInArchive); + } else + { + dataSets = query.getDatasetsByDataStoreIdWithArchivingStatus(dataStoreID, statusAsString); + } + } else if (presentInArchive != null) { dataSets = query.getDatasetsByDataStoreIdWithPressentInArchive(dataStoreID, presentInArchive); - } else if (presentInArchive == null) + } else { - dataSets = query.getDatasetsByDataStoreIdWithArchivingStatus(dataStoreID, archivingStatus.name()); + throw new UserFailureException("Neither archiving status nor present in archive flag are specified."); } return orderByCode(enrichDatasets(dataSets, datasetFetchOptions));