diff --git a/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java b/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java index aa8a3fe81ed9ec23a078e1160eab659eada1c947..57dcb2aa9a36337a0fda9746d27ad16499122d2e 100644 --- a/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java +++ b/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java @@ -15,6 +15,7 @@ */ package ch.systemsx.cisd.openbis.dss.generic.server.ftp; +import java.lang.ref.Cleaner; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -115,6 +116,15 @@ public class DSSFileSystemView implements FileSystemView { this.sessionToken = sessionToken; this.cache = new Cache(); + Cleaner cleaner = Cleaner.create(); + cleaner.register(cache, new Runnable() + { + @Override + public void run() + { + operationLog.info("Finish cache for session " + sessionToken + ": " + cache); + } + }); this.service = (IServiceForDataStoreServer) Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] { IServiceForDataStoreServer.class }, new ServiceInvocationHandler(service)); diff --git a/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java b/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java index 580ff84a36c3aa52986973aff01490811a775f81..0d85b3e2ddaf12a959b923c9b3c7780275749d66 100644 --- a/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java +++ b/server-original-data-store/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpServer.java @@ -350,14 +350,17 @@ public class FtpServer implements FileSystemFactory, org.apache.sshd.common.file String sessionToken = ((FtpUser) user).getSessionToken(); DSSFileSystemView fileSystemView = new DSSFileSystemView(sessionToken, openBisService, generalInfoService, v3api, pathResolverRegistry); + operationLog.info("Get file system views set for session " + sessionToken + " (" + + fileSystemViewsBySessionToken.size() + " sessions are cached)"); Set<DSSFileSystemView> views = fileSystemViewsBySessionToken.get(sessionToken); if (views == null) { + operationLog.info("Create new file system views set for session " + sessionToken); views = new HashSet<>(); fileSystemViewsBySessionToken.put(sessionToken, views); } views.add(fileSystemView); - operationLog.info(views.size() + " filesystem views"); + operationLog.info("There are " + views.size() + " file system views sets cached for session " + sessionToken); return fileSystemView; } else {