diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java index 1ba2d799144c3c533000a9cabef52e5fd8d23aff..353c68e3d016caacac11e80b2dcdc6a65360b1ea 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java @@ -1123,7 +1123,7 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements if (details.isSampleUpdateRequested() && dataSetUpdates.getSampleIdentifierOrNull() != null) { updateSample(dataSet, dataSetUpdates.getSampleIdentifierOrNull()); - } else + } else if (dataSetUpdates.getExperimentIdentifierOrNull() != null) { updateExperiment(dataSet, dataSetUpdates.getExperimentIdentifierOrNull()); dataSet.setSample(null); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java index a96e957d5ac903f33347dabf06ca7e88a4b285c4..671eb050cc6db5b93dcaf227df0121df419bb648 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerDatabaseTest.java @@ -167,6 +167,7 @@ public class GenericServerDatabaseTest extends AbstractDAOTest NewDataSet newDataset = new NewDataSet(); newDataset.setCode(dataset.getCode()); newDataset.setSampleIdentifierOrNull(null); + newDataset.setExperimentIdentifier(dataset.getExperiment().getIdentifier()); DataSetBatchUpdateDetails updateDetails = new DataSetBatchUpdateDetails(); updateDetails.setSampleUpdateRequested(true); @@ -177,24 +178,6 @@ public class GenericServerDatabaseTest extends AbstractDAOTest Assert.assertEquals(TEST_EXPERIMENT_PERMID, dataset.getExperiment().getPermId()); } - @Test(expectedExceptions = AssertionError.class) - public void testClearingExperimentShouldNotBeAllowed() - { - DataPE dataset = findData(TEST_EXPERIMENT_CONTAINED_DATA_SET_CODE); - - Assert.assertEquals(TEST_EXPERIMENT_SAMPLE_PERMID, dataset.tryGetSample().getPermId()); - Assert.assertEquals(TEST_EXPERIMENT_PERMID, dataset.getExperiment().getPermId()); - - NewDataSet newDataset = new NewDataSet(); - newDataset.setCode(dataset.getCode()); - newDataset.setExperimentIdentifier(null); - - DataSetBatchUpdateDetails updateDetails = new DataSetBatchUpdateDetails(); - updateDetails.setExperimentUpdateRequested(true); - - update(dataset, newDataset, updateDetails); - } - private void update(DataPE data, NewDataSet newDataset, DataSetBatchUpdateDetails updateDetails) { List<NewDataSet> newDatasets = new ArrayList<NewDataSet>();