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 a8c807a88e892603b3b2b72b63e463757d1e5582..a094c1407bffb79e625be36c8c17a741f6ccac15 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()); + } + } } } }