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