[jboss-jira] [JBoss JIRA] (DROOLS-891) Missing alpha node removal when the only rule using it is removed

Mario Fusco (JIRA) issues at jboss.org
Mon Aug 24 05:25:26 EDT 2015


Mario Fusco created DROOLS-891:
----------------------------------

             Summary: Missing alpha node removal when the only rule using it is removed
                 Key: DROOLS-891
                 URL: https://issues.jboss.org/browse/DROOLS-891
             Project: Drools
          Issue Type: Bug
            Reporter: Mario Fusco
            Assignee: Mario Fusco


When an alpha node has more than one sink and it is used by only one rule doesn't get removed when the rule itself is removed. The following test case demonstrates the problem.

{code}
    @Test
    public void testRemoveHasSameConElement() {
        String packageName = "test";
        String rule1 = "package " + packageName + ";" +
                       "import java.util.Map; \n" +
                       "rule 'rule1' \n" +
                       "when \n" +
                       " Map(this['type'] == 'Goods' && this['brand'] == 'a') \n" +
                       " Map(this['type'] == 'Goods' && this['category'] == 'b') \n" +
                       "then \n" +
                       "System.out.println('test rule 1'); \n"+
                       "end";

        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

        kbuilder.add( ResourceFactory.newByteArrayResource( rule1.getBytes() ), ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
        kbase.removeKnowledgePackage(packageName);
        StatelessKnowledgeSession session = kbase.newStatelessKnowledgeSession();
        session.execute(new HashMap());
    }
{code} 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the jboss-jira mailing list