[JBoss JIRA] (DROOLS-2733) Support MVEL Dialect using custom inline accumulate code with external declarations in the executable model
by Kris Verlaenen (Jira)
[ https://issues.jboss.org/browse/DROOLS-2733?page=com.atlassian.jira.plugi... ]
Kris Verlaenen updated DROOLS-2733:
-----------------------------------
Sprint: 2019 Week 26-28, 2019 Week 29-31 (was: 2019 Week 26-28)
> Support MVEL Dialect using custom inline accumulate code with external declarations in the executable model
> -----------------------------------------------------------------------------------------------------------
>
> Key: DROOLS-2733
> URL: https://issues.jboss.org/browse/DROOLS-2733
> Project: Drools
> Issue Type: Feature Request
> Components: executable model
> Reporter: Luca Molteni
> Assignee: Luca Molteni
> Priority: Optional
>
> The executable model doesn't support custom inline accumulate code that uses external declarations such as
> {code:java}
> String str = "import " + Person.class.getCanonicalName() + ";\n" +
> "rule R dialect \"mvel\" when\n" +
> " String( $l : length )" +
> " $sum : Integer() from accumulate (\n" +
> " Person( age > 18, $age : age ), init( int sum = 0 * $l; ), action( sum += $age; ), reverse( sum -= $age; ), result( sum )\n" +
> " )" +
> "then\n" +
> " insert($sum);\n" +
> "end";
> {code}
> (Notice that in the init we multiply the sum value with the length of string)
> But it can support such style using the "classic" generation of accumulate classes which gets compiled among the executable model and instantiate during the execution of the DSL.
> This mechanism is broken with the MVEL dialect, as we don't have such generated classes.
> Probably what we should do instead is putting MVEL expressions in the DSL directly such as
> {code:java}
> accumulateScript("initCode", "accCode", "reverseCode");
> {code}
> and then during interpretation create a new MVEL context and execute the accumulate in memory
> See
> AccumulateUnsupportedTest.testMVELAccumulate
> AccumulateUnsupportedTest.testMVELAccumulate2WM
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years
[JBoss JIRA] (DROOLS-3066) NPE in Drools org.drools.core.rule.SingleAccumulate.reverse(SingleAccumulate.java:124)
by Kris Verlaenen (Jira)
[ https://issues.jboss.org/browse/DROOLS-3066?page=com.atlassian.jira.plugi... ]
Kris Verlaenen updated DROOLS-3066:
-----------------------------------
Sprint: 2019 Week 26-28, 2019 Week 29-31 (was: 2019 Week 26-28)
> NPE in Drools org.drools.core.rule.SingleAccumulate.reverse(SingleAccumulate.java:124)
> ---------------------------------------------------------------------------------------
>
> Key: DROOLS-3066
> URL: https://issues.jboss.org/browse/DROOLS-3066
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.4.1.Final
> Environment: Windows 7
> Oracle Java Development Kit 1.8.0_111
> Eclipse Oxygen 3a
> Optaplanner 7.4.1.Final
> Reporter: Philip Harding
> Assignee: Luca Molteni
> Priority: Major
> Attachments: NPE_Drools_MWE.zip
>
> Original Estimate: 2 days
> Remaining Estimate: 2 days
>
> The rule
> {code:java}
> rule "globalRequiredPredecessorAfterMe"
> when
> $rpAll: Set(size>1) from accumulate (
> Customer(Domicile != null, $rpAfterMe: requiredPredecessorsAfterMe);
> collectSet($rpAfterMe)
> )
> then
> scoreHolder.addMediumConstraintMatch(kcontext, - $rpAll.size()-1);
> end
> {code}
> gives following NPE within the attached Optaplanner model:
> {code:java}
> Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
> at org.drools.core.rule.SingleAccumulate.reverse(SingleAccumulate.java:124)
> at org.drools.core.phreak.PhreakAccumulateNode.removeMatch(PhreakAccumulateNode.java:796)
> at org.drools.core.phreak.PhreakAccumulateNode.doRightUpdatesProcessChildren(PhreakAccumulateNode.java:517)
> at org.drools.core.phreak.PhreakAccumulateNode.doRightUpdates(PhreakAccumulateNode.java:450)
> at org.drools.core.phreak.PhreakAccumulateNode.doNode(PhreakAccumulateNode.java:76)
> at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:581)
> at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:552)
> at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:379)
> at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:339)
> at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:175)
> at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:133)
> at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:212)
> at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:87)
> at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:34)
> at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43)
> at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1067)
> at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:1014)
> at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1006)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1337)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1328)
> at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1312)
> at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:117)
> at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:187)
> at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.doMove(ConstructionHeuristicDecider.java:126)
> at org.optaplanner.core.impl.constructionheuristic.decider.ConstructionHeuristicDecider.decideNextStep(ConstructionHeuristicDecider.java:100)
> at org.optaplanner.core.impl.constructionheuristic.DefaultConstructionHeuristicPhase.solve(DefaultConstructionHeuristicPhase.java:74)
> at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:88)
> at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:191)
> at canihazafischbroetchenplz.app.TestApp.main(TestApp.java:35)
> Caused by: java.lang.NullPointerException
> at org.drools.core.base.accumulators.CollectSetAccumulateFunction.reverse(CollectSetAccumulateFunction.java:118)
> at org.drools.core.base.accumulators.CollectSetAccumulateFunction.reverse(CollectSetAccumulateFunction.java:49)
> at org.drools.core.base.accumulators.JavaAccumulatorFunctionExecutor.reverse(JavaAccumulatorFunctionExecutor.java:133)
> at org.drools.core.rule.SingleAccumulate.reverse(SingleAccumulate.java:116)
> ... 28 more
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years
[JBoss JIRA] (DROOLS-3617) [DMN Designer] Indirect boolean and structure has a constraint
by Kris Verlaenen (Jira)
[ https://issues.jboss.org/browse/DROOLS-3617?page=com.atlassian.jira.plugi... ]
Kris Verlaenen updated DROOLS-3617:
-----------------------------------
Sprint: 2019 Week 23-25, 2019 Week 26-28, 2019 Week 29-31 (was: 2019 Week 23-25, 2019 Week 26-28)
> [DMN Designer] Indirect boolean and structure has a constraint
> --------------------------------------------------------------
>
> Key: DROOLS-3617
> URL: https://issues.jboss.org/browse/DROOLS-3617
> Project: Drools
> Issue Type: Bug
> Components: DMN Editor
> Affects Versions: 7.18.0.Final
> Reporter: Jozef Marko
> Assignee: Daniel José dos Santos
> Priority: Major
> Labels: drools-tools
> Attachments: Screenshot from 2019-02-08 08-41-18.png
>
>
> If user declares *boolean* or a *Structure* indirectly, he is able to set a constarint for such data type entry, however he shouldn't be able to set the constraint in such case. Please see the attached screenshot. There are 4 entries while 2 has constraints and 2 have not. Expected is no of those 4 entries has constraint.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years
[JBoss JIRA] (DROOLS-4061) Guided Score card rules not executed via test scenario.
by Kris Verlaenen (Jira)
[ https://issues.jboss.org/browse/DROOLS-4061?page=com.atlassian.jira.plugi... ]
Kris Verlaenen updated DROOLS-4061:
-----------------------------------
Sprint: 2019 Week 17-19, 2019 Week 20-22, 2019 Week 23-25, 2019 Week 26-28, 2019 Week 29-31 (was: 2019 Week 17-19, 2019 Week 20-22, 2019 Week 23-25, 2019 Week 26-28)
> Guided Score card rules not executed via test scenario.
> -------------------------------------------------------
>
> Key: DROOLS-4061
> URL: https://issues.jboss.org/browse/DROOLS-4061
> Project: Drools
> Issue Type: Bug
> Components: Test Scenarios Editor
> Reporter: Abhijit Humbe
> Assignee: Toni Rikkola
> Priority: Major
> Labels: drools-tools, support
> Attachments: MySpace_test-gscore.zip, Screenshot from 2019-06-26 10-13-47.png
>
>
> Test scenario is not executing rules from guided score card in RHPAM 7.3 GA release . I can see similar issue with both test scenario(new and legacy)
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years