Bug 1263233
| Summary: | Issues in guided dtable analysis - ConditionInspectors | ||
|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Zuzana Krejčová <zkrejcov> |
| Component: | Business Central | Assignee: | Toni Rikkola <trikkola> |
| Status: | CLOSED EOL | QA Contact: | Lukáš Petrovický <lpetrovi> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.2.0 | CC: | kverlaen, lpetrovi |
| Target Milestone: | ER5 | ||
| Target Release: | 6.2.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-03-27 19:38:46 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Description of problem: For String conditions, the allowed operators are: ==, !=, >, >=, <, <=, in, not in, == null, != null, matches, soundslike (and no operator) StringConditionInspector only works with operators ==, !=, in - when a String condition uses any other operator, issues are not detected correctly. This also affects the issue descriptions. Furthermore, conditions like: 'name == "a"' and 'name in ("a")' 'name != "a"' and 'name not in ("a")' should be considered redundant, 'name != "a"' and 'name in ("a", "b")' should not conflict (in one row/rule) 'name != "b"' should subsume 'name == "a"' 'name in ("b", "c")' should not subsume 'name != "a"' For numeric conditions, the allowed operators also include: in, not in, == null, != null (and no operator) which are, again, not taken into account in ComparableConditionInspector. This again leads to incorrect detection of issues. Also, there are issues when one condition has == or != operator and the other has <, >, <=, >=. Furthermore, some edge cases are troublesome for <, >, <=, >=: 'age > 0' and 'age < 1' 'age > 0' and 'age <= 0' should create a conflict within one row/rule 'age > -10' and 'age > 0' should not create a conflict within one row/rule 'age == 0' should not subsume 'age != 1' Temporal operators after, before and coincides are allowed for Date, but again ignored wrt analysis. For integer conditions, the following case (and similar) should raise a redundancy warning: 'age > 0' and 'age >= 1' For more detailed list of issue, please see tests in PR https://github.com/droolsjbpm/drools-wb/pull/64 and also note bug 1256732.