You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/12/24 22:45:49 UTC

[isis] branch master updated: ISIS-2033: dn-integration, regression: fixes named query result needs a defensive copy before further processing, not sure why

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 9ffc00c  ISIS-2033: dn-integration, regression: fixes named query result needs a defensive copy before further processing, not sure why
9ffc00c is described below

commit 9ffc00ca964ff81fca58ff7d48564fb078d7b229
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 24 23:45:36 2020 +0100

    ISIS-2033: dn-integration, regression: fixes named query result needs a
    defensive copy before further processing, not sure why
---
 .../queries/PersistenceQueryProcessorForApplibQuery.java       | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/persistence/queries/PersistenceQueryProcessorForApplibQuery.java b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/persistence/queries/PersistenceQueryProcessorForApplibQuery.java
index 9e3ef3e..a0ac60d 100644
--- a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/persistence/queries/PersistenceQueryProcessorForApplibQuery.java
+++ b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/persistence/queries/PersistenceQueryProcessorForApplibQuery.java
@@ -24,6 +24,7 @@ import java.util.List;
 import javax.jdo.Query;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -120,15 +121,20 @@ extends _PersistenceQueryProcessorAbstract<PersistenceQueryFindUsingApplibQueryD
         if (log.isDebugEnabled()) {
             log.debug("{} # {} ( {} )", cls.getName(), queryName, queryParametersByName);
         }
-
+        
         try {
             val resultList = (List<?>) jdoQuery.executeWithMap(queryParametersByName);
             if(resultList == null
                     || resultList.isEmpty()) {
                 return Collections.emptyList();
             }
-            return resultList;
             
+            if(queryRangeModel.hasRange()) {
+                _Assert.assertTrue(resultList.size()<=queryRangeModel.getCount());
+            }
+            
+            // puzzler: needs a defensive copy, not sure why
+            return _Lists.newArrayList(resultList);
         } finally {
             jdoQuery.closeAll();
         }