From 7b4b6d3537a152ff03350537df4fa3e0ed267eec Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Fri, 19 Mar 2010 14:40:05 +0000 Subject: [PATCH] Fix for error shown if empty search string used in Add User to Group dialog in Explorer. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19399 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web/bean/groups/AddUsersDialog.java | 65 ++++++++++--------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java b/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java index bce69c5773..0aab029cd0 100644 --- a/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java +++ b/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java @@ -201,41 +201,44 @@ public class AddUsersDialog extends BaseDialogBean { public SelectItem[] execute() throws Exception { - SelectItem[] items; - + SelectItem[] items = new SelectItem[0]; + // Use lucene search to retrieve user details String term = LuceneQueryParser.escape(contains.trim()); - StringBuilder query = new StringBuilder(128); - Utils.generatePersonSearch(query, term); - List nodes; - ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query( - Repository.getStoreRef(), - SearchService.LANGUAGE_LUCENE, - query.toString()); - try + if (term.length() != 0) { - nodes = resultSet.getNodeRefs(); + StringBuilder query = new StringBuilder(128); + Utils.generatePersonSearch(query, term); + List nodes; + ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query( + Repository.getStoreRef(), + SearchService.LANGUAGE_LUCENE, + query.toString()); + try + { + nodes = resultSet.getNodeRefs(); + } + finally + { + resultSet.close(); + } + + ArrayList itemList = new ArrayList(nodes.size()); + for (NodeRef personRef : nodes) + { + String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME); + if (AuthenticationUtil.getGuestUserName().equals(username) == false) + { + String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME); + String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME); + + SelectItem item = new SortableSelectItem(username, firstName + " " + lastName + " [" + username + "]", lastName); + itemList.add(item); + } + } + items = new SelectItem[itemList.size()]; + itemList.toArray(items); } - finally - { - resultSet.close(); - } - - ArrayList itemList = new ArrayList(nodes.size()); - for (NodeRef personRef : nodes) - { - String username = (String)getNodeService().getProperty(personRef, ContentModel.PROP_USERNAME); - if (AuthenticationUtil.getGuestUserName().equals(username) == false) - { - String firstName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_FIRSTNAME); - String lastName = (String)getNodeService().getProperty(personRef, ContentModel.PROP_LASTNAME); - - SelectItem item = new SortableSelectItem(username, firstName + " " + lastName + " [" + username + "]", lastName); - itemList.add(item); - } - } - items = new SelectItem[itemList.size()]; - itemList.toArray(items); return items; } });