Kbase P23658: An 'UNDO, RETRY' is changed during runtime to an 'UNDO, LEAVE'!
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  15/10/2008 |
|
Status: Verified
SYMPTOM(s):
An 'UNDO, RETRY' is changed during runtime to an 'UNDO, LEAVE'!
/* This 'UNDO, RETRY' is upgraded to an 'UNDO, LEAVE' */
DO TRANSACTION ON STOP UNDO, RETRY:
FOR FIRST customer EXCLUSIVE-LOCK:
MESSAGE NAME VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
END.
/* This 'UNDO, RETRY' is left as is: 'UNDO, RETRY'*/
DO TRANSACTION ON STOP UNDO, RETRY:
RETRY. /* Make Note of This Statement */
FOR FIRST customer EXCLUSIVE-LOCK:
MESSAGE NAME VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
END.
FIX:
This is expected behavior. When an error occurs in a potentially iterative block with no code to control or customized error handling, Progress enables its Infinite Loop Protection and upgrades a RETRY to a NEXT, and a NEXT to a LEAVE to avoid an infinite loop.
Referencing the RETRY function in the block before the error is encountered, hints the presence of customized error handling code and disables the Progress Infinite Loop Protection.
Thus using the RETRY function in a block turns off the default error processing and suppresses the Progress Infinite Loop Protection for the block.