ACE-2620 - ensure ResultSetMeta.hasMore is always available even if a search fails due to query parser error.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@85704 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2014-09-25 10:35:22 +00:00
parent ac4698ae3e
commit 0f73edbd0a

View File

@@ -587,10 +587,8 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
String defaultField = (String)def.get("defaultField"); String defaultField = (String)def.get("defaultField");
String defaultOperator = (String)def.get("defaultOperator"); String defaultOperator = (String)def.get("defaultOperator");
String searchTerm = (String) def.get("searchTerm"); String searchTerm = (String) def.get("searchTerm");
Object spellCheckObject = def.get("spellCheck"); Boolean spellCheck = (Boolean) def.get("spellCheck");
boolean spellCheck = (spellCheckObject == null) ? false : (boolean) spellCheckObject;
// extract supplied values // extract supplied values
// sorting columns // sorting columns
@@ -672,7 +670,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
sp.setLanguage(language != null ? language : SearchService.LANGUAGE_LUCENE); sp.setLanguage(language != null ? language : SearchService.LANGUAGE_LUCENE);
sp.setQuery(query); sp.setQuery(query);
sp.setSearchTerm(searchTerm); sp.setSearchTerm(searchTerm);
sp.setSpellCheck(spellCheck); sp.setSpellCheck(spellCheck != null ? spellCheck.booleanValue() : false);
if (defaultField != null) if (defaultField != null)
{ {
sp.setDefaultFieldName(defaultField); sp.setDefaultFieldName(defaultField);
@@ -1006,9 +1004,13 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
{ {
throw new AlfrescoRuntimeException("Failed to execute search: " + sp.getQuery(), err); throw new AlfrescoRuntimeException("Failed to execute search: " + sp.getQuery(), err);
} }
else if (logger.isDebugEnabled()) else
{ {
logger.debug("Failed to execute search: " + sp.getQuery(), err); if (logger.isDebugEnabled())
logger.debug("Failed to execute search: " + sp.getQuery(), err);
// put expected values to handle case where exception occurs in search
meta.put("numberFound", 0);
meta.put("hasMore", false);
} }
} }
finally finally