You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Jacques Le Roux <ja...@les7arts.com> on 2016/04/13 13:31:08 UTC

Re: svn commit: r1738590 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderLookupServic es.java

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, <jl...@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);
>> +                    }
>> +                }
>>               }
>>           }
>>
>>
>>
>>