[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