9 Replies Latest reply on May 25, 2010 7:44 AM by swiderski.maciej

    jBPM 4.3 BPMN 2.0 problem

    mdohnke

      Hi there,

       

      at the moment I am evaluating the capabilities of jBPM in combination with BPMN2.0 processes. Therefore I created a process with the academic version of Signavio and exported it as BPMN-DI (jBPM_Testprozess.bpmn.xml). Then I deleted the DI stuff because it seems not yet to be supported in jBPM. After that I adopted the Service Tasks like described in the developers guide bpmn2.0 section. Then I wrote a Java class with a simple echo-method to test around a bit (DbOperations.java). After that I created a UnitTest (ProcessTest.java). When I run my test I get the following exception:

       

      org.jbpm.api.JbpmException:
        error: parsing exception: null : java.lang.NullPointerException
          at org.jbpm.pvm.internal.xml.ProblemList.getJbpmException(ProblemList.java:175)
          at org.jbpm.pvm.internal.xml.ProblemList.getJbpmException(ProblemList.java:141)
          at org.jbpm.pvm.internal.repository.DeployerManager.deploy(DeployerManager.java:50)
          at org.jbpm.pvm.internal.repository.RepositorySessionImpl.deploy(RepositorySessionImpl.java:61)
          at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:47)
          at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:33)
          at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
          at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
          at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
          at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
          at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
          at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
          at org.jbpm.pvm.internal.repository.DeploymentImpl.deploy(DeploymentImpl.java:91)
          at ProcessTest.testIfProcessDeploys(ProcessTest.java:11)
          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:597)
          at junit.framework.TestCase.runTest(TestCase.java:164)
          at org.jbpm.test.BaseJbpmTestCase.runTest(BaseJbpmTestCase.java:80)
          at junit.framework.TestCase.runBare(TestCase.java:130)
          at junit.framework.TestResult$1.protect(TestResult.java:106)
          at junit.framework.TestResult.runProtected(TestResult.java:124)
          at junit.framework.TestResult.run(TestResult.java:109)
          at junit.framework.TestCase.run(TestCase.java:120)
          at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
          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)
      Caused by: org.jbpm.api.JbpmException
          at org.jbpm.pvm.internal.xml.ProblemList.getJbpmException(ProblemList.java:171)
          ... 30 more
      Caused by: java.lang.NullPointerException
          at org.jbpm.bpmn.parser.BpmnParser.parseSequenceFlows(BpmnParser.java:281)
          at org.jbpm.bpmn.parser.BpmnParser.parseProcess(BpmnParser.java:135)
          at org.jbpm.bpmn.parser.BpmnParser.parseDocumentElement(BpmnParser.java:90)
          at org.jbpm.pvm.internal.xml.Parser.parseDocument(Parser.java:476)
          at org.jbpm.pvm.internal.xml.Parser.execute(Parser.java:396)
          at org.jbpm.pvm.internal.xml.Parse.execute(Parse.java:158)
          at org.jbpm.pvm.internal.repository.ProcessDeployer.deploy(ProcessDeployer.java:68)
          at org.jbpm.pvm.internal.repository.DeployerManager.deploy(DeployerManager.java:46)
          ... 28 more

       

      The three important files are attached to this Thread. I use jBPM4.3 under Ubuntu 9.10 on Java(TM) SE Runtime Environment (build 1.6.0_20-b02).

       

      I don't know what the exception tells me, can someone help me with that?

        • 1. Re: jBPM 4.3 BPMN 2.0 problem
          swiderski.maciej

          Hi Marco,

           

          the problem with your process is that you used sendTask that is not yet supported in jBPM. Due to that BPMN parser is not able to parse given sequence flow that points to element with id:

          sid-D433A4A1-572D-4419-BD6C-843D78656228

           

          I made it to run (more precisely to deploy - since your test case does only deploy) by changing that node to userTask.

           

          Cheers,

          Maciej

          • 2. Re: jBPM 4.3 BPMN 2.0 problem
            mdohnke

            Hi Maciej,

             

            thanks for your solution. So I can only use the things which are documented in the DevGuide? Is there a place where I can see whether there is any progress in development of bpmn2.0 support? I didn't find any svn.Commits or something like that. So I wonder about the work which is in progress at the moment...

             

            Thanks again, I will continue with the current limitations.

            • 3. Re: jBPM 4.3 BPMN 2.0 problem
              swiderski.maciej

              Hi,

               

              yes, I would say that you need to stick to what is documented in dev guide.

               

              Unfortunately work has slowed down if it comes to new development and especially BPMN2 support. At the moment we are trying to focus on bug fixing to be able to release 4.4 of jBPM.

              To trace progress, regardless of the type of changes, please take a look at jira (jira.jboss.org).

              • 4. Re: jBPM 4.3 BPMN 2.0 problem
                mdohnke

                Hi again,

                 

                thanks for your reply. I will observe jira the next time. Maybe there are some interesting changes which affect bpmn2.

                • 5. Re: jBPM 4.3 BPMN 2.0 problem
                  rebody

                  Hi Marco,

                   

                  Since Joram left here, I am not sure who can continue the BPMN2 job.  Maybe we could copy some codes from Tom and Joram's new project Activiti, it will implement a native BPMN engine.  But at this moment, there are just StartEvent, EndEvent, Task and HumanTask in Activiti, even less than jbpm-bpmn.

                   

                  Furthermore, the graph used in BPMN is different from jPDL, I think how to design BPMN is another big problem.

                  • 6. Re: jBPM 4.3 BPMN 2.0 problem
                    mdohnke

                    Yes, I think for jbpm+bpmn it's not that good, that Joram left the project. But I think native BPMN execution will be an important topic in the future. So the jbpm project should think about someone who can continue this work.

                     

                    Your comment sounds like there is noone at the oment who is able to work on bpmn2 execution. So I assume that there won't be any changes in the near future until the activiti project is releasing more...

                     

                    So for my current work (master thesis) I have to take what is implemented yet. Maybe there are some changes, maybe not. If not I have to find a way to map bpmn processes to jpdl or something else. Otherwise I have to check other approaches.

                     

                    Thanks for your replies =)

                    • 7. Re: jBPM 4.3 BPMN 2.0 problem
                      swiderski.maciej

                      Hi Marco,

                       

                      I think that jbpm project will continue development of BPMN2 as soon as we are done with nearest release (4.4). Of course it won't be at the same pace as it would be with Joram but with small steps BPMN support will go on

                       

                      I agree with HuiSheng that it is not an easy job but I am sure we will make it.

                      I would like to suggest you to go through all BPMN related issues in jira and vote for those that are important for you. Well appreciated would be as well if you could provide as with a list of features need to be implemented and post it on the dev forum so we could prioritize togehter.

                       

                      Let me know your opinion.

                       

                      Cheers

                      Maciej

                      • 8. Re: jBPM 4.3 BPMN 2.0 problem
                        mdohnke

                        Hi,

                         

                        I'm very glad to here that the work towards BPMN 2.0 is going on

                         

                        Of course I will help to find out which points are neceessary if I can. Where exactly can I find the developer forum?

                        It will take some days/weeks until I know what is working and what is missing, so I can rate the issues etc.

                         

                        Problems as a "user" (that means when a process can't be deployed or executed for example) still can be posted here?

                        • 9. Re: jBPM 4.3 BPMN 2.0 problem
                          swiderski.maciej

                          Marco Dohnke wrote:

                          Of course I will help to find out which points are neceessary if I can. Where exactly can I find the developer forum?

                           

                          Development foums is a subspace of this forum. https://community.jboss.org/en/jbpm/dev?view=all

                           

                          Marco Dohnke wrote:

                           

                          Problems as a "user" (that means when a process can't be deployed or executed for example) still can be posted here?

                          Yes, this is why we have this forum