Uploaded image for project: 'JBoss BPMS Platform'
  1. JBoss BPMS Platform
  2. RHBPMS-665

Using JBDS process designer, user can set boundary error event without validation error, but the process will throw Exception at runtime

    XMLWordPrintable

Details

    Description

      Description of problem:
      Using JBDS process designer, user can set a boundary error event without validation error. However when user starts the process, following ERROR is thrown:

      ===
      java.lang.IllegalArgumentException: Cannot add asset: unable to parse xml : Exception class java.lang.NullPointerException : null,
      at org.jbpm.runtime.manager.impl.SimpleRuntimeEnvironment.addAsset(SimpleRuntimeEnvironment.java:111)
      at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.addAsset(RuntimeEnvironmentBuilder.java:281)
      at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.addAsset(RuntimeEnvironmentBuilder.java:56)
      at org.jbpm.test.JbpmJUnitBaseTestCase.createRuntimeManager(JbpmJUnitBaseTestCase.java:308)
      at org.jbpm.test.JbpmJUnitBaseTestCase.createRuntimeManager(JbpmJUnitBaseTestCase.java:235)
      at org.jbpm.test.JbpmJUnitBaseTestCase.createRuntimeManager(JbpmJUnitBaseTestCase.java:217)
      at com.sample.ProcessTest.testProcess(ProcessTest.java:17)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      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)
      ===

      The business process is attached as jbds_bad.bpmn. Also please take a look at attached screenshot, evidence1.png.
      The root cause of the Exception was "Target" should be defined for boundary error event. If user set it, business process is executed without any error. I attached modified one as jbds_good.bpmn, and screenshot as evidence2.png.

      This is quite hard for user to realize it. If none of process variable is defined, select bar named "Target" is blank. So user thinks they don't have to set it. In addition to it, process validation doesn't alert it.

      One of Red Hat customer suggests following choice to avoid this trouble:
      1: If "Target" is not selected by user, designer will automatically define and set variable
      2: Process validation will alert that "Target" is not selected
      3: Run time error will explain that "Target" is not set. ("Cannot add asset: unable to parse xml : Exception class java.lang.NullPointerException" is hard to realize the root cause)
      4: As "Error" table has, add clickable "plus button" next with "Target". So user can realize that it is necessary to define it. Also usability will be improved

      Version-Release number of selected component (if applicable):

      • JBoss Developer Studio 7.1.1
      • jbdevstudio-integration-stack-updatesite-7.0.2.GA
      • JBoss BPM Suite 6.0.2

      Steps to Reproduce:
      1. Define business process like attached files(jbds_bad.bpmn, evidence1.png)
      2. Start process

      Actual results:
      NullPointerException will be thrown

      Expected results:
      Request one of those fix:
      1: If "Target" is not selected by user, designer will automatically define and set variable
      2: Process validation will alert that "Target" is not selected
      3: Run time error will explain that "Target" is not set. ("Cannot add asset: unable to parse xml : Exception class java.lang.NullPointerException" is hard to realize the root cause)
      4: As "Error" table has, add clickable "plus button" next with "Target". So user can realize that it is necessary to define it. Also usability will be improved

      Additional info:
      Web designer has different user interface. Although I only set "error ref", it works fine. I attached the business process as web_good.bpmn.

      Attachments

        1. resources for this ticket.gz
          337 kB
          Hisao Furuichi

        Activity

          People

            bbrodt_jira Robert (Bob) Brodt (Inactive)
            rhn-support-hfuruich Hisao Furuichi
            Jozef Marko Jozef Marko
            Jozef Marko Jozef Marko
            bpms-support, Marek Baluch, Paul Leacu (Inactive), Robert (Bob) Brodt (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: