Merged DEV/THOR1 to HEAD

32945: Fix for ALF-12122 Some CMIS queries with SOLR are not returning correct results

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32958 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2011-12-22 19:46:51 +00:00
parent 6b82d6d145
commit e3c9e3fb0b
4 changed files with 39 additions and 4 deletions

View File

@@ -20,7 +20,9 @@ package org.alfresco.jcr.item;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.Path.Element;
import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
@@ -157,6 +159,15 @@ public class JCRPath
return path.hashCode(); return path.hashCode();
} }
/* (non-Javadoc)
* @see org.alfresco.service.cmr.repository.Path.Element#getBaseNameElement(org.alfresco.repo.tenant.TenantService)
*/
@Override
public Element getBaseNameElement(TenantService tenantService)
{
return new SimpleElement(path);
}
} }
/** /**

View File

@@ -33,10 +33,12 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.Path.Element;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.version.Version; import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
@@ -128,6 +130,12 @@ public class NodeChangeTest
{ {
return name; return name;
} }
@Override
public Element getBaseNameElement(TenantService tenantService)
{
return this;
}
}); });
return path; return path;
} }

View File

@@ -579,14 +579,19 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
} }
Collection<Pair<Path, QName>> categoryPaths = getCategoryPaths(pair.getSecond(), aspects, props); Collection<Pair<Path, QName>> categoryPaths = getCategoryPaths(pair.getSecond(), aspects, props);
List<Path> directPaths = nodeDAO.getPaths(pair, false); List<Path> directPaths = nodeDAO.getPaths(pair, false);
Collection<Pair<Path, QName>> paths = new ArrayList<Pair<Path, QName>>(directPaths.size() + categoryPaths.size()); Collection<Pair<Path, QName>> paths = new ArrayList<Pair<Path, QName>>(directPaths.size() + categoryPaths.size());
for (Path path : directPaths) for (Path path : directPaths)
{ {
paths.add(new Pair<Path, QName>(path, null)); paths.add(new Pair<Path, QName>(path.getBaseNamePath(tenantService), null));
} }
paths.addAll(categoryPaths); for(Pair<Path, QName> catPair : categoryPaths)
{
paths.add(new Pair<Path, QName>(catPair.getFirst().getBaseNamePath(tenantService), catPair.getSecond()));
}
nodeMetaData.setPaths(paths); nodeMetaData.setPaths(paths);
} }

View File

@@ -21,7 +21,9 @@ package org.alfresco.repo.transfer;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.Path.Element;
import org.alfresco.util.ISO9075; import org.alfresco.util.ISO9075;
public class PathHelper public class PathHelper
@@ -73,6 +75,15 @@ public class PathHelper
{ {
return elementString; return elementString;
} }
/* (non-Javadoc)
* @see org.alfresco.service.cmr.repository.Path.Element#getBaseNameElement(org.alfresco.repo.tenant.TenantService)
*/
@Override
public Element getBaseNameElement(TenantService tenantService)
{
return new SimplePathElement(elementString);
}
} }