[JBoss JIRA] (DROOLS-5017) [DMN Designer] Validation issues are not shown in Alerts panel
by Michael Anstis (Jira)
[ https://issues.redhat.com/browse/DROOLS-5017?page=com.atlassian.jira.plug... ]
Michael Anstis updated DROOLS-5017:
-----------------------------------
Story Points: 5
Sprint: 2020 Week 04-06 (from Jan 20)
> [DMN Designer] Validation issues are not shown in Alerts panel
> --------------------------------------------------------------
>
> Key: DROOLS-5017
> URL: https://issues.redhat.com/browse/DROOLS-5017
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Affects Versions: 7.32.0.Final
> Reporter: Duncan Doyle
> Assignee: Michael Anstis
> Priority: Major
> Labels: drools-tools
> Attachments: Screenshot 2020-02-06 at 11.25.18.png, Screenshot from 2020-02-06 14-36-00.png, vacation-days.dmn
>
>
> The attached DMN file is invalid as it contains a trailing space in one of its decision nodes (Base Vacation Days). I've checked with [~tari_manga], and according to him, the backend DMN validator is capable of detecting the problem and giving a proper error message. However the DMN editor in the workbench does not give any user friendly hint what the problem is, and hence it's almost impossible for a user to figure out what's wrong.
> I've attached both the DMN model and a screenshot of the error message displayed by our editor.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months
[JBoss JIRA] (DROOLS-5019) Unexpected rule match with forall pattern
by Matteo Casalino (Jira)
[ https://issues.redhat.com/browse/DROOLS-5019?page=com.atlassian.jira.plug... ]
Matteo Casalino commented on DROOLS-5019:
-----------------------------------------
Notice this is really the smallest example we managed to come up with: in particular we are not able to reproduce with less than 3 rules.
> Unexpected rule match with forall pattern
> -----------------------------------------
>
> Key: DROOLS-5019
> URL: https://issues.redhat.com/browse/DROOLS-5019
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.29.0.Final, 7.30.0.Final, 7.31.0.Final, 7.32.0.Final
> Reporter: Matteo Casalino
> Assignee: Mario Fusco
> Priority: Major
> Attachments: forall-unwanted-match.tgz
>
>
> As of Drools 7.29.0.Final, rules with a forall pattern sometimes won't match as expected.
> In particular we notice that adding an extra (apparently unrelated) rule causes the rule containing forall to fire when it is not expected to. No inference is involved.
> Example of DRL behaving as expected:
> {noformat}
> package org.drools.reproducer
> declare Request
> skippne : boolean
> pneeligid : String
> applicableAirlines : java.util.List
> officeid : String
> end
> declare Flight
> id : int
> marketingairlinecode : String
> cabin : String
> end
> declare Offer
> id : int
> flightIds : java.util.List
> boundIds : java.util.List
> passengerId : int
> notificationFlightId : int
> stayDurationBeforeDeparture : int
> end
> declare Passenger
> id : int
> end
> rule "53_54_55_NotificationTestInterlineAllFlight"
> when
> Offer( $thisOfferId: id, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id )
> Passenger( id == $thisPassengerId )
> Request( $skippne: skippne, pneeligid == "100000053" || skippne, $applicableAirlines: applicableAirlines )
> forall(
> $fact : Flight( $applicableAirlines contains marketingairlinecode )
> Flight( this == $fact, cabin == "Y" ) )
> then
> System.out.println("53_54_55_NotificationTestInterlineAllFlight");
> end
> rule "2_SmsNotificationCheckinTestFNDCall"
> when
> Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
> Passenger( id == $thisPassengerId )
> Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "L" )
> then
> System.out.println("2_SmsNotificationCheckinTestFNDCall");
> end
> {noformat}
> Example of DRL not behaving as expected (the 53_54_55_NotificationTestInterlineAllFlight rule will now fire when the forall clause is not satisfied):
> {noformat}
> package org.drools.reproducer
> declare Request
> skippne : boolean
> pneeligid : String
> applicableAirlines : java.util.List
> officeid : String
> end
> declare Flight
> id : int
> marketingairlinecode : String
> cabin : String
> end
> declare Offer
> id : int
> flightIds : java.util.List
> boundIds : java.util.List
> passengerId : int
> notificationFlightId : int
> stayDurationBeforeDeparture : int
> end
> declare Passenger
> id : int
> end
> rule "53_54_55_NotificationTestInterlineAllFlight"
> when
> Offer( $thisOfferId: id, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id )
> Passenger( id == $thisPassengerId )
> Request( $skippne: skippne, pneeligid == "100000053" || skippne, $applicableAirlines: applicableAirlines )
> forall(
> $fact : Flight( $applicableAirlines contains marketingairlinecode )
> Flight( this == $fact, cabin == "Y" ) )
> then
> System.out.println("53_54_55_NotificationTestInterlineAllFlight");
> end
> rule "2_SmsNotificationCheckinTestFNDCall"
> when
> Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
> Passenger( id == $thisPassengerId )
> Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "L" )
> then
> System.out.println("2_SmsNotificationCheckinTestFNDCall");
> end
> rule "3_XmlNotificationCheckinTestFNDCall"
> when
> Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
> Passenger( id == $thisPassengerId )
> Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
> Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "Q" )
> then
> System.out.println("3_XmlNotificationCheckinTestFNDCall");
> end
> {noformat}
> The issue does not occur when using Drools <= 7.28.0.Final.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months
[JBoss JIRA] (DROOLS-5017) [DMN Designer] Validation issues are not shown in Alerts panel
by Michael Anstis (Jira)
[ https://issues.redhat.com/browse/DROOLS-5017?page=com.atlassian.jira.plug... ]
Michael Anstis updated DROOLS-5017:
-----------------------------------
Summary: [DMN Designer] Validation issues are not shown in Alerts panel (was: DMN Validation does not provide a proper descriptive error message)
> [DMN Designer] Validation issues are not shown in Alerts panel
> --------------------------------------------------------------
>
> Key: DROOLS-5017
> URL: https://issues.redhat.com/browse/DROOLS-5017
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Affects Versions: 7.32.0.Final
> Reporter: Duncan Doyle
> Assignee: Michael Anstis
> Priority: Major
> Labels: drools-tools
> Attachments: Screenshot 2020-02-06 at 11.25.18.png, Screenshot from 2020-02-06 14-36-00.png, vacation-days.dmn
>
>
> The attached DMN file is invalid as it contains a trailing space in one of its decision nodes (Base Vacation Days). I've checked with [~tari_manga], and according to him, the backend DMN validator is capable of detecting the problem and giving a proper error message. However the DMN editor in the workbench does not give any user friendly hint what the problem is, and hence it's almost impossible for a user to figure out what's wrong.
> I've attached both the DMN model and a screenshot of the error message displayed by our editor.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months
[JBoss JIRA] (DROOLS-5019) Unexpected rule match with forall pattern
by Matteo Casalino (Jira)
Matteo Casalino created DROOLS-5019:
---------------------------------------
Summary: Unexpected rule match with forall pattern
Key: DROOLS-5019
URL: https://issues.redhat.com/browse/DROOLS-5019
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 7.32.0.Final, 7.31.0.Final, 7.30.0.Final, 7.29.0.Final
Reporter: Matteo Casalino
Assignee: Mario Fusco
Attachments: forall-unwanted-match.tgz
As of Drools 7.29.0.Final, rules with a forall pattern sometimes won't match as expected.
In particular we notice that adding an extra (apparently unrelated) rule causes the rule containing forall to fire when it is not expected to. No inference is involved.
Example of DRL behaving as expected:
{noformat}
package org.drools.reproducer
declare Request
skippne : boolean
pneeligid : String
applicableAirlines : java.util.List
officeid : String
end
declare Flight
id : int
marketingairlinecode : String
cabin : String
end
declare Offer
id : int
flightIds : java.util.List
boundIds : java.util.List
passengerId : int
notificationFlightId : int
stayDurationBeforeDeparture : int
end
declare Passenger
id : int
end
rule "53_54_55_NotificationTestInterlineAllFlight"
when
Offer( $thisOfferId: id, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id )
Passenger( id == $thisPassengerId )
Request( $skippne: skippne, pneeligid == "100000053" || skippne, $applicableAirlines: applicableAirlines )
forall(
$fact : Flight( $applicableAirlines contains marketingairlinecode )
Flight( this == $fact, cabin == "Y" ) )
then
System.out.println("53_54_55_NotificationTestInterlineAllFlight");
end
rule "2_SmsNotificationCheckinTestFNDCall"
when
Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
Passenger( id == $thisPassengerId )
Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "L" )
then
System.out.println("2_SmsNotificationCheckinTestFNDCall");
end
{noformat}
Example of DRL not behaving as expected (the 53_54_55_NotificationTestInterlineAllFlight rule will now fire when the forall clause is not satisfied):
{noformat}
package org.drools.reproducer
declare Request
skippne : boolean
pneeligid : String
applicableAirlines : java.util.List
officeid : String
end
declare Flight
id : int
marketingairlinecode : String
cabin : String
end
declare Offer
id : int
flightIds : java.util.List
boundIds : java.util.List
passengerId : int
notificationFlightId : int
stayDurationBeforeDeparture : int
end
declare Passenger
id : int
end
rule "53_54_55_NotificationTestInterlineAllFlight"
when
Offer( $thisOfferId: id, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id )
Passenger( id == $thisPassengerId )
Request( $skippne: skippne, pneeligid == "100000053" || skippne, $applicableAirlines: applicableAirlines )
forall(
$fact : Flight( $applicableAirlines contains marketingairlinecode )
Flight( this == $fact, cabin == "Y" ) )
then
System.out.println("53_54_55_NotificationTestInterlineAllFlight");
end
rule "2_SmsNotificationCheckinTestFNDCall"
when
Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
Passenger( id == $thisPassengerId )
Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "L" )
then
System.out.println("2_SmsNotificationCheckinTestFNDCall");
end
rule "3_XmlNotificationCheckinTestFNDCall"
when
Offer( $thisOfferId: id, $thisPassengerId: passengerId, $thisNotificationFlightId: notificationFlightId, $offerFlightIds : flightIds, $offerBoundIds : boundIds, $stayDurationBeforeDeparture: stayDurationBeforeDeparture )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $thisFlightId: id )
Passenger( id == $thisPassengerId )
Request( $skippne: skippne, pneeligid == "checkin" || skippne, $applicableAirlines: applicableAirlines )
Flight( id == $thisNotificationFlightId, $offerFlightIds contains id, $applicableAirlines contains marketingairlinecode, cabin == "Q" )
then
System.out.println("3_XmlNotificationCheckinTestFNDCall");
end
{noformat}
The issue does not occur when using Drools <= 7.28.0.Final.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months
[JBoss JIRA] (DROOLS-5017) DMN Validation does not provide a proper descriptive error message
by Michael Anstis (Jira)
[ https://issues.redhat.com/browse/DROOLS-5017?page=com.atlassian.jira.plug... ]
Michael Anstis commented on DROOLS-5017:
----------------------------------------
I could not replicate the reported error with {{master}} (7.33.0-SNAPSHOT) however did find another problem that will be fixed.
KIE's DMN validation is returning 7 messages that were not being shown in the Alerts Panel (although being returned to the browser).
Screen shot showing all messages returned from KIE's DMN validation attached.
> DMN Validation does not provide a proper descriptive error message
> ------------------------------------------------------------------
>
> Key: DROOLS-5017
> URL: https://issues.redhat.com/browse/DROOLS-5017
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Affects Versions: 7.32.0.Final
> Reporter: Duncan Doyle
> Assignee: Michael Anstis
> Priority: Major
> Labels: drools-tools
> Attachments: Screenshot 2020-02-06 at 11.25.18.png, Screenshot from 2020-02-06 14-36-00.png, vacation-days.dmn
>
>
> The attached DMN file is invalid as it contains a trailing space in one of its decision nodes (Base Vacation Days). I've checked with [~tari_manga], and according to him, the backend DMN validator is capable of detecting the problem and giving a proper error message. However the DMN editor in the workbench does not give any user friendly hint what the problem is, and hence it's almost impossible for a user to figure out what's wrong.
> I've attached both the DMN model and a screenshot of the error message displayed by our editor.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months
[JBoss JIRA] (DROOLS-5017) DMN Validation does not provide a proper descriptive error message
by Michael Anstis (Jira)
[ https://issues.redhat.com/browse/DROOLS-5017?page=com.atlassian.jira.plug... ]
Michael Anstis updated DROOLS-5017:
-----------------------------------
Attachment: Screenshot from 2020-02-06 14-36-00.png
> DMN Validation does not provide a proper descriptive error message
> ------------------------------------------------------------------
>
> Key: DROOLS-5017
> URL: https://issues.redhat.com/browse/DROOLS-5017
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Affects Versions: 7.32.0.Final
> Reporter: Duncan Doyle
> Assignee: Michael Anstis
> Priority: Major
> Labels: drools-tools
> Attachments: Screenshot 2020-02-06 at 11.25.18.png, Screenshot from 2020-02-06 14-36-00.png, vacation-days.dmn
>
>
> The attached DMN file is invalid as it contains a trailing space in one of its decision nodes (Base Vacation Days). I've checked with [~tari_manga], and according to him, the backend DMN validator is capable of detecting the problem and giving a proper error message. However the DMN editor in the workbench does not give any user friendly hint what the problem is, and hence it's almost impossible for a user to figure out what's wrong.
> I've attached both the DMN model and a screenshot of the error message displayed by our editor.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 5 months