[JBoss JIRA] (DROOLS-5021) ClassCastException thrown when deserializing components of a Generice command
by Steve Davidson (Jira)
Steve Davidson created DROOLS-5021:
--------------------------------------
Summary: ClassCastException thrown when deserializing components of a Generice command
Key: DROOLS-5021
URL: https://issues.redhat.com/browse/DROOLS-5021
Project: Drools
Issue Type: Bug
Components: kie server
Affects Versions: 7.29.0.Final
Reporter: Steve Davidson
Assignee: Maciej Swiderski
When attempting to send a Generic Data object in an Insert Command to be added to the Rule Agenda, the server fails to deserialize the Insert Command with the following;
Feb 6 11:09:30 thor jetty[21143]: Feb 06, 2020 11:09:30 AM org.kie.server.services.drools.DroolsKieContainerCommandServiceImpl callContainer
Feb 6 11:09:30 thor jetty[21143]: SEVERE: Error calling container 'JUnit Test: kie-server'
Feb 6 11:09:30 thor jetty[21143]: java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class org.kie.api.command.Command (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; org.kie.api.command.Command is in unnamed module of loader org.eclipse.jetty.webapp.WebAppClassLoader @51bd8b5c)
Feb 6 11:09:30 thor jetty[21143]: #011at org.kie.server.services.drools.DroolsKieContainerCommandServiceImpl.callContainer(DroolsKieContainerCommandServiceImpl.java:60)
Feb 6 11:09:30 thor jetty[21143]: #011at org.kie.server.remote.rest.drools.CommandResource.manageContainer(CommandResource.java:91)
Feb 6 11:09:30 thor jetty[21143]: #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Feb 6 11:09:30 thor jetty[21143]: #011at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Feb 6 11:09:30 thor jetty[21143]: #011at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Feb 6 11:09:30 thor jetty[21143]: #011at java.base/java.lang.reflect.Method.invoke(Method.java:566)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:509)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:399)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:363)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:365)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:337)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:310)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:443)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:233)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:139)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:358)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:142)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:219)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
Feb 6 11:09:30 thor jetty[21143]: #011at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
Feb 6 11:09:30 thor jetty[21143]: #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1401)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:760)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
Feb 6 11:09:30 thor jetty[21143]: #011at org.kie.server.services.impl.security.web.CaptureHttpRequestFilter.doFilter(CaptureHttpRequestFilter.java:42)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:501)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.Server.handle(Server.java:500)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:386)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:378)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
Feb 6 11:09:30 thor jetty[21143]: #011at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
Feb 6 11:09:30 thor jetty[21143]: #011at java.base/java.lang.Thread.run(Thread.java:834)
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (WFLY-13070) Use NoopTracer by default
by Simon Priadka (Jira)
[ https://issues.redhat.com/browse/WFLY-13070?page=com.atlassian.jira.plugi... ]
Simon Priadka moved JBEAP-18676 to WFLY-13070:
----------------------------------------------
Project: WildFly (was: JBoss Enterprise Application Platform)
Key: WFLY-13070 (was: JBEAP-18676)
Workflow: GIT Pull Request workflow (was: CDW with loose statuses v1)
Component/s: MP Config
MP OpenTracing
(was: MP Config)
(was: MP OpenTracing)
Affects Version/s: 19.0.0.Beta2
(was: 7.3.0.GA)
> Use NoopTracer by default
> -------------------------
>
> Key: WFLY-13070
> URL: https://issues.redhat.com/browse/WFLY-13070
> Project: WildFly
> Issue Type: Bug
> Components: MP Config, MP OpenTracing
> Affects Versions: 19.0.0.Beta2
> Reporter: Simon Priadka
> Assignee: Jeff Mesnil
> Priority: Major
>
> When deploying an [app-client quickstart|https://github.com/wildfly/quickstart/tree/master/app-client], following lines are present in the server log:
> {code}
> 16:24:38,057 WARN [org.wildfly.microprofile.opentracing.smallrye] (MSC service thread 1-8) WFLYTRAC0003: Could not determine the service name and can't therefore use Jaeger Tracer. Using NoopTracer.
> 16:24:38,058 WARN [org.wildfly.microprofile.opentracing.smallrye] (MSC service thread 1-2) WFLYTRAC0003: Could not determine the service name and can't therefore use Jaeger Tracer. Using NoopTracer.
> {code}
> As I haven't done anything to the MP configuration, I don't think seeing a WARN message about failing to create a resource I have very little or no interest in, should be present in the logs.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (DROOLS-5019) Unexpected rule match with forall pattern
by Mario Fusco (Jira)
[ https://issues.redhat.com/browse/DROOLS-5019?page=com.atlassian.jira.plug... ]
Mario Fusco updated DROOLS-5019:
--------------------------------
Sprint: 2020 Week 04-06 (from Jan 20)
> 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)
4 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:
-----------------------------------
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)
4 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)
4 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)
4 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)
4 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)
4 years, 5 months