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

Exception not rethrown by AbstractWorkingMemory.executeQueuedActions()

    Details

      Description

      AbstractWorkingMemory.executeQueuedActions() catches exceptions thrown within calls to action.execute() (line 1486).

      It then tests to see if the exception is a RuntimeDroolsException and rethrows it if it is. However, if it is not, it simply does a printStackTrace() on the exception and does not re-throw it. This is a problem because SplitInstance throws an IllegalArgumentException on line 73. This is then caught and gobbled by the catch clause starting on line 1487 of AbstractWorkingMemory.java.

      The result is that any service or application hosting the Drools runtime will never see this exception. What looks to the user like a clean (albeit overly shortened) rules session has in fact thrown an error, but it is not visible to the user or the owning service. It is therefore very difficult to diagnose why the rules and/or flows are not doing what they should.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  tirelli Edson Tirelli
                  Reporter:
                  temurphy Tom Murphy
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: