Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-1404

Alpha node not shared with static function evaluation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 6.3.0.Final, 7.0.0.Beta5
    • core engine
    • None
    • NEW
    • NEW

      The following code when placed in Misc2Test exhibit the problem

          public static class TestStaticUtils {
              public static int return1() { 
                  return 1;
              }
          }
          
          @Test
          public void testCheck2() {
              String drl = "package c;\n" + // <<- keep this package name
                      "\n" + 
                      "import " + TestObject.class.getCanonicalName() + "\n" +
                      "\n" + 
                      "rule fileBrule1 when\n" + 
                      "  TestObject(value == 1)\n" + 
                      "then\n" + 
                      "end"
                      ;
              
              String drl2 = "package iTransiberian;\n" + // <<- keep this package name
                      "\n" + 
                      "import " + TestObject.class.getCanonicalName() + "\n" +
                      "import " + TestStaticUtils.class.getCanonicalName() + "\n" +
                      "\n" + 
                      "rule fileArule1 when\n" + 
                      "  $t : String()\n" + 
                      "  TestObject(value == TestStaticUtils.return1() )\n" + 
                      "then\n" + 
                      "end\n"+ 
                      "rule fileArule2 when\n" + // <<- keep this rule
                      "  $t : String()\n" + 
                      "  TestObject(value == 0 )\n" + 
                      "then\n" + 
                      "end\n" + 
                      ""
                      ;
      
              KieSession kieSession = new KieHelper()
                          .addContent(drl2, ResourceType.DRL)
                          .addContent(drl, ResourceType.DRL)
                          .build().newKieSession();
              
              ReteDumper.dumpRete(kieSession);
              System.out.println(drl);
              System.out.println(drl2);
              kieSession.addEventListener(new DebugAgendaEventListener());
      
              kieSession.insert("test");
              kieSession.insert(new TestObject(1));
      
              assertEquals(2, kieSession.fireAllRules() );
          }
      

      Conducting further analysis...

              mmortari@redhat.com Matteo Mortari
              mmortari@redhat.com Matteo Mortari
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: