diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java index b9b656889e90a5bd5fab4692f7eafcef14c4fee6..a05f5ce442bab18235712d95e5fe8e9652f77cad 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Map; import com.csvreader.CsvReader; @@ -138,25 +139,23 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements public List<ImageDatasetMetadata> listImageMetadata(String sessionToken, List<? extends IImageDatasetIdentifier> imageDatasets) { - try + ArrayList<String> datasetCodes = new ArrayList<String>(); + for (IImageDatasetIdentifier dataset : imageDatasets) + { + datasetCodes.add(dataset.getDatasetCode()); + } + Map<String, File> datasetRoots = + checkAccessAndGetRootDirectories(sessionToken, datasetCodes); + List<ImageDatasetMetadata> result = new ArrayList<ImageDatasetMetadata>(); + for (IImageDatasetIdentifier dataset : imageDatasets) { - List<ImageDatasetMetadata> result = new ArrayList<ImageDatasetMetadata>(); - for (IImageDatasetIdentifier dataset : imageDatasets) + File rootDirectoryOrNull = datasetRoots.get(dataset.getDatasetCode()); + if (rootDirectoryOrNull != null) { - result.add(extractImageMetadata(sessionToken, dataset)); + result.add(extractImageMetadata(dataset, rootDirectoryOrNull)); } - return result; - } catch (IOException ex) - { - throw wrapIOException(ex); } - } - - private ImageDatasetMetadata extractImageMetadata(String sessionToken, - IImageDatasetIdentifier dataset) throws IOException - { - File datasetRoot = checkAccessAndGetRootDirectory(sessionToken, dataset.getDatasetCode()); - return extractImageMetadata(dataset, datasetRoot); + return result; } private static ImageDatasetMetadata extractImageMetadata(IImageDatasetIdentifier dataset,