|
Author: adrianc
Date: Sat May 11 16:12:05 2013 New Revision: 1481367 URL: http://svn.apache.org/r1481367 Log: Reverted revision 1480891 and fixed the problem it tried to fix. Modified: ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/FindShipment.groovy ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java Modified: ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/FindShipment.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/FindShipment.groovy?rev=1481367&r1=1481366&r2=1481367&view=diff ============================================================================== --- ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/FindShipment.groovy (original) +++ ofbiz/trunk/applications/product/webapp/facility/WEB-INF/actions/shipment/FindShipment.groovy Sat May 11 16:12:05 2013 @@ -132,15 +132,25 @@ if ("Y".equals(lookupFlag)) { lowIndex = viewIndex * viewSize + 1; highIndex = (viewIndex + 1) * viewSize; findOpts.setMaxRows(highIndex); - findOpts.setOffset(lowIndex); - + if (!orderReturnValue) { - shipmentList = delegator.findList("Shipment", mainCond, null, orderBy, findOpts, false); - shipmentListSize = shipmentList.size(); + // using list iterator + orli = delegator.find("Shipment", mainCond, null, null, orderBy, findOpts); + + shipmentListSize = orli.getResultsSizeAfterPartialList(); if (highIndex > shipmentListSize) { highIndex = shipmentListSize; } - + + // get the partial list for this page + if (shipmentListSize > 0) { + shipmentList = orli.getPartialList(lowIndex, viewSize); + } else { + shipmentList = [] as ArrayList; + } + + // close the list iterator + orli.close(); } if (orderReturnValue) { @@ -192,7 +202,7 @@ if ("Y".equals(lookupFlag)) { // only commit the transaction if we started one... this will throw an exception if it fails TransactionUtil.commit(beganTransaction); } - + context.shipmentList = shipmentList; context.listSize = shipmentListSize; context.highIndex = highIndex; Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java?rev=1481367&r1=1481366&r2=1481367&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java Sat May 11 16:12:05 2013 @@ -93,6 +93,10 @@ public class ModelEntity implements Comp * A single lock is used for all ModelField collections so collection updates are atomic. */ private final Object fieldsLock = new Object(); + /** Model fields in the order they were defined. This list duplicates the values in fieldsMap, but + * we must keep the list in its original sequence for SQL DISTINCT operations to work properly. */ + private final List<ModelField> fieldsList = new ArrayList<ModelField>(); + private final Map<String, ModelField> fieldsMap = new HashMap<String, ModelField>(); /** A List of the Field objects for the Entity, one for each Primary Key */ @@ -264,6 +268,7 @@ public class ModelEntity implements Comp if (!newField.getIsPk()) { this.nopks.add(newField); } + this.fieldsList.add(newField); this.fieldsMap.put(newField.getName(), newField); } @@ -352,6 +357,7 @@ public class ModelEntity implements Comp } // add to the entity as a new field synchronized (fieldsLock) { + this.fieldsList.add(newField); this.fieldsMap.put(newField.getName(), newField); if (!newField.getIsPk()) { // this will always be true for now as extend-entity fields are always nonpks @@ -572,22 +578,20 @@ public class ModelEntity implements Comp public int getFieldsSize() { synchronized (fieldsLock) { - return this.fieldsMap.size(); + return this.fieldsList.size(); } } public Iterator<ModelField> getFieldsIterator() { synchronized (fieldsLock) { - List<ModelField> newList = new ArrayList<ModelField>(fieldsMap.size()); - newList.addAll(this.fieldsMap.values()); + List<ModelField> newList = new ArrayList<ModelField>(this.fieldsList); return newList.iterator(); } } public List<ModelField> getFieldsUnmodifiable() { synchronized (fieldsLock) { - List<ModelField> newList = new ArrayList<ModelField>(fieldsMap.size()); - newList.addAll(this.fieldsMap.values()); + List<ModelField> newList = new ArrayList<ModelField>(this.fieldsList); return Collections.unmodifiableList(newList); } } @@ -610,6 +614,7 @@ public class ModelEntity implements Comp if (field == null) return; synchronized (fieldsLock) { + this.fieldsList.add(field); fieldsMap.put(field.getName(), field); if (field.getIsPk()) { pks.add(field); @@ -625,6 +630,7 @@ public class ModelEntity implements Comp synchronized (fieldsLock) { ModelField field = fieldsMap.remove(fieldName); if (field != null) { + this.fieldsList.remove(field); if (field.getIsPk()) { pks.remove(field); } else { @@ -1547,7 +1553,7 @@ public class ModelEntity implements Comp // for classProperties add field names AND relationship names to get a nice, complete chart List<String> classPropertiesList = new LinkedList<String>(); topLevelMap.put("classProperties", classPropertiesList); - for (ModelField field: this.fieldsMap.values()) { + for (ModelField field: this.fieldsList) { if (field.getIsAutoCreatedInternal()) continue; if (field.getIsPk()) { classPropertiesList.add(field.getName() + "*"); @@ -1565,7 +1571,7 @@ public class ModelEntity implements Comp // attributes List<Map<String, Object>> attributesList = new LinkedList<Map<String, Object>>(); topLevelMap.put("attributes", attributesList); - for (ModelField field: this.fieldsMap.values()) { + for (ModelField field: this.fieldsList) { if (field.getIsAutoCreatedInternal()) continue; ModelFieldType fieldType = modelFieldTypeReader.getModelFieldType(field.getType()); |
| Free forum by Nabble | Edit this page |
