From 8c3f692f2cdbc54e182647ae424554340289053d Mon Sep 17 00:00:00 2001 From: gpawel <gpawel> Date: Thu, 3 May 2012 12:16:38 +0000 Subject: [PATCH] SP-6 missing commit (BIS-2) SVN: 25157 --- .../bo/AbstractSampleBusinessObject.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java index abd9ec0b896..65511e06743 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java @@ -109,8 +109,7 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi Map<String, ExperimentPE> experimentCacheOrNull, PersonPE registratorOrNull) throws UserFailureException { - final SampleIdentifier sampleIdentifier = - SampleIdentifierFactory.parse(newSample); + final SampleIdentifier sampleIdentifier = SampleIdentifierFactory.parse(newSample); SampleOwner sampleOwner = getSampleOwner(sampleOwnerCacheOrNull, sampleIdentifier); SampleTypePE sampleTypePE = (sampleTypeCacheOrNull != null) ? sampleTypeCacheOrNull.get(newSample @@ -353,12 +352,15 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi } protected void checkAllBusinessRules(SamplePE sample, IDataDAO dataDAO, - Map<EntityTypePE, List<EntityTypePropertyTypePE>> cacheOrNull) + Map<EntityTypePE, List<EntityTypePropertyTypePE>> cacheOrNull, boolean spaceUpdated) { checkPropertiesBusinessRules(sample, cacheOrNull); checkExperimentBusinessRules(dataDAO, sample); - checkParentBusinessRules(sample); - checkContainerBusinessRules(sample); + if (spaceUpdated) + { + checkParentBusinessRules(sample); + checkContainerBusinessRules(sample); + } } protected void checkPropertiesBusinessRules(SamplePE sample, @@ -419,7 +421,7 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi return (onlyNewSamples == false) && SampleUtils.hasDatasets(dataDAO, sample); } - protected void updateSpace(SamplePE sample, SampleIdentifier sampleOwnerIdentifier, + protected boolean updateSpace(SamplePE sample, SampleIdentifier sampleOwnerIdentifier, Map<SampleOwnerIdentifier, SampleOwner> sampleOwnerCacheOrNull) { if (sampleOwnerIdentifier != null) @@ -427,9 +429,17 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi final SampleOwner sampleOwner = getSampleOwner(sampleOwnerCacheOrNull, sampleOwnerIdentifier); SpacePE space = sampleOwner.tryGetSpace(); + if (space == sample.getSpace() || (space != null && space.equals(sample.getSpace()))) + { + // not a real update + return false; + } sample.setDatabaseInstance(sampleOwner.tryGetDatabaseInstance()); sample.setSpace(space); + return true; } + + return false; } protected void updateExperiment(SamplePE sample, ExperimentIdentifier expIdentifierOrNull, -- GitLab