diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java index 7d4a2d9871f02b0d454e901c2e039b14f31d3935..a655d4db873184a23d88a654731e1acee3703bba 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java @@ -661,6 +661,10 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO if (modifiedContainedDatasetCodesOrNull == null) { return; // contained data sets were not changed + } else if (modifiedContainedDatasetCodesOrNull.length > 0 && false == data.isContainer()) + { + throw new UserFailureException("Data set '" + data.getCode() + + " is not a container data set, and cannot contain other data sets."); } else { final List<DataPE> currentComponents = diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateDataSetContainmentTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateDataSetContainmentTest.java index 0ffd7aaa38c3214b636842065327b85cc6c15df7..d5c98acc362b4458856ceed46767a70a8247027e 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateDataSetContainmentTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/UpdateDataSetContainmentTest.java @@ -98,7 +98,7 @@ public class UpdateDataSetContainmentTest extends BaseTest perform(anUpdateOf(component1).withContainer(component2)); } - @Test(expectedExceptions = UserFailureException.class, groups = "broken") + @Test(expectedExceptions = UserFailureException.class) public void dataSetWithComponentTypeCannotHaveComponents() throws Exception { ExternalData component1 = create(aDataSet().inSample(sample)); @@ -164,8 +164,9 @@ public class UpdateDataSetContainmentTest extends BaseTest perform(anUpdateOf(dataset).withComponent(dataset)); } - @Test(groups = "broken") - public void subcomponentsAreAllowed() throws Exception + @Test(expectedExceptions = + { UserFailureException.class }) + public void subcomponentsAreNotAllowed() throws Exception { ExternalData component = create(aDataSet().inSample(sample)); ExternalData container =