That's right, but don't we have already a Jira opened for that at large?

Jacques

Le 11/04/2016 16:38, Pierre Smits a écrit :
This
{code}
  if (viewSize == null) viewSize = UtilProperties.getPropertyAsInteger("widget",
"widget.form.defaultViewSize", 20);
{code}

should use EntityUtilProperties to maximise multi-tenancy support.

Best regards,

Pierre

Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Mon, Apr 11, 2016 at 4:33 PM, <jler...@apache.org> wrote:

Author: jleroux
Date: Mon Apr 11 14:33:16 2016
New Revision: 1738590

URL: http://svn.apache.org/viewvc?rev=1738590&view=rev
Log:
This slipped in by error in r1738588

Modified:

ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java

Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java?rev=1738590&r1=1738589&r2=1738590&view=diff

==============================================================================
---
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java
(original)
+++
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServices.java
Mon Apr 11 14:33:16 2016
@@ -35,7 +35,6 @@ import org.ofbiz.base.util.UtilGenerics;
  import org.ofbiz.base.util.UtilMisc;
  import org.ofbiz.base.util.UtilProperties;
  import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.collections.PagedList;
  import org.ofbiz.entity.Delegator;
  import org.ofbiz.entity.GenericEntityException;
  import org.ofbiz.entity.GenericValue;
@@ -46,13 +45,13 @@ import org.ofbiz.entity.condition.Entity
  import org.ofbiz.entity.condition.EntityOperator;
  import org.ofbiz.entity.model.DynamicViewEntity;
  import org.ofbiz.entity.model.ModelKeyMap;
+import org.ofbiz.entity.util.EntityListIterator;
  import org.ofbiz.entity.util.EntityQuery;
  import org.ofbiz.security.Security;
  import org.ofbiz.service.DispatchContext;
  import org.ofbiz.service.GenericServiceException;
  import org.ofbiz.service.LocalDispatcher;
  import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.widget.renderer.Paginator;

  /**
   * OrderLookupServices
@@ -67,9 +66,10 @@ public class OrderLookupServices {
          Security security = dctx.getSecurity();

          GenericValue userLogin = (GenericValue) context.get("userLogin");
-        Integer viewIndex = Paginator.getViewIndex(context, "viewIndex",
1);
-        Integer viewSize = Paginator.getViewSize(context, "viewSize");
-
+        Integer viewIndex = (Integer) context.get("viewIndex");
+        if (viewIndex == null) viewIndex = 1;
+        Integer viewSize = (Integer) context.get("viewSize");
+        if (viewSize == null) viewSize =
UtilProperties.getPropertyAsInteger("widget",
"widget.form.defaultViewSize", 20);
          String showAll = (String) context.get("showAll");
          String useEntryDate = (String) context.get("useEntryDate");
          Locale locale = (Locale) context.get("locale");
@@ -582,29 +582,47 @@ public class OrderLookupServices {
          int orderCount = 0;

          // get the index for the partial list
-        int lowIndex = 0;
-        int highIndex = 0;
+        int lowIndex = (((viewIndex.intValue() - 1) *
viewSize.intValue()) + 1);
+        int highIndex = viewIndex.intValue() * viewSize.intValue();

          if (cond != null) {
-            PagedList<GenericValue> pagedOrderList = null;
+            EntityListIterator eli = null;
              try {
                  // do the lookup
-                pagedOrderList = EntityQuery.use(delegator)
+                eli = EntityQuery.use(delegator)
                          .select(fieldsToSelect)
                          .from(dve)
                          .where(cond)
                          .orderBy(orderBy)
                          .distinct() // set distinct on so we only get one
row per order
+                        .maxRows(highIndex)
                          .cursorScrollInsensitive()
-                        .queryPagedList(viewIndex - 1, viewSize);
+                        .queryIterator();
+
+                orderCount = eli.getResultsSizeAfterPartialList();
+
+                // get the partial list for this page
+                eli.beforeFirst();
+                if (orderCount > viewSize.intValue()) {
+                    orderList = eli.getPartialList(lowIndex,
viewSize.intValue());
+                } else if (orderCount > 0) {
+                    orderList = eli.getCompleteList();
+                }

-                orderCount = pagedOrderList.getSize();
-                lowIndex = pagedOrderList.getStartIndex();
-                highIndex = pagedOrderList.getEndIndex();
-                orderList = pagedOrderList.getData();
+                if (highIndex > orderCount) {
+                    highIndex = orderCount;
+                }
              } catch (GenericEntityException e) {
                  Debug.logError(e, module);
                  return ServiceUtil.returnError(e.getMessage());
+            } finally {
+                if (eli != null) {
+                    try {
+                        eli.close();
+                    } catch (GenericEntityException e) {
+                        Debug.logWarning(e, e.getMessage(), module);
+                    }
+                }
              }
          }




Reply via email to