Salesforce

COMPILE XREF of code using TABLE-SCAN crashes session

« Go Back

Information

 
TitleCOMPILE XREF of code using TABLE-SCAN crashes session
URL NameCOMPILE-XREF-of-code-using-TABLE-SCAN-crashes-session
Article Number000115448
EnvironmentProduct: OpenEdge
Version: 11.6.x, 11.7.x, 12.0, 12.1
OS: Windows
Question/Problem Description
COMPILE XREF of code using TABLE-SCAN crashes session.

COMPILE XREF of code featuring a TEMP-TABLE with a PRIMARY, UNIQUE index that is queried using TABLE-SCAN crashes session.

XREF file is created but is empty.

Stack trace from PROWIN reads:

stbcmp
smwhr
smwhere
profcomp
fdfcomp
smdbsp
smbkst
smsem
cr_compile
...


The problem does not occur when:
  • the code is in a .P.
  • if the primary, unique index of the TEMP-TABLE is removed.
  • if the TABLE-SCAN specifier is removed from the query.
  • if the XREF option is not used with the COMPILE statement.
Steps to Reproduce
Clarifying Information
Sample code:
/* Crash.cls */
CLASS Crash:

   DEFINE PRIVATE TEMP-TABLE ttPropertyDropDown NO-UNDO
      FIELDS cName AS CHARACTER
      INDEX PKey IS PRIMARY IS UNIQUE
         cName
   .

   METHOD PRIVATE VOID EmptyDropDownTT():
      FOR EACH ttPropertyDropDown WHERE
         ttPropertyDropDown.cName = "name":U
      EXCLUSIVE-LOCK TABLE-SCAN:
      
      END.
   END METHOD.

END CLASS.

Compile statement:
COMPILE Crash.cls XREF "Crash.xref".

 
Error Message
Defect NumberDefect PSC00361418 / OCTA-3816
Enhancement Number
Cause
At compile time, the AVM checks if a string was WHOLE-INDEX and no check was done to see if it is null.
Resolution
Upgrade to OpenEdge 12.2 where before the AVM compares to see if the string is WHOLE-INDEX, it checks if it was null.
Workaround
Remove the TABLE-SCAN option from the query when otherwise a WHOLE-INDEX would be used by the compiler.
Notes
Keyword Phrase
Last Modified Date8/3/2020 10:20 PM

Powered by