You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/02/24 20:25:19 UTC

airavata git commit: removing duplicates

Repository: airavata
Updated Branches:
  refs/heads/develop 1378dbdb0 -> 6c367b92d


removing duplicates


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/6c367b92
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/6c367b92
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/6c367b92

Branch: refs/heads/develop
Commit: 6c367b92d589dd79926d47f534c232b6161d85b0
Parents: 1378dbd
Author: scnakandala <su...@gmail.com>
Authored: Fri Feb 24 15:25:15 2017 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Fri Feb 24 15:25:15 2017 -0500

----------------------------------------------------------------------
 .../registry/db/repositories/EntityRepository.java   | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/6c367b92/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
----------------------------------------------------------------------
diff --git a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
index 2d16d34..d713124 100644
--- a/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
+++ b/modules/sharing-registry/sharing-registry-server/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
@@ -30,10 +30,7 @@ import org.apache.airavata.sharing.registry.models.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class EntityRepository extends AbstractRepository<Entity, EntityEntity, EntityPK> {
     private final static Logger logger = LoggerFactory.getLogger(EntityRepository.class);
@@ -57,7 +54,7 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
             groupIdString += groupId + "','";
         groupIdString = groupIdString.substring(0, groupIdString.length()-2);
 
-        String query = "SELECT DISTINCT E.* FROM ENTITY AS E INNER JOIN SHARING AS S ON (E.ENTITY_ID=S.ENTITY_ID AND E.DOMAIN_ID=S.DOMAIN_ID) WHERE " +
+        String query = "SELECT E.* FROM ENTITY AS E INNER JOIN SHARING AS S ON (E.ENTITY_ID=S.ENTITY_ID AND E.DOMAIN_ID=S.DOMAIN_ID) WHERE " +
                 "E.DOMAIN_ID = '" + domainId + "' AND " + "S.GROUP_ID IN(" + groupIdString + ") AND ";
 
         for(SearchCriteria searchCriteria : filters){
@@ -135,6 +132,8 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
                 .setMaxResults(newLimit).getResultList());
         List<Entity> resultSet = new ArrayList<>();
 
+        HashMap<String, Object> keys = new HashMap<>();
+
         temp.stream().forEach(rs->{
             Entity entity = new Entity();
             entity.setEntityId((String)(rs[0]));
@@ -150,7 +149,11 @@ public class EntityRepository extends AbstractRepository<Entity, EntityEntity, E
             entity.setCreatedTime((long)(rs[10]));
             entity.setUpdatedTime((long)(rs[11]));
 
-            resultSet.add(entity);
+            //Removing duplicates. Another option is to change the query to remove duplicates.
+            if (!keys.containsKey(entity + domainId + "," + entity.entityId)) {
+                resultSet.add(entity);
+                keys.put(entity + domainId + "," + entity.entityId, null);
+            }
         });
 
         return resultSet;