From 87e488a9f0fa96e12d677b4da4fee78916d06db2 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Thu, 10 Feb 2011 09:17:33 +0000
Subject: [PATCH] change: provide better exception / error message when trying
 to load an image that doesn't exist (merged from S99.x)

SVN: 19858
---
 .../api/v1/ScreeningOpenbisServiceFacade.java     | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
index 580d7112372..06009376cfc 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
@@ -36,6 +36,7 @@ import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.IDssServiceRpcScreen
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSet;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.Sample;
+import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.CachedImage;
 import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.WellImages;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.IScreeningApiServer;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier;
@@ -990,7 +991,12 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa
                     }
                 });
         }
-        return images.getImage(imageReference).getImageData();
+        final CachedImage imageOrNull = images.getImage(imageReference);
+        if (imageOrNull == null)
+        {
+            throw new IOException(imageReference + " doesn't exist.");
+        }
+        return imageOrNull.getImageData();
     }
 
     public void loadImages(List<PlateImageReference> imageReferences, final ImageSize sizeOrNull,
@@ -1071,7 +1077,12 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa
                     }
                 });
         }
-        return images.getImage(imageReference).getImageData();
+        final CachedImage imageOrNull = images.getImage(imageReference);
+        if (imageOrNull == null)
+        {
+            throw new IOException(imageReference + " doesn't exist.");
+        }
+        return imageOrNull.getImageData();
     }
 
     public void loadThumbnailImages(List<PlateImageReference> imageReferences,
-- 
GitLab