diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractCreateEntityExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractCreateEntityExecutor.java index 9baa16217700eb6b2de6724a99d561a91e99ff46..66c719979eddf1d1cc75e17977e698bbd18721b2 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractCreateEntityExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractCreateEntityExecutor.java @@ -56,6 +56,11 @@ public abstract class AbstractCreateEntityExecutor<CREATION extends ICreation, P @Override public List<PERM_ID> create(IOperationContext context, List<CREATION> creations) { + if (creations == null || creations.isEmpty()) + { + return new ArrayList<PERM_ID>(); + } + try { List<PERM_ID> permIdsAll = new LinkedList<PERM_ID>(); diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java index 2e458809c86580f2f698bcbc16c88e06619c909d..5702cb26efe8598d9f5398a44d3bb58a74e99c03 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/entity/AbstractUpdateEntityExecutor.java @@ -57,6 +57,11 @@ public abstract class AbstractUpdateEntityExecutor<UPDATE extends IUpdate, PE ex @Override public void update(IOperationContext context, List<UPDATE> updates) { + if (updates == null || updates.isEmpty()) + { + return; + } + try { Map<UPDATE, PE> entitiesAll = new LinkedHashMap<UPDATE, PE>(); diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/cache/SearchCacheTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/cache/SearchCacheTest.java index eeb7bd655b3128fa13e8062f9ba0c617b2bb8a30..d7853bb8f2a878f02131211f07d434786f462ef2 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/cache/SearchCacheTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/cache/SearchCacheTest.java @@ -22,11 +22,10 @@ import static org.testng.Assert.fail; import java.io.ByteArrayInputStream; import java.io.Serializable; import java.lang.reflect.Method; +import java.text.DecimalFormatSymbols; import java.util.Arrays; import java.util.UUID; -import net.sf.ehcache.CacheManager; - import org.apache.commons.io.FileUtils; import org.apache.log4j.Level; import org.testng.Assert; @@ -34,15 +33,14 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import ch.ethz.sis.openbis.generic.server.asapi.v3.cache.SearchCache; -import ch.ethz.sis.openbis.generic.server.asapi.v3.cache.SearchCacheEntry; -import ch.ethz.sis.openbis.generic.server.asapi.v3.cache.SearchCacheKey; import ch.systemsx.cisd.common.logging.BufferedAppender; import ch.systemsx.cisd.common.logging.LogInitializer; import ch.systemsx.cisd.common.test.AssertionUtil; import ch.systemsx.cisd.openbis.generic.shared.util.RuntimeCache; import ch.systemsx.cisd.openbis.util.LogRecordingUtils; +import net.sf.ehcache.CacheManager; + /** * @author pkupczyk */ @@ -74,8 +72,8 @@ public class SearchCacheTest .assertContainsLines( "INFO OPERATION.RuntimeCache - Cache size has been set to its default value." + " The default value is 25% (256m) of the memory available to the JVM (1g)." - + " If you would like to change this value, then please set 'ch.ethz.sis.openbis.v3.searchcache.size' system property in openbis.conf file." - , logRecorder.getLogContent()); + + " If you would like to change this value, then please set 'ch.ethz.sis.openbis.v3.searchcache.size' system property in openbis.conf file.", + logRecorder.getLogContent()); } @Test @@ -94,10 +92,13 @@ public class SearchCacheTest { createCache(FileUtils.ONE_GB, "10%"); + char decimalSeparator = DecimalFormatSymbols.getInstance().getDecimalSeparator(); + AssertionUtil .assertContainsLines( "INFO OPERATION.RuntimeCache - Cache size was set to '10%' in 'ch.ethz.sis.openbis.v3.searchcache.size' system property." - + " The memory available to the JVM is 1g which gives a cache size of 102.4m", logRecorder.getLogContent()); + + " The memory available to the JVM is 1g which gives a cache size of 102" + decimalSeparator + "4m", + logRecorder.getLogContent()); } @Test diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/MultiThreadProjectOptimisticLockingTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/MultiThreadProjectOptimisticLockingTest.java index 090d2686d0d93ec9108f5d4ac2b6615287f7a9fd..56c4173f38a350b83239ea7249beacc11ba5081f 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/MultiThreadProjectOptimisticLockingTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/optimistic_locking/MultiThreadProjectOptimisticLockingTest.java @@ -108,11 +108,12 @@ public class MultiThreadProjectOptimisticLockingTest extends MultiThreadOptimist List<Experiment> experiments = commonServer.listExperiments(systemSessionToken, new ExperimentTypeBuilder().code(ToolBox.EXPERIMENT_TYPE_CODE) - .getExperimentType(), toolBox + .getExperimentType(), + toolBox .createProjectIdentifier(toolBox.project1.getIdentifier())); assertEquals("[OLT-E1, OLT-E2, OLT-E3]", toolBox.extractCodes(experiments).toString()); toolBox.checkModifierAndModificationDateOfProject1(timeIntervalChecker); assertEquals("authorize 1/2\n" + "authorize 2/2\n" + "createExperiments 1/2\n" - + "createExperiments 2/2\n" + "load related entities 0/0\n", stringBuilder.toString()); + + "createExperiments 2/2\n", stringBuilder.toString()); } }