Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
4.2.8
-
OSS Roxie.
Description
In certain cases WHEN doesn't prevent execution of a code.
-----------------------------------
m := DATASET(['Should not appear'],
mf := DATASET(['Should not appear either'], {STRING msg}
);
tf := DATASET(['Should appear'],
);
w := OUTPUT(m, NAMED('MessageCodes'), extend);
falsearm := WHEN(mf, w, SUCCESS);
truearm := tf;
OUTPUT(IF(nofold(true), truearm, falsearm));
It is expected that output in w should not happen, since falsearm is not evaluated.
-----------------------------------
-----------------------------------
It looks like the following code in Roxie:
virtual void stop(bool aborting)
{
if (state != STATEstopped)
CRoxieServerActivity::stop(aborting);
}
Is causing the dependencies to be executed – the code on the false branch is stopped (and aborting is false).
-----------------------------------