From 204e300de6eddfc26f532a4164713067f3cbf8e4 Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Wed, 16 Nov 2011 09:31:22 +0000
Subject: [PATCH] [LMS-2654] handle invalid DSS URLs gracefully

SVN: 23683
---
 .../generic/server/OpenbisCrossOriginFilter.java      | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenbisCrossOriginFilter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenbisCrossOriginFilter.java
index 4ed3909964f..fc8c4fa013d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenbisCrossOriginFilter.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/OpenbisCrossOriginFilter.java
@@ -25,7 +25,6 @@ import java.util.List;
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;
 
-import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.common.servlet.AbstractCrossOriginFilter;
 import ch.systemsx.cisd.openbis.generic.shared.ResourceNames;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore;
@@ -85,12 +84,16 @@ public class OpenbisCrossOriginFilter extends AbstractCrossOriginFilter
         List<DataStore> dataStores = commonServer.listDataStores();
         for (DataStore dataStore : dataStores)
         {
-            dataStoreServerUrls.add(extractDomainFromDownloadUrl(dataStore));
+            final String dssDomainOrNull = tryExtractDomainFromDownloadUrl(dataStore);
+            if (dssDomainOrNull != null)
+            {
+                dataStoreServerUrls.add(dssDomainOrNull);
+            }
         }
         return dataStoreServerUrls;
     }
 
-    protected String extractDomainFromDownloadUrl(DataStore dataStore)
+    protected String tryExtractDomainFromDownloadUrl(DataStore dataStore)
     {
         try
         {
@@ -98,7 +101,7 @@ public class OpenbisCrossOriginFilter extends AbstractCrossOriginFilter
             return url.getProtocol() + "://" + url.getAuthority();
         } catch (MalformedURLException ex)
         {
-            throw CheckedExceptionTunnel.wrapIfNecessary(ex);
+            return null;
         }
     }
 
-- 
GitLab