[asterisk-bugs] [JIRA] (ASTERISK-30243) func_logic: IF function complains if both branches are empty

N A (JIRA) noreply at issues.asterisk.org
Wed Sep 21 17:57:09 CDT 2022


N A created ASTERISK-30243:
------------------------------

             Summary: func_logic: IF function complains if both branches are empty
                 Key: ASTERISK-30243
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-30243
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Functions/func_logic
    Affects Versions: 18.14.0
            Reporter: N A


The IF function complains if both branches (true and false) are empty, e.g.:

{noformat}
[2022-09-21 22:45:01] WARNING[27353][C-00000275]: func_logic.c:190 acf_if: Syntax IF(<expr>?[<true>][:<false>])  (expr must be non-null, and either <true> or <false> must be non-null)
[2022-09-21 22:45:01] WARNING[27353][C-00000275]: func_logic.c:191 acf_if:       In this case, <expr>='1', <true>='(null)', and <false>='(null)'
{noformat}

However, there is no actual rationale for this. It is not incorrect to have both empty branches, as it's not necessarily wrong for the IF() function to resolve to nothing (empty string). This happens often in my case and this is the correct/desired behavior. Everything works correctly: except warnings are thrown for no reason.

For example:

{noformat}
${IF(${EXISTS(${ARG3}?${ARG3}:${foobar})})}
{noformat}

The logic here is simple: if an ARG3 is provided, use ARG3. Otherwise, use the variable foobar instead.

In many cases, both ARG3 and foobar could be empty. So much of the time, the whole function could evaluate to an empty string. Using the EXISTS and ISNULL function don't help, since the contents will still evaluate as empty and thus IF will complain, even though this is correct and intentional.

This has been a problem for years, I just haven't bothered to report it until now, but at this point it's one of the most common false alarms in my error log.

Accordingly, these WARNINGs are changed to debug messages, since nothing is actually wrong.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list