[jboss-jira] [JBoss JIRA] (DROOLS-1326) Stateful working memory regression OCT-2016: nurserostering long_hint01.xml
Matteo Mortari (JIRA)
issues at jboss.org
Wed Nov 16 09:21:00 EST 2016
[ https://issues.jboss.org/browse/DROOLS-1326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13323767#comment-13323767 ]
Matteo Mortari commented on DROOLS-1326:
----------------------------------------
Drools synthetic test:
{code:java}
@Test
public void test() {
String drl = "package "+this.getClass().getPackage().getName()+";\n" +
"import "+MyPojo.class.getCanonicalName()+"\n" +
"global java.util.Set controlSet;\n" +
"rule R1\n" +
"when\n" +
" $my: MyPojo(\n" +
" vBoolean == true,\n" +
" $s : vString, vString != null,\n" +
" $l : vLong\n" +
" )\n" +
" not MyPojo(\n" +
" vBoolean == true,\n" +
" vString == $s,\n" +
" vLong > $l\n" +
" )\n" +
"then\n" +
" System.out.println($my);\n" +
" System.out.println($l);\n" +
" controlSet.add($l);\n" +
"end";
System.out.println(drl);
KieSession session = new KieHelper().addContent(drl, ResourceType.DRL).build().newKieSession();
Set<Long> check = new HashSet<Long>();
session.setGlobal("controlSet", check);
MyPojo a = new MyPojo(true, "x", 0);
MyPojo b = new MyPojo(true, "x", 7);
MyPojo c = new MyPojo(false, null, 7);
System.out.println("a: "+a);
System.out.println("b: "+b);
System.out.println("c: "+c);
FactHandle fh_a = session.insert(a);
FactHandle fh_b = session.insert(b);
FactHandle fh_c = session.insert(c);
System.out.println("1st fireAllRules");
session.fireAllRules();
assertFalse( check.contains(0) ); // A should be blocked by B.
c.setvBoolean(true); c.setvString("x");
session.update(fh_c, c);
b.setvBoolean(false); b.setvString(null);
session.update(fh_b, b);
System.out.println("2nd fireAllRules");
session.fireAllRules();
assertFalse( check.contains(0L) ); // A is no longer blocked by B, *however* it is now blocked by C !
}
public static class MyPojo {
private boolean vBoolean;
private String vString;
private long vLong;
public MyPojo(boolean vBoolean, String vString, long vLong) {
super();
this.vBoolean = vBoolean;
this.vString = vString;
this.vLong = vLong;
}
public boolean isvBoolean() {
return vBoolean;
}
public boolean getvBoolean() {
return vBoolean;
}
public String getvString() {
return vString;
}
public long getvLong() {
return vLong;
}
public void setvBoolean(boolean vBoolean) {
this.vBoolean = vBoolean;
}
public void setvString(String vString) {
this.vString = vString;
}
public void setvLong(long vLong) {
this.vLong = vLong;
}
}
{code}
> Stateful working memory regression OCT-2016: nurserostering long_hint01.xml
> ---------------------------------------------------------------------------
>
> Key: DROOLS-1326
> URL: https://issues.jboss.org/browse/DROOLS-1326
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.0.0.Beta2
> Reporter: Geoffrey De Smet
> Assignee: Mario Fusco
> Priority: Blocker
> Attachments: screenshot-1.png
>
>
> Something regressed in Drools master between 27-SEP and 11-OCT.
> See:
> https://kie-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/job/optaplanner-turtleTests/org.optaplanner$optaplanner-examples/73/testReport/junit/org.optaplanner.examples.nurserostering.app/NurseRosteringSolveAllTurtleTest/runFastAndFullAssert_2__data_nurserostering_unsolved_long_hint01_xml_/
> I 'll ask [~jlocker] to isolate.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list