From 87d35616270a3e1ceb1e8cd76037bf52e19f22fe Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 5 Apr 2016 09:56:49 +0000
Subject: [PATCH] SSDM-3412: Forward porting from stage r36047 (SSDM-3397:
 adding log for data set failed in sanity check of multi data set archiving.)
 and r36048 (SSDM-3397: throw IllegalArgumentException if children path infos
 are Null.)

SVN: 36081
---
 .../plugins/standard/archiver/MultiDataSetArchiver.java       | 4 ++++
 .../content/PathInfoProviderBasedHierarchicalContent.java     | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/MultiDataSetArchiver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/MultiDataSetArchiver.java
index af56d49e146..ce415c61437 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/MultiDataSetArchiver.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/MultiDataSetArchiver.java
@@ -409,6 +409,10 @@ public class MultiDataSetArchiver extends AbstractArchiverProcessingPlugin
                 {
                     throw new RuntimeException(status.tryGetErrorMessage());
                 }
+            } catch (RuntimeException ex)
+            {
+                operationLog.error("Sanity check for data set " + dataSetCode + " failed: " + ex);
+                throw ex;
             } finally
             {
                 if (content != null)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/PathInfoProviderBasedHierarchicalContent.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/PathInfoProviderBasedHierarchicalContent.java
index af85441030f..db35117fbe9 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/PathInfoProviderBasedHierarchicalContent.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/content/PathInfoProviderBasedHierarchicalContent.java
@@ -245,6 +245,10 @@ public class PathInfoProviderBasedHierarchicalContent implements IHierarchicalCo
         {
             List<DataSetPathInfo> pathInfos =
                     dataSetPathInfoProvider.listChildrenPathInfos(pathInfo);
+            if (pathInfos == null)
+            {
+                throw new IllegalArgumentException("No children path infos for " + pathInfo.getRelativePath());
+            }
             List<IHierarchicalContentNode> result = new ArrayList<IHierarchicalContentNode>();
             for (DataSetPathInfo child : pathInfos)
             {
-- 
GitLab