diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java
index bdfda607f5bfbfaab32305b4eb3868281bda1fc8..2dec81fc012f65c0e1474b4754fd0838696a860d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DynamicPropertyEvaluationScheduler.java
@@ -53,6 +53,12 @@ public final class DynamicPropertyEvaluationScheduler implements
                     }
                 };
 
+    /* private - exposed for tests */
+    public static List<DynamicPropertyEvaluationOperation> getThreadOperations()
+    {
+        return threadQueue.get();
+    }
+
     private final IExtendedBlockingQueue<DynamicPropertyEvaluationOperation> evaluatorQueue;
 
     public DynamicPropertyEvaluationScheduler()
@@ -102,13 +108,13 @@ public final class DynamicPropertyEvaluationScheduler implements
     public void scheduleUpdate(DynamicPropertyEvaluationOperation operation)
     {
         threadDebugLog("Scheduling update: " + operation);
-        List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get();
+        List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations();
         threadOperations.add(operation);
     }
 
     public void synchronizeThreadQueue()
     {
-        List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get();
+        List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations();
         if (threadOperations.size() > 0)
         {
             threadDebugLog("Synchronizing scheduled operations");
@@ -126,7 +132,7 @@ public final class DynamicPropertyEvaluationScheduler implements
     public void clearThreadQueue()
     {
         threadDebugLog("Clearing scheduled operations");
-        List<DynamicPropertyEvaluationOperation> threadOperations = threadQueue.get();
+        List<DynamicPropertyEvaluationOperation> threadOperations = getThreadOperations();
         threadOperations.clear();
     }
 
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java
index a7873c18b9348611b6bd02648efcd586018d2ecd..7492983978447504535d5b603e8c4ecc803cd4bf 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/AbstractDAOWithoutContextTest.java
@@ -40,7 +40,6 @@ import org.testng.annotations.BeforeMethod;
 import ch.rinn.restrictions.Friend;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExternalDataDAO;
-import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.search.HibernateSearchContext;
 import ch.systemsx.cisd.openbis.generic.server.util.TestInitializer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder;
@@ -91,8 +90,6 @@ public abstract class AbstractDAOWithoutContextTest extends
 
     protected SessionFactory sessionFactory;
 
-    HibernateSearchContext hibernateSearchContext;
-
     private Long origDatabaseInstanceId;
 
     private Object currentDAO;
@@ -136,18 +133,6 @@ public abstract class AbstractDAOWithoutContextTest extends
         this.sessionFactory = sessionFactory;
     }
 
-    /**
-     * Sets <code>hibernate search context</code>.
-     * <p>
-     * Will be automatically dependency injected by type.
-     * </p>
-     */
-    @Autowired
-    public final void setHibernateSearchContext(final HibernateSearchContext hibernateSearchContext)
-    {
-        this.hibernateSearchContext = hibernateSearchContext;
-    }
-
     /**
      * Changes the database instance id of given {@link AbstractDAO} to a new value.
      */
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
index 7c26ae3de7129d68672e8b021be0cc17c0f47efa..5c3e935316e3045fe3d723c4b6158e9089b99cc1 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAOTest.java
@@ -34,6 +34,8 @@ import org.testng.AssertJUnit;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationOperation;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.DynamicPropertyEvaluationScheduler;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO;
 import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
@@ -89,17 +91,20 @@ public class ExperimentDAOTest extends AbstractDAOTest
     @Test
     public void testListExperimentsWithPropertiesForEmptySet() throws Exception
     {
-        List<ExperimentPE> list = daoFactory.getExperimentDAO().listExperimentsWithProperties(Collections.<Long>emptySet());
+        List<ExperimentPE> list =
+                daoFactory.getExperimentDAO().listExperimentsWithProperties(
+                        Collections.<Long> emptySet());
         assertEquals(0, list.size());
     }
-    
+
     @Test
     public void testListByPermIDForEmptySet() throws Exception
     {
-        List<ExperimentPE> list = daoFactory.getExperimentDAO().listByPermID(Collections.<String>emptySet());
+        List<ExperimentPE> list =
+                daoFactory.getExperimentDAO().listByPermID(Collections.<String> emptySet());
         assertEquals(0, list.size());
     }
-    
+
     @Test
     public void testListExperimentsFromProject() throws Exception
     {
@@ -314,9 +319,16 @@ public class ExperimentDAOTest extends AbstractDAOTest
         int sizeBefore = experimentsBefore.size();
         assertEqualsOrGreater(8, sizeBefore);
 
+        List<DynamicPropertyEvaluationOperation> threadOperations =
+                DynamicPropertyEvaluationScheduler.getThreadOperations();
+        assertEquals(0, threadOperations.size());
+
         ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", "EXP12", "SIRNA_HCS");
         daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment);
 
+        assertEquals(1, threadOperations.size());
+        assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0));
+
         List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments();
         assertEquals(sizeBefore + 1, experimentsAfter.size());
         Collections.sort(experimentsAfter);
@@ -337,8 +349,16 @@ public class ExperimentDAOTest extends AbstractDAOTest
         experiment.setCode(codeModified);
         experiment.setPermId(daoFactory.getPermIdDAO().createPermId());
         final Date modificationTimestamp = experiment.getModificationDate();
+
+        List<DynamicPropertyEvaluationOperation> threadOperations =
+                DynamicPropertyEvaluationScheduler.getThreadOperations();
+        assertEquals(0, threadOperations.size());
+
         daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment);
 
+        assertEquals(1, threadOperations.size());
+        assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0));
+
         List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments();
         assertEquals(sizeBefore, experimentsAfter.size());
         Collections.sort(experimentsAfter);
@@ -354,13 +374,24 @@ public class ExperimentDAOTest extends AbstractDAOTest
         int sizeBefore = experimentsBefore.size();
         assertEqualsOrGreater(8, sizeBefore);
 
+        List<DynamicPropertyEvaluationOperation> threadOperations =
+                DynamicPropertyEvaluationScheduler.getThreadOperations();
+        assertEquals(0, threadOperations.size());
+
         ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", "EXP13", "SIRNA_HCS");
         daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment);
 
+        assertEquals(1, threadOperations.size());
+        assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0));
+
         ExperimentPE experiment2 =
                 createExperiment("CISD", "CISD", "NEMO", "EXP12", "COMPOUND_HCS");
         daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment2);
 
+        assertEquals(2, threadOperations.size());
+        assertEquals(asDynamicPropertyEvaluationOperation(experiment), threadOperations.get(0));
+        assertEquals(asDynamicPropertyEvaluationOperation(experiment2), threadOperations.get(1));
+
         List<ExperimentPE> experimentsAfter = daoFactory.getExperimentDAO().listExperiments();
         Collections.sort(experimentsAfter);
         assertEquals(sizeBefore + 2, experimentsAfter.size());
@@ -412,6 +443,7 @@ public class ExperimentDAOTest extends AbstractDAOTest
     {
         final ExperimentPE experiment = createExperiment("CISD", "CISD", "NEMO", code, "SIRNA_HCS");
         boolean exceptionThrown = false;
+
         try
         {
             daoFactory.getExperimentDAO().createOrUpdateExperiment(experiment);
@@ -491,4 +523,11 @@ public class ExperimentDAOTest extends AbstractDAOTest
         AssertJUnit.assertTrue(result.isEmpty());
     }
 
+    private DynamicPropertyEvaluationOperation asDynamicPropertyEvaluationOperation(
+            ExperimentPE experiment)
+    {
+        return DynamicPropertyEvaluationOperation.evaluate(ExperimentPE.class,
+                Collections.singletonList(experiment.getId()));
+    }
+
 }