Details
- 
    Type:Bug 
- 
    Status: Done/Fixed
- 
    Priority:Critical 
- 
    Resolution: Fixed/Completed
- 
    Affects Version/s: 4.7.28
- 
    Fix Version/s: 4.7.29
- 
    Component/s: None
- 
    Labels:
- 
        Versioning Impact:Patch (backwards-compatible bug fixes)
- 
        Documentation Required?:None
- 
        Funding Source:Contributed Code
- 
        Verified?:No
Description
In Civi\Core/SettingsBag::setDb is a line of code that checks whether the setting in question has an on_change callback. It should only run a callback if the old value and new value of the setting aren't both null/zero.
As part of CRM-18231, Monish Deb identified a problem.  The code was treating ANY strings as a zero.  However, in fixing it, they caused the string "0" to be evaluated as "non-zero".
This reintroduced the same symptoms seen in CRM-19610, which was the bug that caused the "don't run a callback if old and new values are null/zero" code to be introduced.
References:
https://chat.civicrm.org/civicrm/pl/brdi48bko3rqxy87eefqcnrrwe
Attachments
Issue Links
- links to