From ab0d45d7d94c51bce1ac0d5563496dfdd78418a9 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Tue, 15 Sep 2009 11:37:54 +0000 Subject: [PATCH] bug fixed for placeholder data sets: Making code more robust in null cases and do not list placeholders SVN: 12594 --- .../data/CommonExternalDataColDefKind.java | 4 +++- .../bo/datasetlister/DatasetLister.java | 22 ++++++++++++++----- .../bo/datasetlister/DatasetRecord.java | 4 ++-- .../IDatasetListingFullQuery.java | 2 +- .../datasetlister/IDatasetListingQuery.java | 2 +- 5 files changed, 23 insertions(+), 11 deletions(-) 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 8598a59b9c4..831bab04ea4 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 f6440ba4bc9..12800e92980 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 9339a0160b5..b0bb13ae2a5 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 1f3459ae603..5a506bc2377 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 5f41ff9d4a7..1e8d1a71b6e 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); /** -- GitLab