From 239f9f1ded1d3da1c437288a2e4a0d78c9798f03 Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Thu, 24 Jun 2010 15:20:37 +0000
Subject: [PATCH] LMS-1546, LMS-1584 bugfix feature vector registration: throw
 exceptions in case of the error

SVN: 16726
---
 .../dss/etl/genedata/FeatureStorageProcessor.java   | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java
index 8dbc600d523..90797bd2ddc 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java
@@ -225,6 +225,12 @@ public class FeatureStorageProcessor extends AbstractDelegatingStorageProcessor
             DataSetInformation dataSetInformation)
     {
         Sample sampleOrNull = tryFindSampleForDataSet(dataSetInformation);
+        if (sampleOrNull == null)
+        {
+            throw new IllegalStateException(
+                    "Cannot find a sample to which a plate should be (directly or indirectly) connected: "
+                            + dataSetInformation);
+        }
         return ScreeningContainerDatasetInfo.createBasicScreeningDatasetInfo(dataSetInformation,
                 sampleOrNull);
     }
@@ -239,7 +245,12 @@ public class FeatureStorageProcessor extends AbstractDelegatingStorageProcessor
             for (String dataSetCode : parentDataSetCodes)
             {
                 ExternalData externalData = openBisService.tryGetDataSetForServer(dataSetCode);
-                if (externalData != null && externalData.getSample() != null)
+                if (externalData == null)
+                {
+                    throw new UserFailureException("Cannot find a parent dataset in openBIS: "
+                            + dataSetCode);
+                }
+                if (externalData.getSample() != null)
                 {
                     sampleOrNull = externalData.getSample();
                     break;
-- 
GitLab