From dd65d934353472c0963679d0e1d372ef9540cb8a Mon Sep 17 00:00:00 2001 From: Steven Glover Date: Thu, 20 Oct 2011 09:01:22 +0000 Subject: [PATCH] Fix NPE seen in the logs for bug https://issues.alfresco.com/jira/browse/ALF-10934 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31373 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/solr/SOLRTrackingComponentImpl.java | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/source/java/org/alfresco/repo/solr/SOLRTrackingComponentImpl.java b/source/java/org/alfresco/repo/solr/SOLRTrackingComponentImpl.java index 9c35803284..1325264ff9 100644 --- a/source/java/org/alfresco/repo/solr/SOLRTrackingComponentImpl.java +++ b/source/java/org/alfresco/repo/solr/SOLRTrackingComponentImpl.java @@ -461,6 +461,26 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent return nodeIds; } + protected Map getProperties(Long nodeId) + { + Map props = null; + + // ALF-10641 + // Residual properties are un-indexed -> break serlialisation + Map sourceProps = nodeDAO.getNodeProperties(nodeId); + props = new HashMap((int)(sourceProps.size() * 1.3)); + for(QName propertyQName : sourceProps.keySet()) + { + PropertyDefinition propDef = dictionaryService.getProperty(propertyQName); + if(propDef != null) + { + props.put(propertyQName, sourceProps.get(propertyQName)); + } + } + + return props; + } + /** * {@inheritDoc} */ @@ -518,25 +538,13 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent if(includeProperties) { - // ALF-10641 - // Residual properties are un-indexed -> break serlialisation - Map sourceProps = nodeDAO.getNodeProperties(nodeId); - props = new HashMap((int)(sourceProps.size() * 1.3)); - for(QName propertyQName : sourceProps.keySet()) - { - PropertyDefinition propDef = dictionaryService.getProperty(propertyQName); - if(propDef != null) - { - props.put(propertyQName, sourceProps.get(propertyQName)); - } - } + props = getProperties(nodeId); nodeMetaData.setProperties(props); } else { nodeMetaData.setProperties(Collections.emptyMap()); } - if(includeAspects) { @@ -546,6 +554,10 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent if(includePaths) { + if(props == null) + { + props = getProperties(nodeId); + } Collection> categoryPaths = getCategoryPaths(pair.getSecond(), aspects, props); List directPaths = nodeDAO.getPaths(pair, false);