diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java index 158cda52d2e21f007aff5d095bc9eaf821e3be11..fcd83e2a3a69e1b2d5320a7e8b27839969ce8b35 100644 --- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java +++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/property/SamplePropertyTranslator.java @@ -56,11 +56,14 @@ public abstract class SamplePropertyTranslator extends Map<Long, Map<String, List<Sample>>> samplePropertiesTmp = new HashMap<Long, Map<String, List<Sample>>>(); for (SamplePropertyRecord record : records) { - Map<String, List<Sample>> properties = - samplePropertiesTmp.computeIfAbsent(record.objectId, k -> new HashMap<>()); Sample sample = samples.get(record.propertyValue); - properties.computeIfAbsent(record.propertyCode, x -> new ArrayList<>()); - properties.get(record.propertyCode).add(sample); + if(sample != null) + { + Map<String, List<Sample>> properties = + samplePropertiesTmp.computeIfAbsent(record.objectId, k -> new HashMap<>()); + properties.computeIfAbsent(record.propertyCode, x -> new ArrayList<>()); + properties.get(record.propertyCode).add(sample); + } } for(Map.Entry<Long, Map<String, List<Sample>>> entry : samplePropertiesTmp.entrySet()) { diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java index 9c19f0fae51d6570432701984b71cecbd597421e..54ff31f8483bd0af8a37226e2586ceb42b538717 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateDataSetTest.java @@ -1211,7 +1211,8 @@ public class UpdateDataSetTest extends AbstractDataSetTest fetchOptions.withSampleProperties(); DataSet dataSet = v3api.getDataSets(sessionToken, Arrays.asList(dataSetPermId), fetchOptions).get(dataSetPermId); assertEquals(dataSet.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(dataSet.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); } @Test @@ -1241,7 +1242,8 @@ public class UpdateDataSetTest extends AbstractDataSetTest fetchOptions.withHistory().withAuthor(); DataSet dataSet = v3api.getDataSets(sessionToken, Arrays.asList(dataSetPermId), fetchOptions).get(dataSetPermId); assertEquals(dataSet.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(dataSet.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(dataSet.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = dataSet.getHistory(); assertEquals(history.size(), 3); diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java index 0d9f8c5aa9995d72dc788f6909a402f7e1d3d81d..a3b707013a2b6163bd820fcc8aa1fdf1a08f99bf 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateExperimentTest.java @@ -1157,8 +1157,8 @@ public class UpdateExperimentTest extends AbstractExperimentTest .get(experimentPermId); assertEquals(experiment.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(experiment.getSampleProperties().toString(), - "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); } @Test @@ -1193,8 +1193,8 @@ public class UpdateExperimentTest extends AbstractExperimentTest .get(experimentPermId); assertEquals(experiment.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(experiment.getSampleProperties().toString(), - "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(experiment.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = experiment.getHistory(); assertEquals(history.size(), 3); diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java index 44a32afc172f8fd1ae9d1189c56d13d49c84cb57..3bb6351d55c2ccb89b7414d74d3d2e5c91bab947 100644 --- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java +++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/UpdateSampleTest.java @@ -918,7 +918,8 @@ public class UpdateSampleTest extends AbstractSampleTest fetchOptions.withHistory().withAuthor(); Sample sample = v3api.getSamples(sessionToken, Arrays.asList(samplePermId), fetchOptions).get(samplePermId); assertEquals(sample.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(sample.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = sample.getHistory(); assertEquals(history.size(), 1); @@ -952,7 +953,8 @@ public class UpdateSampleTest extends AbstractSampleTest fetchOptions.withHistory().withAuthor(); Sample sample = v3api.getSamples(sessionToken, Arrays.asList(samplePermId), fetchOptions).get(samplePermId); assertEquals(sample.getProperties().toString(), "{" + propertyType.getPermId() + "=200811050924898-997}"); - assertEquals(sample.getSampleProperties().toString(), "{" + propertyType.getPermId() + "=Sample 200811050924898-997}"); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId()).length, 1); + assertEquals(sample.getSampleProperties().get(propertyType.getPermId())[0].toString(), "Sample 200811050924898-997"); List<HistoryEntry> history = sample.getHistory(); assertEquals(history.size(), 2);