From 354ae7734a08bcb406ffb55046bc2ec3aeb3d3e7 Mon Sep 17 00:00:00 2001
From: felmer <franz-josef.elmer@id.ethz.ch>
Date: Thu, 15 Jun 2023 09:41:32 +0200
Subject: [PATCH] SSDM-13489: Adding log statements in context of caching file
 system views

---
 .../dss/generic/server/ftp/DSSFileSystemView.java      | 10 ++++++++++
 .../cisd/openbis/dss/generic/server/ftp/FtpServer.java |  5 ++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

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 aa8a3fe81ed..57dcb2aa9a3 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 580ff84a36c..0d85b3e2dda 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
         {
-- 
GitLab