Project

General

Profile

Bug #3128

header expressions (and dynamic row/column/title...) may be executing more than is necessary

Added by Greg Shah almost 8 years ago. Updated almost 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version:

Related issues

Related to Conversion Tools - Feature #1735: leverage lambda expressions (Java 8 "closures") to reduce code bloat WIP

History

#1 Updated by Greg Shah almost 8 years ago

The progress documentation suggests that header expressions only are evaluated when a frame is made visible (from a non-visible state). Today, P2J does not make this distinction. We evaluate these expressions every time certain activities occur without regard to the existing visibility state.

The evaluation happens in GenericFrame.updateDynamicContent() which is sometimes called directly but is most often called from GenericFrame.getFrameBuffer() in the course of other activity. With 1735d revision 11049, some obvious cases were removed (validation processing, entered/not entered/reset of entered flag).

But in the LogicalTerminal (and for VIEW in GenericFrame) there are still cases that need to be checked and may benefit from a conditional execution:

  • process-events
  • apply (2 places)
  • wait-for
  • choose
  • disable (2 places)
  • enable (2 places)
  • assignment of sensitive attribute
  • view (5 places in LT, 3 in GF)
  • prompt-for
  • trigger execution
  • refresh up-call

We need to write testcases to check if the 4GL behavior matches the docs. If so, this is both a performance issue and is a potential functional problem (causing us to potentially show updates that should not be visible yet).

We should test the explicit hide and implement hide cases as well as things like DOWN to see if there are any implications.

Also available in: Atom PDF