diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java index 8598a59b9c472f9369c830edcdc7441cf4164778..831bab04ea4c0806e14c440377a7e8b6c002af7e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java @@ -23,6 +23,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimpleYesNoRenderer; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; /** @@ -163,7 +164,8 @@ public enum CommonExternalDataColDefKind implements IColumnDefinitionKind<Extern @Override public String tryGetValue(ExternalData entity) { - return entity.getFileFormatType().getCode(); + FileFormatType fileFormatType = entity.getFileFormatType(); + return fileFormatType == null ? null : fileFormatType.getCode(); } }), 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 f6440ba4bc900c94f14b2a3b0d5478e07de6f26c..12800e929800133ce0665da0898d292bc293d2db 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 @@ -24,8 +24,10 @@ import it.unimi.dsi.fastutil.longs.LongSet; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import ch.rinn.restrictions.Friend; @@ -89,11 +91,11 @@ public class DatasetLister implements IDatasetLister private final Long2ObjectMap<DataStore> dataStores = new Long2ObjectOpenHashMap<DataStore>(); - private final Long2ObjectMap<FileFormatType> fileFormatTypes = - new Long2ObjectOpenHashMap<FileFormatType>(); + private final Map<Long, FileFormatType> fileFormatTypes = + new HashMap<Long, FileFormatType>(); - private final Long2ObjectMap<LocatorType> locatorTypes = - new Long2ObjectOpenHashMap<LocatorType>(); + private final Map<Long, LocatorType> locatorTypes = + new HashMap<Long, LocatorType>(); public static IDatasetLister create(IDAOFactory daoFactory, String baseIndexURL) { @@ -404,8 +406,7 @@ public class DatasetLister implements IDatasetLister private ExternalData createPrimaryDataset(DatasetRecord record) { ExternalData dataset = createBasicDataset(record); - dataset.setComplete(BooleanOrUnknown.tryToResolve(BooleanOrUnknown - .valueOf(record.is_complete))); + dataset.setComplete(resolve(record.is_complete)); dataset.setDataProducerCode(escapeHtml(record.data_producer_code)); dataset.setDataStore(dataStores.get(record.dast_id)); dataset.setDerived(record.is_derived); @@ -431,6 +432,15 @@ public class DatasetLister implements IDatasetLister return dataset; } + private Boolean resolve(String booleanRepresentative) + { + if (booleanRepresentative == null) + { + return null; + } + return BooleanOrUnknown.tryToResolve(BooleanOrUnknown.valueOf(booleanRepresentative)); + } + private ExternalData createBasicDataset(DatasetRecord record) { ExternalData dataset = new ExternalData(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetRecord.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetRecord.java index 9339a0160b53236da500ea043a87d3926e335b10..b0bb13ae2a555676796252da040c31be844fa2fe 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetRecord.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetRecord.java @@ -37,9 +37,9 @@ public class DatasetRecord extends CodeRecord public String location; - public long ffty_id; + public Long ffty_id; - public long loty_id; + public Long loty_id; public String is_complete; // maps to BooleanOrUnknown } \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java index 1f3459ae60396f963659e913d8d12fa50c54b136..5a506bc2377c6fc278030a46056ce43036f0a31d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java @@ -48,7 +48,7 @@ public interface IDatasetListingFullQuery extends IDatasetListingQuery * <p> * <em>Do not call directly, call via {@link IDatasetSetListingQuery}</em> */ - @Select(sql = "select * from data left outer join external_data on data.id = external_data.data_id where data.id = any(?{1})", parameterBindings = + @Select(sql = "select * from data join external_data on data.id = external_data.data_id where data.id = any(?{1})", parameterBindings = { LongSetMapper.class }, fetchSize = FETCH_SIZE) public DataIterator<DatasetRecord> getDatasets(LongSet entityIds); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java index 5f41ff9d4a7761a825d132d550ad77312aac7cde..1e8d1a71b6e6162b6b1593f744474fd9de934df3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java @@ -44,7 +44,7 @@ public interface IDatasetListingQuery extends TransactionQuery, IPropertyListing /** * Returns the datasets for the given experiment id. */ - @Select(sql = "select * from data left outer join external_data on data.id = external_data.data_id where data.expe_id=?{1}", fetchSize = FETCH_SIZE) + @Select(sql = "select * from data join external_data on data.id = external_data.data_id where data.expe_id=?{1}", fetchSize = FETCH_SIZE) public DataIterator<DatasetRecord> getDatasetsForExperiment(long experimentId); /**