diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/EntityAdaptorRelationsLoader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/EntityAdaptorRelationsLoader.java
index 5a8353eb409470bf48e05e1edfd7680c7b8fbb08..39dd0d0fea6452b72caedbf6557041a99e6ac8d4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/EntityAdaptorRelationsLoader.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/calculator/EntityAdaptorRelationsLoader.java
@@ -72,14 +72,14 @@ public class EntityAdaptorRelationsLoader
             return Collections.emptyList();
         } else
         {
-            List<Long> parentIds =
+            List<Long> entityIds =
                     entityIdsOfTypesLoader.loadEntityIdsOfTypes(entityId, matchingTypeIds);
 
-            if (parentIds != null && parentIds.size() > 0)
+            if (entityIds != null && entityIds.size() > 0)
             {
                 Criteria criteria = session.createCriteria(entityClass);
                 criteria.setFetchSize(10);
-                criteria.add(Restrictions.in("id", parentIds));
+                criteria.add(Restrictions.in("id", entityIds));
                 ScrollableResults results = criteria.scroll(ScrollMode.FORWARD_ONLY);
                 return new EntityAdaptorIterator<T>(results, evaluator, session);
             } else
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/server/CommonServerTest.java
index e483c2e9e0be8826cfc66d0b1a9beb6ace6abb86..da8cab248d9aba64774c40a8c43c437a43e2e7cc 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/server/CommonServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/server/CommonServerTest.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.systemtest.server;
 
+import java.lang.reflect.Method;
+
 import junit.framework.Assert;
 
 import org.apache.log4j.Level;
@@ -28,7 +30,6 @@ import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.logging.BufferedAppender;
-import ch.systemsx.cisd.common.test.AssertionUtil;
 import ch.systemsx.cisd.common.utilities.TestResources;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.ExperimentAdaptor;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.dynamic_property.calculator.ExternalDataAdaptor;
@@ -63,17 +64,19 @@ public class CommonServerTest extends SystemTestCase
     }
 
     @BeforeMethod
-    public void beforeMethod()
+    public void beforeMethod(Method method)
     {
         sessionToken = commonServer.tryAuthenticate("test", "a").getSessionToken();
         logRecorder = new BufferedAppender("%-5p %c - %m%n", Level.DEBUG);
+        System.out.println(">>>>>>>>> BEFORE METHOD: " + method.getName());
     }
 
     @AfterMethod
-    public void afterMethod()
+    public void afterMethod(Method method)
     {
         logRecorder.reset();
         commonServer.logout(sessionToken);
+        System.out.println("<<<<<<<<< AFTER METHOD: " + method.getName());
     }
 
     @Test
@@ -81,7 +84,7 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.EXPERIMENT, "/CISD/DEFAULT/EXP-REUSE",
                 "experiment_adaptor_test.py");
-        assertEntitiesReleased(EntityKind.EXPERIMENT, "EXP-REUSE");
+        assertEntitiesReleased(EntityKind.EXPERIMENT, 1);
     }
 
     @Test
@@ -89,8 +92,8 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.EXPERIMENT, "/CISD/DEFAULT/EXP-REUSE",
                 "experiment_adaptor_test__samples.py");
-        assertEntitiesReleased(EntityKind.EXPERIMENT, "EXP-REUSE");
-        assertEntitiesReleased(EntityKind.SAMPLE, "CP1-A1", "CP1-A2", "CP1-B1", "CP2-A1", "RP1-A2X", "RP1-B1X", "RP2-A1X");
+        assertEntitiesReleased(EntityKind.EXPERIMENT, 1);
+        assertEntitiesReleased(EntityKind.SAMPLE, 14);
         assertScrollableResultsReleased(3);
     }
 
@@ -99,54 +102,73 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.EXPERIMENT, "/CISD/DEFAULT/EXP-REUSE",
                 "experiment_adaptor_test__datasets.py");
+        assertEntitiesReleased(EntityKind.EXPERIMENT, 1);
+        assertEntitiesReleased(EntityKind.DATA_SET, 23);
+        assertScrollableResultsReleased(2);
     }
 
     @Test
     public void testSampleAdaptor()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/CP-TEST-1", "sample_adaptor_test.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 1);
     }
 
     @Test
     public void testSampleAdaptorExperiment()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/3VCP6", "sample_adaptor_test__experiment.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 1);
+        assertEntitiesReleased(EntityKind.EXPERIMENT, 1);
     }
 
     @Test
     public void testSampleAdaptorParents()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/3VCP6", "sample_adaptor_test__parents.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 5);
+        // scrollable result is not created for empty result
+        assertScrollableResultsReleased(3);
     }
 
     @Test
     public void testSampleAdaptorChildren()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/DP1-A", "sample_adaptor_test__children.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 5);
