From c5d80acd42b5df5d22ae6b6d5447e2e87d23531e Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Thu, 9 Mar 2017 15:00:03 +0000
Subject: [PATCH] SSDM-4682 : bugix, openBIS empty trashcan breaks when num
 entities over 2-byte due to SQL IN

SVN: 37880
---
 .../openbis/generic/server/dataaccess/db/DataDAO.java  | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
index 17ae4aab17c..4e4b6c7c464 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
@@ -1220,7 +1220,15 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
 
         final String query =
                 "select " + side1 + " from data_set_relationships where " + side2 + " in (:ids) and relationship_id = :type";
-        return findRelatedIds(query, dataSetIds, relationshipTypeId);
+        InQueryScroller<TechId> dataSetIdsScroller = new InQueryScroller<>(dataSetIds, 2);
+        List<TechId> partialDataSetIds = null;
+        Set<TechId> result = new HashSet<>();
+        while ((partialDataSetIds = dataSetIdsScroller.next()) != null)
+        {
+            Set<TechId> partialResult = findRelatedIds(query, partialDataSetIds, relationshipTypeId);
+            result.addAll(partialResult);
+        }
+        return result;
     }
 
     @SuppressWarnings("unchecked")
-- 
GitLab