From 62fe5a77a0858e8de1d846f1bbaf90f3f8b13319 Mon Sep 17 00:00:00 2001 From: lucio Date: Tue, 17 Mar 2020 13:58:37 +0100 Subject: [PATCH] removes duplicate nodes in search --- src/main/java/org/gcube/data/access/storagehub/Utils.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/data/access/storagehub/Utils.java b/src/main/java/org/gcube/data/access/storagehub/Utils.java index 0d4014c..b733999 100644 --- a/src/main/java/org/gcube/data/access/storagehub/Utils.java +++ b/src/main/java/org/gcube/data/access/storagehub/Utils.java @@ -9,6 +9,7 @@ import java.security.MessageDigest; import java.util.ArrayList; import java.util.Calendar; import java.util.Deque; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -139,11 +140,15 @@ public class Utils { int count =0; logger.trace("selected range is {}", range); Node2ItemConverter node2Item= new Node2ItemConverter(); + Set duplicateId = new HashSet(); while (iterator.hasNext()){ Node current = iterator.nextNode(); logger.debug("[SEARCH] evaluating node {} ",current.hasProperty(NodeProperty.TITLE.toString())? current.getProperty(NodeProperty.TITLE.toString()):current.getName()); + //REMOVE duplicate nodes, in case the indexes are not working + if (duplicateId.contains(current.getIdentifier())) continue; + //ECLUDES node not authorized, in case the indexes are not working if (authChecker!=null) try { @@ -163,7 +168,7 @@ public class Utils { returnList.add(item); } count++; - + duplicateId.add(current.getIdentifier()); } return returnList; }