diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGenericTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGenericTest.java
index aa5efb5601f10e07d890178ea0c7f25ac96ec77b..6fd9f900ca9d12a6a35060e7f9790824db5489e0 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGenericTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGenericTest.java
@@ -30,6 +30,8 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.common.io.IOUtilities;
+import ch.systemsx.cisd.common.server.ISessionTokenProvider;
+import ch.systemsx.cisd.common.test.RecordingMatcher;
 import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent;
 import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContentNode;
 import ch.systemsx.cisd.openbis.dss.generic.server.DatasetSessionAuthorizer;
@@ -117,7 +119,7 @@ public class DssServiceRpcGenericTest extends AssertJUnit
         final String path = "abc/de";
         prepareLockDataSet(dataSetCode);
         prepareAuthorizationCheck(dataSetCode);
-        prepareGetContent(dataSetCode);
+        RecordingMatcher<ISessionTokenProvider> matcher = prepareGetContent(dataSetCode);
         context.checking(new Expectations()
             {
                 {
@@ -147,6 +149,7 @@ public class DssServiceRpcGenericTest extends AssertJUnit
         FileInfoDssDTO[] files =
                 dssService.listFilesForDataSet(SESSION_TOKEN, dataSetCode, path, true);
 
+        assertEquals(SESSION_TOKEN, matcher.recordedObject().getSessionToken());
         assertEquals(path, files[0].getPathInDataSet());
         assertEquals("main-node", files[0].getPathInListing());
         assertEquals(42L, files[0].getFileSize());
@@ -161,14 +164,14 @@ public class DssServiceRpcGenericTest extends AssertJUnit
         final String path = "abc/de";
         prepareLockDataSet(dataSetCode);
         prepareAuthorizationCheck(dataSetCode);
-        prepareGetContent(dataSetCode);
+        RecordingMatcher<ISessionTokenProvider> matcher = prepareGetContent(dataSetCode);
         context.checking(new Expectations()
             {
                 {
                     IHierarchicalContentNode mainNode = createNodeMock("mainNode");
                     one(content).getNode(path);
                     will(returnValue(mainNode));
-
+                    
                     IHierarchicalContentNode childNode1 = createNodeMock("childNode1");
                     IHierarchicalContentNode childNode1Child1 = createNodeMock("childNode1Child1");
                     IHierarchicalContentNode childNode1Child2 = createNodeMock("childNode1Child2");
@@ -226,6 +229,7 @@ public class DssServiceRpcGenericTest extends AssertJUnit
         FileInfoDssDTO[] dataSets =
                 dssService.listFilesForDataSet(SESSION_TOKEN, dataSetCode, path, true);
 
+        assertEquals(SESSION_TOKEN, matcher.recordedObject().getSessionToken());
         assertEquals(6, dataSets.length);
         assertEquals(fileInfoString(path, "child1", -1, null), dataSets[0].toString());
         assertEquals(fileInfoString(path, "child1/child1", 11, 123), dataSets[1].toString());
@@ -274,16 +278,22 @@ public class DssServiceRpcGenericTest extends AssertJUnit
 
     }
 
-    private void prepareGetContent(final String dataSetCode)
+    private RecordingMatcher<ISessionTokenProvider> prepareGetContent(final String dataSetCode)
     {
+        final RecordingMatcher<ISessionTokenProvider> sessionTokenProviderMatcher =
+                new RecordingMatcher<ISessionTokenProvider>();
         context.checking(new Expectations()
             {
                 {
+                    one(contentProvider).cloneFor(with(sessionTokenProviderMatcher));
+                    will(returnValue(contentProvider));
+
                     one(contentProvider).asContent(dataSetCode);
                     will(returnValue(content));
 
                     one(content).close(); // content should be always closed
                 }
             });
+        return sessionTokenProviderMatcher;
     }
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
index 3e071d35405d4fb270d7db2d7d82f71c035b71e8..b321fd03d78d37ce46c1b6fa75447c92b57f20b4 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
@@ -41,6 +41,7 @@ import ch.systemsx.cisd.common.action.IDelegatedAction;
 import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.server.ISessionTokenProvider;
+import ch.systemsx.cisd.common.test.RecordingMatcher;
 import ch.systemsx.cisd.common.test.TrackingMockery;
 import ch.systemsx.cisd.common.utilities.ITimeProvider;
 import ch.systemsx.cisd.openbis.common.io.hierarchical_content.DefaultFileBasedHierarchicalContentFactory;
@@ -111,7 +112,7 @@ public class TemplateBasedDataSetResourceResolverTest extends AbstractFileSystem
         @Override
         public IHierarchicalContentProvider cloneFor(ISessionTokenProvider sessionTokenProvider)
         {
-            return null;
+            return this;
         }
     }
 
@@ -417,6 +418,7 @@ public class TemplateBasedDataSetResourceResolverTest extends AbstractFileSystem
 
         prepareExperimentListExpectations(dataSets);
 
+        final RecordingMatcher<ISessionTokenProvider> sessionTokeProviderMatcher = new RecordingMatcher<ISessionTokenProvider>();
         context.checking(new Expectations()
             {
                 {
@@ -425,6 +427,9 @@ public class TemplateBasedDataSetResourceResolverTest extends AbstractFileSystem
 
                     one(hierarchicalContentProvider).asContent((ExternalData) ds1);
                     will(returnValue(content));
+                    
+                    one(hierarchicalContentProvider).cloneFor(with(sessionTokeProviderMatcher));
+                    will(returnValue(hierarchicalContentProvider));
 
                     IHierarchicalContentNode rootNode =
                             context.mock(IHierarchicalContentNode.class, "root");
@@ -465,6 +470,7 @@ public class TemplateBasedDataSetResourceResolverTest extends AbstractFileSystem
 
         FtpFile ftpFile = resolver.resolve(path, resolverContext);
 
+        assertEquals(SESSION_TOKEN, sessionTokeProviderMatcher.recordedObject().getSessionToken());
         assertNotNull(ftpFile);
         assertEquals(subPath, ftpFile.getName());
         assertTrue(ftpFile.isFile());