[jbpm-dev] [jBPM Development] - Some bugs and feature requests on jBPM 4.1

camunda do-not-reply at jboss.com
Sat Oct 17 04:45:00 EDT 2009


Hey guys.

On a workshop at the customer this week we used jBPM 4.1 for a prototype, which we created on the fly. There are some issues I found on the way. Unofrtunately I don't have the time now to really investigate all of them, but I wanted to document them at least here!

1. Classloading problems
When you put you EventHandlers, Java delegation classes and/or process variable types in an EJB3 deployment and redeploy that, jBPM still holds a reference to the old class definitions, which results in class cast exceptions. My guess is, that this is becasue EventHandler and such are reused/pooled? So there we might have to discuss, what scenario we want to support.

2. Invalid types.xml doesn't result in a parsing error
We changed the types mapping and had a small XML error in that file. But this didn't resulted in a parsing exception, the parsing just stopped at this line and our type mapping wasn't read (which puzzled us for quite a while ;-)):


  |   <type name="..." class="..." variable-class="...EntityVariable"> <!-- end tag was missing! -->
  |   <type name="serializable" class="serializable" 
  |   converter="org.jbpm.pvm.internal.type.converter.SerializableToBytesConverter" 
  | variable-class="org.jbpm.pvm.internal.type.variable.BlobVariable" />
  | 

Now every Serializable process variable was rejected...


Some issues I maybe just don't know how to do it:

3. Bind e.g. integer value to EventListener field by expression
This didn't work, and I don't know how to get it to work:


  |    <custom class="de...jbpm.NoopActivity" g="83,61,143,50" name="xxx">
  |       <on event="start">
  |             <event-listener class="de.....SomeEvenetListener">
  |                   <field name="programm"><int  value="#{programm}"/></field>
  |             </event-listener>
  |       </on>
  |       <transition g="14,-11" name="ok" to="b"/>
  |    </custom>
  | 
The only possibility with expressions seems to be the  which results in a field type doesn't match problem:

  |    <custom class="de...jbpm.NoopActivity" g="83,61,143,50" name="xxx">
  |       <on event="start">
  |             <event-listener class="de.....SomeEvenetListener">
  |                   <field name="programm"><object expr="#{programm}"/></field>
  |             </event-listener>
  |       </on>
  |       <transition g="14,-11" name="ok" to="b"/>
  |    </custom>
  | 


Some feature requests:

4. Should be possible to set Subprocess Key by expression
If you start a nw sub process instance, this normally has no special key, thus a key is created for it. It would be really convinient, if the main process could influence the sub process key by an expression (e.g. "#{execution.key}.SubXX.#{someUniqueVariableForIt}). maybe this need some more thoughts (what in case the key is not unique? ...?), but I think it could get handy in lot of situations.

And there are some pretty annoying issues in thee GPD, which should be fixed ASAP:

5. Writing in propteries panel is reversed
I am pretty sure this bug is known (as I remeber it right, Koen showed it to me once). Would be pretty good to fix it anyway.

6. type of  is removed by the GPD sometimes
In the workshop the type attribute disappeared a couple of times (but only this attribute). Don't know when and why exactly, but this is really annoying. This is the example from the workshop:


  |    <java class="de....service...Service" g="118,66,112,52" method="druckeEtikett" name="Etiketten drucken">
  |         <arg type="long"><object expr="#{xxx.charge.id}"/></arg>
  |         <arg type="java.lang.String"><object expr="#{xxx.ident}"/></arg>
  |         <arg><object expr="#{xxx.number}"/></arg>
  |       <transition g="-135,-18" name="to Zustand erfassen" to="Zustand erfassen"/>
  |    </java>
  | 

7. Signavio
by the way, using the Signavio Editor for a already running process results in a lot of attributes beeing removed when saving with Signavio. It should be somehow the default, to keep everything, it doesn't know. I think I remember a discussion, that this is pretty hard to implement. But I think it is crucial for real live use cases. At least for use cases I have in mind for Business-/-Alignment. But maybe we can discuss that in the next meeting in Berlin.

And last but not least I started to implement

8. Support EJB3 Entities as process variables
I think this is a pretty important feature, since a lot of projeects start with EJB3 today. Since Tom fixed a bug in the binding code, I think I can go ahead with that. Will post something as soon I had time to work on it again. If anybody else putting effort into this, please let me know!


Puh, this is it. Sorry for the long post and not splitting it into several posts, looking up or creating JIRA-Issues. I really have to work on the book today, just wanted to have it documented. Maybe some of you can tackle some of the issues, otherwise I will come back to it as soon there is some time for it.

Cheers
Bernd

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260868#4260868

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260868


More information about the jbpm-dev mailing list