From 1d8747ebe0927601b98cd4bf9eb22322c8c1a088 Mon Sep 17 00:00:00 2001 From: tiagos Date: Tue, 20 Oct 2020 11:44:10 +0100 Subject: [PATCH] [RM-7162] Added validations to prevent having a cached empty set --- .../util/RMContainerCacheManager.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMContainerCacheManager.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMContainerCacheManager.java index 2517198e02..844863f61b 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMContainerCacheManager.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/util/RMContainerCacheManager.java @@ -34,7 +34,6 @@ import org.alfresco.repo.cache.SimpleCache; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.StoreRef; -import org.alfresco.service.namespace.QName; import org.alfresco.util.Pair; /** @@ -77,7 +76,17 @@ public class RMContainerCacheManager implements RecordsManagementModel */ public boolean isCached(StoreRef storeRef) { - return cache.contains(getKey(storeRef)); + boolean isCached = true; + Pair key = getKey(storeRef); + Set values = cache.get(key); + if (values == null || values.size() == 0) + { + if (values != null) { + cache.remove(key); + } + isCached = false; + } + return isCached; } /** @@ -117,7 +126,10 @@ public class RMContainerCacheManager implements RecordsManagementModel entries.add(nodeRef); } - cache.put(key, entries); + if (entries.size() > 0) + { + cache.put(key, entries); + } } } @@ -136,6 +148,9 @@ public class RMContainerCacheManager implements RecordsManagementModel if (cache.contains(key)) { cache.get(key).remove(nodeRef); + if (cache.get(key).size() == 0) { + cache.remove(key); + } } } }