You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2017/06/13 09:48:49 UTC

svn commit: r1798571 - in /ofbiz/ofbiz-framework/trunk: applications/product/src/main/java/org/apache/ofbiz/product/category/ framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/ framework/service/src/main/java/org/apache/ofbiz/ser...

Author: jleroux
Date: Tue Jun 13 09:48:49 2017
New Revision: 1798571

URL: http://svn.apache.org/viewvc?rev=1798571&view=rev
Log:
No functional changes. 

Replaces EntityListIterator.close() in finally by try-with-ressource

I think I have done all these kinds of changes. This is tested.

Modified:
    ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryServices.java
    ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Iterate.java
    ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java

Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryServices.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryServices.java?rev=1798571&r1=1798570&r2=1798571&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryServices.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/category/CategoryServices.java Tue Jun 13 09:48:49 2017
@@ -285,7 +285,6 @@ public class CategoryServices {
 
         List<GenericValue> productCategoryMembers = null;
         if (productCategory != null) {
-            EntityListIterator pli = null;
             try {
                 if (useCacheForMembers) {
                     productCategoryMembers = EntityQuery.use(delegator).from(entityName).where("productCategoryId", productCategoryId).orderBy(orderByFields).cache(true).queryList();
@@ -354,45 +353,50 @@ public class CategoryServices {
                     }
                     EntityCondition mainCond = EntityCondition.makeCondition(mainCondList, EntityOperator.AND);
 
-                    // set distinct on
-                    // using list iterator
-                    pli = EntityQuery.use(delegator).from(entityName).where(mainCond).orderBy(orderByFields).cursorScrollInsensitive().maxRows(highIndex).queryIterator();
-
-                    // get the partial list for this page
-                    if (limitView) {
-                        if (viewProductCategoryId != null) {
-                            // do manual checking to filter view allow
-                            productCategoryMembers = new LinkedList<GenericValue>();
-                            GenericValue nextValue;
-                            int chunkSize = 0;
-                            listSize = 0;
-
-                            while ((nextValue = pli.next()) != null) {
-                                String productId = nextValue.getString("productId");
-                                if (CategoryWorker.isProductInCategory(delegator, productId, viewProductCategoryId)) {
-                                    if (listSize + 1 >= lowIndex && chunkSize < viewSize) {
-                                        productCategoryMembers.add(nextValue);
-                                        chunkSize++;
+                    // set distinct on using list iterator
+                    EntityQuery eq = EntityQuery.use(delegator)
+                            .from(entityName)
+                            .where(mainCond)
+                            .orderBy(orderByFields)
+                            .cursorScrollInsensitive()
+                            .maxRows(highIndex);
+                    
+                    try (EntityListIterator pli = eq.queryIterator()) {
+                        // get the partial list for this page
+                        if (limitView) {
+                            if (viewProductCategoryId != null) {
+                                // do manual checking to filter view allow
+                                productCategoryMembers = new LinkedList<GenericValue>();
+                                GenericValue nextValue;
+                                int chunkSize = 0;
+                                listSize = 0;
+    
+                                while ((nextValue = pli.next()) != null) {
+                                    String productId = nextValue.getString("productId");
+                                    if (CategoryWorker.isProductInCategory(delegator, productId, viewProductCategoryId)) {
+                                        if (listSize + 1 >= lowIndex && chunkSize < viewSize) {
+                                            productCategoryMembers.add(nextValue);
+                                            chunkSize++;
+                                        }
+                                        listSize++;
                                     }
-                                    listSize++;
                                 }
+                            } else {
+                                productCategoryMembers = pli.getPartialList(lowIndex, viewSize);
+                                listSize = pli.getResultsSizeAfterPartialList();
                             }
                         } else {
-                            productCategoryMembers = pli.getPartialList(lowIndex, viewSize);
-                            listSize = pli.getResultsSizeAfterPartialList();
-                        }
-                    } else {
-                        productCategoryMembers = pli.getCompleteList();
-                        if (UtilValidate.isNotEmpty(viewProductCategoryId)) {
-                            // filter out the view allow
-                            productCategoryMembers = CategoryWorker.filterProductsInCategory(delegator, productCategoryMembers, viewProductCategoryId);
+                            productCategoryMembers = pli.getCompleteList();
+                            if (UtilValidate.isNotEmpty(viewProductCategoryId)) {
+                                // filter out the view allow
+                                productCategoryMembers = CategoryWorker.filterProductsInCategory(delegator, productCategoryMembers, viewProductCategoryId);
+                            }
+    
+                            listSize = productCategoryMembers.size();
+                            lowIndex = 1;
+                            highIndex = listSize;
                         }
-
-                        listSize = productCategoryMembers.size();
-                        lowIndex = 1;
-                        highIndex = listSize;
                     }
-
                     // filter out of stock products
                     if (filterOutOfStock) {
                         try {
@@ -415,16 +419,6 @@ public class CategoryServices {
             } catch (GenericEntityException e) {
                 Debug.logError(e, module);
             }
-            finally {
-                // close the list iterator, if used
-                if (pli != null) {
-                    try {
-                        pli.close();
-                    } catch (GenericEntityException e) {
-                        Debug.logError(e, module);
-                    }
-                }
-            }
         }
 
         Map<String, Object> result = new HashMap<String, Object>();

Modified: ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Iterate.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Iterate.java?rev=1798571&r1=1798570&r2=1798571&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Iterate.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/minilang/src/main/java/org/apache/ofbiz/minilang/method/envops/Iterate.java Tue Jun 13 09:48:49 2017
@@ -75,9 +75,8 @@ public final class Iterate extends Metho
         Object oldEntryValue = entryFma.get(methodContext.getEnvMap());
         Object objList = listFma.get(methodContext.getEnvMap());
         if (objList instanceof EntityListIterator) {
-            EntityListIterator eli = (EntityListIterator) objList;
-            GenericValue theEntry;
-            try {
+            try (EntityListIterator eli = (EntityListIterator) objList) {
+                GenericValue theEntry;
                 while ((theEntry = eli.next()) != null) {
                     entryFma.put(methodContext.getEnvMap(), theEntry);
                     try {
@@ -96,12 +95,8 @@ public final class Iterate extends Metho
                         throw e;
                     }
                 }
-            } finally {
-                try {
-                    eli.close();
-                } catch (GenericEntityException e) {
-                    throw new MiniLangRuntimeException("Error closing entityListIterator: " + e.getMessage(), this);
-                }
+            } catch (GenericEntityException e) {
+                throw new MiniLangRuntimeException("Error with entityListIterator: " + e.getMessage(), this);
             }
         } else if (objList instanceof Collection<?>) {
             Collection<Object> theCollection = UtilGenerics.checkCollection(objList);

Modified: ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java?rev=1798571&r1=1798570&r2=1798571&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/job/JobManager.java Tue Jun 13 09:48:49 2017
@@ -206,7 +206,6 @@ public final class JobManager {
         EntityCondition baseCondition = EntityCondition.makeCondition(expressions);
         EntityCondition poolCondition = EntityCondition.makeCondition(poolsExpr, EntityOperator.OR);
         EntityCondition mainCondition = EntityCondition.makeCondition(UtilMisc.toList(baseCondition, poolCondition));
-        EntityListIterator jobsIterator = null;
         boolean beganTransaction = false;
         try {
             beganTransaction = TransactionUtil.begin();
@@ -214,19 +213,22 @@ public final class JobManager {
                 Debug.logWarning("Unable to poll JobSandbox for jobs; unable to begin transaction.", module);
                 return poll;
             }
-            jobsIterator = EntityQuery.use(delegator).from("JobSandbox").where(mainCondition).orderBy("runTime").queryIterator();
-            GenericValue jobValue = jobsIterator.next();
-            while (jobValue != null) {
-                // Claim ownership of this value. Using storeByCondition to avoid a race condition.
-                List<EntityExpr> updateExpression = UtilMisc.toList(EntityCondition.makeCondition("jobId", EntityOperator.EQUALS, jobValue.get("jobId")), EntityCondition.makeCondition("runByInstanceId", EntityOperator.EQUALS, null));
-                int rowsUpdated = delegator.storeByCondition("JobSandbox", UtilMisc.toMap("runByInstanceId", instanceId), EntityCondition.makeCondition(updateExpression));
-                if (rowsUpdated == 1) {
-                    poll.add(new PersistedServiceJob(dctx, jobValue, null));
-                    if (poll.size() == limit) {
-                        break;
+            try (EntityListIterator jobsIterator = EntityQuery.use(delegator).from("JobSandbox").where(mainCondition).orderBy("runTime").queryIterator()) {
+                GenericValue jobValue = jobsIterator.next();
+                while (jobValue != null) {
+                    // Claim ownership of this value. Using storeByCondition to avoid a race condition.
+                    List<EntityExpr> updateExpression = UtilMisc.toList(EntityCondition.makeCondition("jobId", EntityOperator.EQUALS, jobValue.get("jobId")), EntityCondition.makeCondition("runByInstanceId", EntityOperator.EQUALS, null));
+                    int rowsUpdated = delegator.storeByCondition("JobSandbox", UtilMisc.toMap("runByInstanceId", instanceId), EntityCondition.makeCondition(updateExpression));
+                    if (rowsUpdated == 1) {
+                        poll.add(new PersistedServiceJob(dctx, jobValue, null));
+                        if (poll.size() == limit) {
+                            break;
+                        }
                     }
+                    jobValue = jobsIterator.next();
                 }
-                jobValue = jobsIterator.next();
+            } catch (GenericEntityException e) {
+                Debug.logWarning(e, module);
             }
             TransactionUtil.commit(beganTransaction);
         } catch (Throwable t) {
@@ -238,14 +240,6 @@ public final class JobManager {
             }
             Debug.logWarning(t, errMsg, module);
             return Collections.emptyList();
-        } finally {
-            if (jobsIterator != null) {
-                try {
-                    jobsIterator.close();
-                } catch (GenericEntityException e) {
-                    Debug.logWarning(e, module);
-                }
-            }
         }
         if (poll.isEmpty()) {
             // No jobs to run, see if there are any jobs to purge
@@ -263,21 +257,23 @@ public final class JobManager {
             EntityCondition doneCond = EntityCondition.makeCondition(UtilMisc.toList(EntityCondition.makeCondition(canExp), EntityCondition.makeCondition(finExp)), EntityOperator.OR);
             mainCondition = EntityCondition.makeCondition(UtilMisc.toList(EntityCondition.makeCondition("runByInstanceId", instanceId), doneCond));
             beganTransaction = false;
-            jobsIterator = null;
             try {
                 beganTransaction = TransactionUtil.begin();
                 if (!beganTransaction) {
                     Debug.logWarning("Unable to poll JobSandbox for jobs; unable to begin transaction.", module);
                     return Collections.emptyList();
                 }
-                jobsIterator = EntityQuery.use(delegator).from("JobSandbox").where(mainCondition).orderBy("jobId").queryIterator();
-                GenericValue jobValue = jobsIterator.next();
-                while (jobValue != null) {
-                    poll.add(new PurgeJob(jobValue));
-                    if (poll.size() == limit) {
-                        break;
+                try (EntityListIterator jobsIterator = EntityQuery.use(delegator).from("JobSandbox").where(mainCondition).orderBy("jobId").queryIterator()) {
+                    GenericValue jobValue = jobsIterator.next();
+                    while (jobValue != null) {
+                        poll.add(new PurgeJob(jobValue));
+                        if (poll.size() == limit) {
+                            break;
+                        }
+                        jobValue = jobsIterator.next();
                     }
-                    jobValue = jobsIterator.next();
+                } catch (GenericEntityException e) {
+                    Debug.logWarning(e, module);
                 }
                 TransactionUtil.commit(beganTransaction);
             } catch (Throwable t) {
@@ -289,14 +285,6 @@ public final class JobManager {
                 }
                 Debug.logWarning(t, errMsg, module);
                 return Collections.emptyList();
-            } finally {
-                if (jobsIterator != null) {
-                    try {
-                        jobsIterator.close();
-                    } catch (GenericEntityException e) {
-                        Debug.logWarning(e, module);
-                    }
-                }
             }
         }
         return poll;