diff --git a/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java b/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java index 90e1e732e8..529714e41a 100644 --- a/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java +++ b/src/main/java/org/alfresco/rest/api/impl/TagsImpl.java @@ -26,9 +26,11 @@ package org.alfresco.rest.api.impl; import java.util.AbstractList; -import java.util.ArrayList; -import java.util.List; - +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.alfresco.query.PagingResults; import org.alfresco.repo.tagging.NonExistentTagException; import org.alfresco.repo.tagging.TagExistsException; @@ -135,25 +137,23 @@ public class TagsImpl implements Tags List> page = results.getPage(); List tags = new ArrayList(page.size()); List> tagsByCount = null; + Map tagsByCountMap = new HashMap(); if (params.getInclude().contains(PARAM_INCLUDE_COUNT)) { tagsByCount = taggingService.findTaggedNodesAndCountByTagName(storeRef); + if (tagsByCount != null) + { + for (Pair tagByCountElem : tagsByCount) + { + tagsByCountMap.put(tagByCountElem.getFirst(), tagByCountElem.getSecond()); + } + } } for (Pair pair : page) { Tag selectedTag = new Tag(pair.getFirst(), pair.getSecond()); - if (tagsByCount != null) - { - for (Pair tagByCount : tagsByCount) - { - if (tagByCount.getFirst().equals(selectedTag.getTag())) - { - selectedTag.setCount(tagByCount.getSecond()); - break; - } - } - } + selectedTag.setCount(tagsByCountMap.get(selectedTag.getTag())); tags.add(selectedTag); }