You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2012/12/04 22:54:50 UTC

svn commit: r1417213 - /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java

Author: doogie
Date: Tue Dec  4 21:54:49 2012
New Revision: 1417213

URL: http://svn.apache.org/viewvc?rev=1417213&view=rev
Log:
OPTIMIZE: Now that absolute() does the correct thing for 0, fix
getPartialList() to use absolute(start - 1), instead of working around
the bug itself.

Modified:
    ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java

Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java?rev=1417213&r1=1417212&r2=1417213&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityListIterator.java Tue Dec  4 21:54:49 2012
@@ -467,37 +467,21 @@ public class EntityListIterator implemen
             // just in case the caller missed the 1 based thingy
             if (start == 0) start = 1;
 
-            // if starting on result 1 just call next() to avoid scrollable issues in some databases
-            if (start == 1) {
-                if (!resultSet.next()) {
-                    return list;
-                }
-            } else {
-                // if can't reposition to desired index, throw exception
-                if (!this.absolute(start)) {
-                    // maybe better to just return an empty list here...
-                    return list;
-                    //throw new GenericEntityException("Could not move to the start position of " + start + ", there are probably not that many results for this find.");
-                }
+            // if can't reposition to desired index, throw exception
+            if (!this.absolute(start - 1)) {
+                // maybe better to just return an empty list here...
+                return list;
+                //throw new GenericEntityException("Could not move to the start position of " + start + ", there are probably not that many results for this find.");
             }
 
-            // get the first as the current one
-            list.add(this.currentGenericValue());
-
             GenericValue nextValue = null;
 
-            //number > 1 comparison goes first to avoid the unwanted call to next
-            while (number > 1 && (nextValue = this.next()) != null) {
+            //number > 0 comparison goes first to avoid the unwanted call to next
+            while (number > 0 && (nextValue = this.next()) != null) {
                 list.add(nextValue);
                 number--;
             }
             return list;
-        } catch (SQLException e) {
-            if (!closed) {
-                this.close();
-                Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module);
-            }
-            throw new GeneralRuntimeException("Error getting results", e);
         } catch (GeneralRuntimeException e) {
             if (!closed) {
                 this.close();