From 72177c1f3febcaf752552d349c066581d61ce48f Mon Sep 17 00:00:00 2001 From: Will Ezell Date: Thu, 16 Nov 2017 19:36:25 -0500 Subject: [PATCH] #12716 something like this - unteseted --- .../factories/MultiTreeFactory.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java index 383aedfdf715..c643b13f9429 100644 --- a/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java +++ b/dotCMS/src/main/java/com/dotmarketing/factories/MultiTreeFactory.java @@ -1,8 +1,11 @@ package com.dotmarketing.factories; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.dotmarketing.beans.Identifier; import com.dotmarketing.beans.Inode; @@ -23,6 +26,7 @@ import com.dotmarketing.services.PageServices; import com.dotmarketing.util.InodeUtils; import com.dotmarketing.util.Logger; +import com.google.common.collect.Lists; /** * This class provides utility routines to interact with the Multi-Tree @@ -674,11 +678,17 @@ private static void updateHTMLPageVersionTS(String id) throws DotDataException, * */ private static void refreshPageInCache(String pageIdentifier) throws DotDataException, DotSecurityException { - Identifier ident = APILocator.getIdentifierAPI().find(pageIdentifier); - List allPageVersions = APILocator.getContentletAPI() - .findAllVersions(ident, APILocator.getUserAPI().getSystemUser(), false); + Set inodes = new HashSet(); + List infos = APILocator.getVersionableAPI().findContentletVersionInfos(pageIdentifier); + for (ContentletVersionInfo versionInfo : infos) { + inodes.add(versionInfo.getWorkingInode()); + if(versionInfo.getLiveInode() != null){ + inodes.add(versionInfo.getLiveInode()); + } + } - for (Contentlet pageContent : allPageVersions) { + List cons = APILocator.getContentletAPIImpl().findContentlets(Lists.newArrayList(inodes)); + for (Contentlet pageContent : cons) { IHTMLPage htmlPage = APILocator.getHTMLPageAssetAPI().fromContentlet(pageContent); PageServices.invalidateAll(htmlPage); }