[midPoint-git] [Evolveum/prism] 6068ac: Apply filter definition on filter value
Andrej
noreply at github.com
Fri Jan 24 11:33:36 CET 2025
Branch: refs/heads/support-4.9
Home: https://github.com/Evolveum/prism
Commit: 6068ac6d674ae135b00c9cbc3b66a5250607577d
https://github.com/Evolveum/prism/commit/6068ac6d674ae135b00c9cbc3b66a5250607577d
Author: Andrej Zan <andrej.zan at evolveum.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismPropertyValueImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/query/ValueFilterImpl.java
Log Message:
-----------
Apply filter definition on filter value
**What**
Apply filter definition (if any) to all filter values.
**Why**
It may happen (e.g. when defined by UI or script), that in time of
filter creation, the value passed to filter is not of the same type as
specified by the definition itself. For some types it is fine (e.g.
String value, PolyString in definition), because they can be converted.
In order to "force" this conversion, the definition is now applied to
the value on following circumstances:
- Filter is created with both value(s) and definition
- Definition is set to the filter after its creation (via setter)
- Value(s) is added to the filter after its creation (via setter)
The reason, why we want to convert the types using the definition is,
that value of this filter may be part of matching with value from
repository. Depending on the matcher and normalizer, it may happen that
during comparison of those two values, there will be thrown
`ClassCastException`, because the types are different and can't be
directly cast-ed.
**Note**
The application of definition to value may fail (e.g. when types are not
"convertible"). We decided to ignore this event (`SchemaException`) and
silently "swallow" it. The reason for this unfortunate thing is that (at
this moment) we don't want to change API contract and break backward
compatibility, because these filters can be used directly via user's
scripts.
**Fixes**: MID-10048
(cherry picked from commit 487a0bac7b29df57718e29358a4b61266c1930eb)
Commit: 9df4c72dc051bcd7bc2790c26c3505d68ea67ea0
https://github.com/Evolveum/prism/commit/9df4c72dc051bcd7bc2790c26c3505d68ea67ea0
Author: Andrej <84732799+and-za at users.noreply.github.com>
Date: 2025-01-24 (Fri, 24 Jan 2025)
Changed paths:
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/PrismPropertyValueImpl.java
M infra/prism-impl/src/main/java/com/evolveum/midpoint/prism/impl/query/ValueFilterImpl.java
Log Message:
-----------
Merge pull request #9 from Evolveum/bugfix/4.9/10048
Apply filter definition on filter value
Compare: https://github.com/Evolveum/prism/compare/e5c0710c9453...9df4c72dc051
To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/prism/settings/notifications
More information about the midPoint-svn
mailing list