Kbase P125818: 4GL/ABL; Error (2780) running blocking statement to be used in a function using OOABL.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/20/2009 |
|
Status: Verified
SYMPTOM(s):
4GL/ABL; Error (2780) running blocking statement to be used in a function using OOABL.
Input blocking statement is invalid while executing a user-defined function. Function: '<function>'. (2780)
FACT(s) (Environment):
OpenEdge 10.x
All Supported Operating Systems
CAUSE:
The SonicMQ Adapter deleteSession procedure send shutdown message to the Java part of the adapter and then waits for a response with a WAIT-FOR ABL statement.
This causes it to block until the shutdown completes.
FIX:
The SonicMQ Adapter "deleteSession" procedure sends a "shutdown" message to the Java part of the adapter and then waits for a response with a "WAIT-FOR" ABL statement. This causes it to block until the shutdown is complete.
The OOABL does not allow a blocking statement to be used in a function that could be called as part of evaluating an expression. Defining the "deleteSession" method as returning a "LOGICAL" makes it a function that could be used in an expression which causes error 2780 to be returned.
Changing the method to return "VOID" fixes this problem. Moreover, the correct OO methodology of doing this functionality is to use a class member variable to store the status and use an accessor method to get its value. This hides the details of the class internals and still allows access to the status returned from the previous Adapter call.