diff --git a/source/java/org/alfresco/opencmis/CMISConnector.java b/source/java/org/alfresco/opencmis/CMISConnector.java index ba2c9157ef..aeada8c4ce 100644 --- a/source/java/org/alfresco/opencmis/CMISConnector.java +++ b/source/java/org/alfresco/opencmis/CMISConnector.java @@ -2783,6 +2783,13 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen for (CMISResultSetRow row : rs) { + NodeRef nodeRef = row.getNodeRef(); + + if(!nodeService.exists(nodeRef) || filter(nodeRef)) + { + continue; + } + ObjectDataImpl hit = new ObjectDataImpl(); PropertiesImpl properties = new PropertiesImpl(); hit.setProperties(properties); @@ -2799,7 +2806,6 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen if (fetchObject) { - NodeRef nodeRef = row.getNodeRef(); TypeDefinitionWrapper type = getType(nodeRef); if (type == null) { diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java index ca3a03d6b1..a37be894b5 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBQueryEngine.java @@ -178,7 +178,7 @@ public class DBQueryEngine implements QueryEngine set.add(node.getId()); } List nodeIds = new ArrayList(set); - ResultSet rs = new DBResultSet(options.getAsSearchParmeters(), nodeIds, nodeDAO, nodeService, Integer.MAX_VALUE); + ResultSet rs = new DBResultSet(options.getAsSearchParmeters(), nodeIds, nodeDAO, nodeService, tenantService, Integer.MAX_VALUE); ResultSet paged = new PagingLuceneResultSet(rs, options.getAsSearchParmeters(), nodeService); answer.put(key, paged); diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBResultSet.java b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBResultSet.java index 35864dde4a..3b16a1b5c9 100644 --- a/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBResultSet.java +++ b/source/java/org/alfresco/repo/search/impl/querymodel/impl/db/DBResultSet.java @@ -26,6 +26,7 @@ import java.util.List; import org.alfresco.repo.domain.node.NodeDAO; import org.alfresco.repo.search.AbstractResultSet; import org.alfresco.repo.search.SimpleResultSetMetaData; +import org.alfresco.repo.tenant.TenantService; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -49,15 +50,18 @@ public class DBResultSet extends AbstractResultSet private NodeService nodeService; + private TenantService tenantService; + private SimpleResultSetMetaData resultSetMetaData; private BitSet prefetch; - public DBResultSet(SearchParameters searchParameters, List dbids, NodeDAO nodeDao, NodeService nodeService, int maximumResultsFromUnlimitedQuery) + public DBResultSet(SearchParameters searchParameters, List dbids, NodeDAO nodeDao, NodeService nodeService, TenantService tenantService, int maximumResultsFromUnlimitedQuery) { this.nodeDao = nodeDao; this.dbids = dbids; this.nodeService = nodeService; + this.tenantService = tenantService; this.prefetch = new BitSet(dbids.size()); nodeRefs= new NodeRef[(dbids.size())]; @@ -190,7 +194,7 @@ public class DBResultSet extends AbstractResultSet int bulkFetchSize = getBulkFetchSize(); if(bulkFetchSize < 1) { - nodeRefs[n] = nodeDao.getNodePair(dbids.get(n)).getSecond(); + nodeRefs[n] = tenantService.getBaseName(nodeDao.getNodePair(dbids.get(n)).getSecond()); return; } @@ -223,7 +227,7 @@ public class DBResultSet extends AbstractResultSet nodeDao.cacheNodesById(fetchList); for (int i = done.nextSetBit(0); i >= 0; i = done.nextSetBit(i+1)) { - nodeRefs[n+i] = nodeDao.getNodePair(fetchList.get(i)).getSecond(); + nodeRefs[n+i] = tenantService.getBaseName(nodeDao.getNodePair(fetchList.get(i)).getSecond()); } } }