In midPoint 4.0 and earlier, the mapping range was not applied consistently when the condition was
false. Some mappings in some cases applied the range, other mappings did not. This was incorrect behavior (bug) and it was corrected in midPoint 4.1.
The incorrect behavior was perhaps based on the approach that if the condition evaluates to
false then the system will "pretend that the mapping does not exist at all". This was even documented in this page in earlier versions of midPoint. However, this approach was a leftover from the times when midPoint did not have mapping ranges and the documentation was incorrect. We understand that some deployments relied on this behavior and we would like to apologize for any inconvenience. However, our policy is not to maintain "compatible bugs", therefore we have corrected the behavior of mappings in all the places to make midPoint behavior consistent.
If you need to "turn off" the mapping completely, the proper way is to set the condition both in the
condition part of the mapping and in the range specification, i.e. making the mapping non-authoritative (having empty range) when the condition is false.