diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
index 2192eca6fbde654cfd458042136f067d8eb58d11..4a0ca929aad350c800592269af9b4cd5bf617923 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
@@ -612,7 +612,7 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
      * Subclasses can override and implement their own handling logic.
      */
     public void didPreRegistration(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+            DataSetRegistrationContext.IHolder persistentMapHolder)
     {
     }
 
@@ -622,7 +622,7 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
      * Subclasses can override and implement their own handling logic.
      */
     public void didPostRegistration(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+            DataSetRegistrationContext.IHolder persistentMapHolder)
     {
     }
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationPersistentMap.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationPersistentMap.java
index 7eb6b56f2cc33c5fbf37e9790e80e5952cf4b7a9..3cb76667fa9f752baa3d60be04ebfaf9052a37d2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationPersistentMap.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationPersistentMap.java
@@ -15,10 +15,6 @@ import java.util.Set;
  */
 public class DataSetRegistrationPersistentMap implements Serializable
 {
-    public static interface IHolder
-    {
-        DataSetRegistrationPersistentMap getRegistrationContext();
-    }
 
     private static final long serialVersionUID = 1L;
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
index fc08a31eda635cd9bbf9dd0df0f5a4d41bc0e5cb..b7efb6781c54eb72577fef5621ea090c17c4a649 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java
@@ -269,13 +269,13 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements
     }
 
     @Override
-    public void executePreRegistration(DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+    public void executePreRegistration(DataSetRegistrationContext.IHolder persistentMapHolder)
     {
         registrator.didPreRegistration(this, persistentMapHolder);
     }
 
     @Override
-    public void executePostRegistration(DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+    public void executePostRegistration(DataSetRegistrationContext.IHolder persistentMapHolder)
     {
         registrator.didPostRegistration(this, persistentMapHolder);
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
index 7a1f4bf0cb3533a75b295130fd25e606bed9b47c..fcaa2071c29038dbaee1e26783c27de5c43d1fcb 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
@@ -27,8 +27,8 @@ import ch.systemsx.cisd.common.concurrent.ConcurrencyUtilities;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.etlserver.DssRegistrationLogger;
-import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.IStorageProcessorTransactional.IStorageProcessorTransaction;
+import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.IDataSetOnErrorActionDecision.ErrorType;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction;
 import ch.systemsx.cisd.etlserver.registrator.monitor.DssRegistrationHealthMonitor;
@@ -78,10 +78,10 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
     public static interface IPrePostRegistrationHook<T extends DataSetInformation>
     {
         public void executePreRegistration(
-                DataSetRegistrationPersistentMap.IHolder persistentMapHolder);
+DataSetRegistrationContext.IHolder persistentMapHolder);
 
         public void executePostRegistration(
-                DataSetRegistrationPersistentMap.IHolder persistentMapHolder);
+DataSetRegistrationContext.IHolder persistentMapHolder);
     }
 
     static private final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
@@ -102,7 +102,7 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
 
     private final IRollbackStack rollbackStack;
 
-    private final DataSetRegistrationPersistentMap.IHolder persistentMapHolder;
+    private final DataSetRegistrationContext.IHolder persistentMapHolder;
 
     private final IPrePostRegistrationHook<T> postPreRegistrationHooks;
 
@@ -155,7 +155,7 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
             DssRegistrationLogger dssRegistrationLog, IEncapsulatedOpenBISService openBISService,
             IPrePostRegistrationHook<T> postPreRegistrationHooks,
             IDataSetStorageRecoveryManager storageRecoveryManager,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder,
+            DataSetRegistrationContext.IHolder persistentMapHolder,
             TopLevelDataSetRegistratorGlobalState globalState)
     {
         this.dataSetStorageAlgorithms =
@@ -820,7 +820,7 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
         return incomingDataSetFile;
     }
 
