Project

General

Profile

Bug #4404

ConditionException inside full transaction FOR EACH loop

Added by Adrian Lungu over 4 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
11/12/2019
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:

Description

There is a bug when a ConditionException (excluding QuerryOffEndException) is caught in the first iteration of a full transaction FOR EACH block. It manifests itself by infinitely displaying the error dialog. An example is provided in the project attached.

The effort in this direction leads to AdaptiveQuery.sessionEvent(), which is called with SESSION_CLOSING_NORMALLY when the transaction is rollbacked by wa.tm.rollback(imple.undoLabel); in BlockManager.processCondition(). The results (of the query) are reset only if they are not already cached. However, a cache is made only at commit time, so at the end of each iteration of FOR EACH. While the first iteration has no results cached, a rollback inside it will reset the results, and the for each will start iterate from the beginning.

The FOR EACH error handling which causes transaction rollback should be analyzed in depth.

test3909.tar.gz (54.9 KB) Adrian Lungu, 11/12/2019 08:26 AM

Also available in: Atom PDF