This is an automated email from the ASF dual-hosted git repository. jleroux pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push: new 688142c5d3 Fixed: EntityListIterator closed but not in case of exception (OFBIZ-9385) 688142c5d3 is described below commit 688142c5d3fc72c36ffd585fa2b08a9ac3d62df4 Author: Jacques Le Roux <jacques.le.r...@les7arts.com> AuthorDate: Mon Dec 5 11:17:04 2022 +0100 Fixed: EntityListIterator closed but not in case of exception (OFBIZ-9385) Following discussion https://lists.apache.org/thread/37vo721s7d5no0k73ym4959m8wtgtl95 reverts "This fixes a bug introduced with r1797097" commit d9a24d5a347e28f241e73af9c4d9ea4bb55aeb16. Conflicts handled by hand in ListFinder.java Also as suggested by Deepak Dixit removes explicit eli.close call from handleOutput(), else we will get unnecessary console warning from EntityListIterator.close() method: Debug.logWarning("This EntityListIterator for Entity [" + modelEntityName + "] has already been closed, not closing again.", module); Thanks: Deepak Dixit for spotting the issue and discussion --- .../main/java/org/apache/ofbiz/entity/finder/EntityFinderUtil.java | 1 - .../src/main/java/org/apache/ofbiz/entity/finder/ListFinder.java | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/EntityFinderUtil.java b/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/EntityFinderUtil.java index 121ad09e1a..79f7727b96 100644 --- a/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/EntityFinderUtil.java +++ b/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/EntityFinderUtil.java @@ -394,7 +394,6 @@ public final class EntityFinderUtil { int size = getSize(context); try { listAcsr.put(context, eli.getPartialList(start, size)); - eli.close(); } catch (GenericEntityException e) { String errMsg = "Error getting partial list in limit-range with start=" + start + " and size=" + size + ": " + e.toString(); Debug.logError(e, errMsg, MODULE); diff --git a/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/ListFinder.java b/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/ListFinder.java index f869aae029..c9ea06705d 100644 --- a/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/ListFinder.java +++ b/framework/entity/src/main/java/org/apache/ofbiz/entity/finder/ListFinder.java @@ -215,15 +215,12 @@ public abstract class ListFinder extends Finder { options.setMaxRows(size * (index + 1)); } boolean beganTransaction = false; - try { + try (EntityListIterator eli = delegator.find(entityName, whereEntityCondition, havingEntityCondition, fieldsToSelect, orderByFields, + options)) { if (useTransaction) { beganTransaction = TransactionUtil.begin(); } - EntityListIterator eli = delegator.find(entityName, whereEntityCondition, havingEntityCondition, fieldsToSelect, orderByFields, - options); this.outputHandler.handleOutput(eli, context, listAcsr); - // NOTE: the eli EntityListIterator is not closed here. It SHOULD be closed later after the returned list will be used (eg see - // EntityAnd.getChildren() in ModelTree.java) } catch (GenericEntityException e) { String errMsg = "Failure in by " + label + " find operation, rolling back transaction"; Debug.logError(e, errMsg, MODULE);