Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-2979

Error in 5.2.0.M2 accumulate function. Works in 5.0 and 5.2.0.M1

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 5.2.0.CR1
    • 5.2.0.M2
    • None
    • None
    • Hide

      Try to load the rule in the body of the ticket. Emailed unit test.

      Show
      Try to load the rule in the body of the ticket. Emailed unit test.

    Description

      When loading the rule below the exception below occurs. The rule works and test passes in 5.0.1 and in 5.2.0.M1. A self contained unit test has been emailed to the development team.

      *********************Rule************************************
      package accumsTest

      import java.util.Map;
      import java.util.ArrayList;

      dialect "mvel"

      rule "Accum test rule"
      salience 155
      when

      $episode: Map()
      $commonVisits : ArrayList() from accumulate( Map( $selectedCv : this["KEY"] != null) from $episode
      init(ArrayList selIns = new ArrayList(),
      action(selIns.addAll($selectedCv),
      result(selIns)
      )

      then
      System.out.println("HIT");
      retract($episode);
      end

      ***************************Exception*******************************

      [15,21]: [ERR 102] Line 15:21 mismatched input 'init' in rule "Accum test rule"
      java.lang.IllegalArgumentException: Could not parse knowledge.
      at com.recondotech.droolsTest.AccumTest.readKnowledgeBase(AccumTest.java:40)
      at com.recondotech.droolsTest.AccumTest.testUpdate(AccumTest.java:21)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:592)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
      at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

      Attachments

        Activity

          People

            mproctor@redhat.com Mark Proctor
            jwhite-1 Joseph White (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

            Dates

              Created:
              Updated:
              Resolved:
              Archived:

              PagerDuty