From cb4f708ab0fe2e1b8d8c19a8ee310ec37a01206f Mon Sep 17 00:00:00 2001
From: Yves Noirjean <yves.noirjean@id.ethz.ch>
Date: Tue, 10 Jul 2018 17:05:23 +0200
Subject: [PATCH] SSDM-6228: added archivingRequested to physical data DTOs

---
 .../dataset/UpdateDataSetPhysicalDataExecutor.java     | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/UpdateDataSetPhysicalDataExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/UpdateDataSetPhysicalDataExecutor.java
index a8c807a88e8..a094c1407bf 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/UpdateDataSetPhysicalDataExecutor.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/UpdateDataSetPhysicalDataExecutor.java
@@ -21,7 +21,9 @@ import java.util.Map.Entry;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.update.FieldUpdateValue;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.update.DataSetUpdate;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.update.PhysicalDataUpdate;
 import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext;
 import ch.ethz.sis.openbis.generic.server.asapi.v3.helper.common.batch.MapBatch;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
@@ -46,7 +48,13 @@ public class UpdateDataSetPhysicalDataExecutor implements IUpdateDataSetPhysical
             DataPE dataPE = entry.getValue();
             if (dataPE instanceof ExternalDataPE) {
                 ExternalDataPE externalDataPE = (ExternalDataPE) dataPE;
-                externalDataPE.setArchivingRequested(dataSetUpdate.getPhysicalData().getValue().getArchivingRequested().getValue());
+                FieldUpdateValue<PhysicalDataUpdate> physicalData = dataSetUpdate.getPhysicalData();
+                if (physicalData != null && physicalData.getValue() != null) {
+                    FieldUpdateValue<Boolean> archivingRequested = physicalData.getValue().getArchivingRequested();
+                    if (archivingRequested != null && archivingRequested.getValue() != null) {
+                        externalDataPE.setArchivingRequested(dataSetUpdate.getPhysicalData().getValue().getArchivingRequested().getValue());
+                    }
+                }
             }
         }
     }
-- 
GitLab