Details
-
Regression
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
6.4.x
Description
Specifically on version 6.4.2-1, the ECL below produces a dataset (dsScrubs) that has non-printable characters in the ErrorMessage field. This seems to be related to the use of the NotLength definition as a possible value for ErrorMessage (without it, the problem does not occur). The non-printable characters seem to be filling in up to the largest string length of any of the field values. Note that the issue is apparent when the result is viewed in the ECL IDE or exported from ECLWatch, but it is not evident when viewing the result through Outputs on ECLWatch. I could not reproduce the issue on versions 6.2.14-1 or 6.2.22-1.
NotLength(STRING s) := 'Length was not in:'+s; Layout_out := RECORD UNSIGNED FieldsChecked_WithErrors; UNSIGNED FieldsChecked_NoErrors; UNSIGNED Fields_dummyfield_LengthErrors; END; dsTest := DATASET([{2, 0, 1}], Layout_out); ScrubsOrbitLayout := RECORD STRING ErrorMessage; UNSIGNED8 rulecnt; END; ScrubsOrbitLayout xNorm(dsTest L, INTEGER c) := TRANSFORM SELF.ErrorMessage := CHOOSE(c, 'Fields with errors', 'Fields without errors', NotLength('1..')); SELF.rulecnt := CHOOSE(c, L.FieldsChecked_WithErrors, L.FieldsChecked_NoErrors, L.Fields_dummyfield_LengthErrors); END; dsScrubs := NORMALIZE(dsTest, 3, xNorm(LEFT, COUNTER)); OUTPUT(dsScrubs);
Attachments
1.
|
How could this have been prevented |
|
Resolved | Gavin Halliday |