-    public DataSetRegistrationPersistentMap getPersistentMap()
+    public DataSetRegistrationContext getRegistrationContext()
     {
         return persistentMapHolder.getRegistrationContext();
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
index 80251896d40c56fb6cdbdafa5df531110bfaf4a2..0c42d383930cf7c0c2bc635e1dbc2797e0ae2217 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
@@ -312,7 +312,7 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
 
     @Override
     public void didPreRegistration(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+            DataSetRegistrationContext.IHolder persistentMapHolder)
     {
         super.didPreRegistration(service, persistentMapHolder);
         invokePreRegistrationFunction(service, persistentMapHolder);
@@ -320,7 +320,7 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
 
     @Override
     public void didPostRegistration(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+            DataSetRegistrationContext.IHolder persistentMapHolder)
     {
         super.didPostRegistration(service, persistentMapHolder);
         invokePostRegistrationFunction(service, persistentMapHolder);
@@ -439,7 +439,7 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
     }
 
     private void invokePreRegistrationFunction(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapholder)
+            DataSetRegistrationContext.IHolder persistentMapholder)
     {
         PythonInterpreter interpreter = getInterpreterFromService(service);
         PyFunction function =
@@ -452,7 +452,7 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
     }
 
     private void invokePostRegistrationFunction(DataSetRegistrationService<T> service,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+            DataSetRegistrationContext.IHolder persistentMapHolder)
     {
         PyFunction function = tryGetPostRegistrationFunction(service);
         if (null != function)
@@ -513,7 +513,7 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
     }
 
     private void invokeTransactionFunctionWithContext(PyFunction function,
-            DataSetRegistrationPersistentMap.IHolder persistentMapHolder, Object... additionalArgs)
+            DataSetRegistrationContext.IHolder persistentMapHolder, Object... additionalArgs)
     {
         if (additionalArgs.length > 0)
         {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
index b6fc86d5f5bc3465dd910e4ce701e59089eecdb2..75156ceae77c51cc5459fdcdae358cd299a834fc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
@@ -22,7 +22,7 @@ import net.lemnik.eodsql.DynamicTransactionQuery;
 
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState;
-import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap;
+import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.IAuthorizationService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
@@ -278,7 +278,7 @@ public interface IDataSetRegistrationTransaction
      * 
      * @return The context, a hash-map-like object.
      */
-    DataSetRegistrationPersistentMap getRegistrationContext();
+    DataSetRegistrationContext getRegistrationContext();
 
     /**
      * Returns the service registrator context.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
index ffc3dc5b49ad4bd9abd73358b164a73eb2d3d513..0c76ea2ccb3f055a34e6d016312ee590e2d87029 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
@@ -34,6 +34,7 @@ import ch.systemsx.cisd.etlserver.DssRegistrationLogger;
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState;
 import ch.systemsx.cisd.etlserver.registrator.DataSetFile;
+import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext;
 import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails;
 import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap;
 import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationService;
@@ -91,7 +92,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
 public class DataSetRegistrationTransaction<T extends DataSetInformation> implements
         IDataSetRegistrationTransaction, DataSetStorageAlgorithmRunner.IRollbackDelegate<T>,
         DataSetStorageAlgorithmRunner.IDataSetInApplicationServerRegistrator<T>,
-        DataSetRegistrationPersistentMap.IHolder
+        DataSetRegistrationContext.IHolder
 {
     private static final String ROLLBACK_QUEUE1_FILE_NAME_SUFFIX = "rollBackQueue1";
 
@@ -193,7 +194,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
 
     private AbstractTransactionState<T> state;
 
-    private DataSetRegistrationPersistentMap registrationContext;
+    private DataSetRegistrationContext registrationContext;
 
     // The registration service that owns this transaction
     private final DataSetRegistrationService<T> registrationService;
@@ -222,7 +223,9 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
         this.openBisService =
                 this.registrationService.getRegistratorContext().getGlobalState()
                         .getOpenBisService();
-        this.registrationContext = new DataSetRegistrationPersistentMap();
+        this.registrationContext =
+                new DataSetRegistrationContext(new DataSetRegistrationPersistentMap(),
+                        this.registrationService.getRegistratorContext().getGlobalState());
         this.autoRecoverySettings = autoRecoverySettings;
     }
 
@@ -428,7 +431,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
     }
 
     @Override
-    public DataSetRegistrationPersistentMap getRegistrationContext()
+    public DataSetRegistrationContext getRegistrationContext()
     {
         return registrationContext;
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
index 58cc68dd34b1846c4819e03289ee5405c4ab8f11..93400bba286a4483319b968036cbafb36489fbd5 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
@@ -21,7 +21,7 @@ import java.io.File;
 import net.lemnik.eodsql.DynamicTransactionQuery;
 
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
-import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap;
+import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSet;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetRegistrationTransaction;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
@@ -217,7 +217,7 @@ class DataSetRegistrationTransactionV2Delegate implements IDataSetRegistrationTr
     }
 
     @Override
-    public DataSetRegistrationPersistentMap getRegistrationContext()
+    public DataSetRegistrationContext getRegistrationContext()
     {
         return transaction.getRegistrationContext();
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
index 7303d5dfdb3251fce40189a2a3c13362d7d6b892..29345b1546596aec918a78bb2aa95ee4f26c6f3c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
@@ -21,7 +21,7 @@ import java.io.File;
 import net.lemnik.eodsql.DynamicTransactionQuery;
 
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
-import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap;
+import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSet;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetUpdatable;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.IExperiment;
@@ -265,7 +265,7 @@ public interface IDataSetRegistrationTransactionV2
      * 
      * @return The context, a hash-map-like object.
      */
-    DataSetRegistrationPersistentMap getRegistrationContext();
+    DataSetRegistrationContext getRegistrationContext();
 
     /**
      * @return Global state for this dropbox, including configuration properties specified by the
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
index 09b4ebe39b50cb53fa4dd489da5f7f778bd55412..8cd9be074b369c15e14f8a6c903bdf7b75d9092c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.etlserver.IStorageProcessorTransactional.UnstoreDataActi
 import ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate;
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.DataSetFile;
-import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationPersistentMap;
+import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationContext;
 import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationService;
 import ch.systemsx.cisd.etlserver.registrator.DataSetStorageAlgorithm;
 import ch.systemsx.cisd.etlserver.registrator.DataSetStorageAlgorithmRunner;
@@ -196,7 +196,7 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
                         + " time (max allowed is " + processMaxRetryCount + ")");
             }
 
-            DataSetRegistrationPersistentMap persistentMap =
+            DataSetRegistrationContext persistentMap =
                     service.getTransaction().getRegistrationContext();
 
             PyObject retryFunctionResult = null;
@@ -236,7 +236,8 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
             // should we catch some exceptions here? can we recover if whatever went wrong in here
 
             // creates the new transaction and propagates the values in the persistent map
-            service.transaction().getRegistrationContext().putAll(persistentMap);
+            service.transaction().getRegistrationContext().getPersistentMap()
+                    .putAll(persistentMap.getPersistentMap());
 
             waitTheRetryPeriod(processRetryPauseInSec);
         }
@@ -461,14 +462,15 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
                 new RecoveryHookAdaptor(recoveryState.getIncomingDataSetFile()
                         .getLogicalIncomingFile());
 
-        DataSetRegistrationPersistentMap.IHolder persistentMapHolder =
-                new DataSetRegistrationPersistentMap.IHolder()
+        DataSetRegistrationContext.IHolder persistentMapHolder =
+                new DataSetRegistrationContext.IHolder()
                     {
 
                         @Override
-                        public DataSetRegistrationPersistentMap getRegistrationContext()
+                        public DataSetRegistrationContext getRegistrationContext()
                         {
-                            return recoveryState.getPersistentMap();
+                            return new DataSetRegistrationContext(recoveryState.getPersistentMap(),
+                                    state.getGlobalState());
                         }
                     };
 
@@ -653,14 +655,14 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
 
         @Override
         public void executePreRegistration(
-                DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+DataSetRegistrationContext.IHolder persistentMapHolder)
         {
             throw new NotImplementedException("Recovery cannot execute pre-registration hook.");
         }
 
         @Override
         public void executePostRegistration(
-                DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+DataSetRegistrationContext.IHolder persistentMapHolder)
         {
             PyFunction function =
                     tryJythonFunction(getInterpreter(),
@@ -675,7 +677,7 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
          * This method does not belong to the IPrePostRegistrationHook interface. Is called directly
          * by recovery.
          */
-        public void executePostStorage(DataSetRegistrationPersistentMap.IHolder persistentMapHolder)
+        public void executePostStorage(DataSetRegistrationContext.IHolder persistentMapHolder)
         {
             PyFunction function =
                     tryJythonFunction(getInterpreter(),
@@ -687,7 +689,7 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
         }
 
         public void executePreRegistrationRollback(
-                DataSetRegistrationPersistentMap.IHolder persistentMapHolder, Throwable t)
+                DataSetRegistrationContext.IHolder persistentMapHolder, Throwable t)
         {
             PyFunction function =
                     tryJythonFunction(getInterpreter(),
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/recovery/DataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/recovery/DataSetStorageRecoveryManager.java
index a47d8a2300cb41acdd3c2de9753d512117bdfc86..712648be28b41a4afdc37da66f9de4fec8dfd898 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/recovery/DataSetStorageRecoveryManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/recovery/DataSetStorageRecoveryManager.java
@@ -66,7 +66,8 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan
         DataSetStoragePrecommitRecoveryState<T> recoveryState =
                 new DataSetStoragePrecommitRecoveryState<T>(registrationId,
                         runner.getDataSetStorageAlgorithms(), runner.getDssRegistrationLogger(),
-                        runner.getRollbackStack(), incoming, runner.getPersistentMap());
+                        runner.getRollbackStack(), incoming, runner.getRegistrationContext()
+                                .getPersistentMap());
 
         checkpointState(runner, recoveryState, RecoveryStage.PRECOMMIT);
     }
@@ -80,7 +81,8 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan
         DataSetStoragePrecommitRecoveryState<T> recoveryState =
                 new DataSetStoragePrecommitRecoveryState<T>(null,
                         runner.getDataSetStorageAlgorithms(), runner.getDssRegistrationLogger(),
-                        runner.getRollbackStack(), incoming, runner.getPersistentMap());
+                        runner.getRollbackStack(), incoming, runner.getRegistrationContext()
+                                .getPersistentMap());
 
         checkpointState(runner, recoveryState, RecoveryStage.POST_REGISTRATION_HOOK_EXECUTED);
     }
@@ -94,7 +96,7 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan
         DataSetStorageStorageRecoveryState<T> recoveryState =
                 new DataSetStorageStorageRecoveryState<T>(runner.getDataSetStorageAlgorithms(),
                         runner.getDssRegistrationLogger(), runner.getRollbackStack(), incoming,
-                        runner.getPersistentMap());
+                        runner.getRegistrationContext().getPersistentMap());
         checkpointState(runner, recoveryState, RecoveryStage.STORAGE_COMPLETED);
     }