+        // scrollable result is not created for empty result
+        assertScrollableResultsReleased(2);
     }
 
     @Test
     public void testSampleAdaptorDataSets()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/CP-TEST-3", "sample_adaptor_test__datasets.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 1);
+        assertEntitiesReleased(EntityKind.DATA_SET, 4);
+        assertScrollableResultsReleased(3);
     }
 
     @Test
     public void testSampleAdaptorContainer()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/CL1:A01", "sample_adaptor_test__container.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 2);
     }
 
     @Test
     public void testSampleAdaptorContained()
     {
         testAdaptorCommon(EntityKind.SAMPLE, "/CISD/CL1", "sample_adaptor_test__contained.py");
+        assertEntitiesReleased(EntityKind.SAMPLE, 5);
+        assertScrollableResultsReleased(3);
     }
 
     @Test
     public void testDataSetAdaptor()
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20081105092159111-1", "dataset_adaptor_test.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 1);
     }
 
     @Test
@@ -154,6 +176,8 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20081105092159188-3",
                 "dataset_adaptor_test__experiment.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 1);
+        assertEntitiesReleased(EntityKind.EXPERIMENT, 1);
     }
 
     @Test
@@ -161,6 +185,8 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20081105092159222-2",
                 "dataset_adaptor_test__sample.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 1);
+        assertEntitiesReleased(EntityKind.SAMPLE, 1);
     }
 
     @Test
@@ -168,6 +194,9 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20081105092259000-9",
                 "dataset_adaptor_test__parents.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 7);
+        // scrollable result is not created for empty result
+        assertScrollableResultsReleased(2);
     }
 
     @Test
@@ -175,6 +204,9 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20081105092259000-9",
                 "dataset_adaptor_test__children.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 5);
+        // scrollable result is not created for empty result
+        assertScrollableResultsReleased(2);
     }
 
     @Test
@@ -182,6 +214,7 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20110509092359990-11",
                 "dataset_adaptor_test__container.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 2);
     }
 
     @Test
@@ -189,12 +222,15 @@ public class CommonServerTest extends SystemTestCase
     {
         testAdaptorCommon(EntityKind.DATA_SET, "20110509092359990-10",
                 "dataset_adaptor_test__contained.py");
+        assertEntitiesReleased(EntityKind.DATA_SET, 5);
+        assertScrollableResultsReleased(3);
     }
 
     @Test
     public void testMaterialAdaptor()
     {
         testAdaptorCommon(EntityKind.MATERIAL, "C-NO-TIME (CONTROL)", "material_adaptor_test.py");
+        assertEntitiesReleased(EntityKind.MATERIAL, 1);
     }
 
     private void testAdaptorCommon(EntityKind entityKind, String entityIdentifier, String scriptName)
@@ -212,7 +248,7 @@ public class CommonServerTest extends SystemTestCase
         Assert.assertEquals("Validation OK", result);
     }
 
-    private void assertEntitiesReleased(EntityKind kind, String... codes)
+    private void assertEntitiesReleased(EntityKind kind, int count)
     {
         Class<?> adaptorClass = null;
 
@@ -233,23 +269,34 @@ public class CommonServerTest extends SystemTestCase
             throw new RuntimeException("Unsupported entity kind: " + kind);
         }
 
-        for (String code : codes)
+        String[] lines = logRecorder.getLogContent().split("\n");
+        int actualCount = 0;
+
+        for (String line : lines)
         {
-            AssertionUtil.assertContainsLines("DEBUG OPERATION.Resources - Successfully released a resource: " + adaptorClass.getSimpleName()
-                    + "{code="
-                    + code + "}",
-                    logRecorder.getLogContent());
+            if (line.startsWith("DEBUG OPERATION.Resources - Successfully released a resource: " + adaptorClass.getSimpleName()))
+            {
+                actualCount++;
+            }
         }
+
+        Assert.assertEquals(count, actualCount);
     }
 
     private void assertScrollableResultsReleased(int count)
     {
-        StringBuilder expected = new StringBuilder();
-        for (int i = 0; i < count; i++)
+        String[] lines = logRecorder.getLogContent().split("\n");
+        int actualCount = 0;
+
+        for (String line : lines)
         {
-            expected.append("DEBUG OPERATION.Resources - Successfully released a resource: ScrollableResultsIterator.ScrollableResultReleasable{}\n");
+            if (line.equals("DEBUG OPERATION.Resources - Successfully released a resource: ScrollableResultsIterator.ScrollableResultReleasable{}"))
+            {
+                actualCount++;
+            }
         }
-        AssertionUtil.assertContainsLines(expected.toString(), logRecorder.getLogContent());
+
+        Assert.assertEquals(count, actualCount);
     }
 
 }
\ No newline at end of file