[
https://jira.jboss.org/jira/browse/JBPM-2749?page=com.atlassian.jira.plug...
]
Ronald van Kuijk commented on JBPM-2749:
----------------------------------------
I have some more info.... the first thing is that there is a kind of workaround where you
do not need to make changes to the jBPM source. Make the join async by adding the continue
attribute to it with the value 'async'.
Now the real cause is that the task is not fully ended when the process reaches the end
state. This should not be a problem since all child executions should be ended first.
Strange thing is that the query for the active process instance, or any other query
triggers a hibernate flush so all kinds of updates/deletes are done. In one of these, the
swimlane is to be deleted, but since the not deleted task still references it, a
constraint violation is thrown.
What solves this is explicitly setting the swimlane to 'null' in the execute
method of the TaskActivity. Not sure what impact this has on the rest, but at least all
tests are still green.
Problem with fork/join using swimlane
-------------------------------------
Key: JBPM-2749
URL:
https://jira.jboss.org/jira/browse/JBPM-2749
Project: jBPM
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 4.3, jBPM 4.2
Environment: Windows XP DataBase ORACLE 10G
Reporter: Andrey Timofeev
Attachments: JoinSwimlane.java, JoinSwimlane2749.java, log.txt,
testError.jpdl.xml
INFO: exception while executing command org.jbpm.pvm.internal.cmd.CompositeCmd@1175881
org.hibernate.exception.ConstraintViolationException: could not delete:
[org.jbpm.pvm.internal.task.SwimlaneImpl#280142]
<?xml version="1.0" encoding="UTF-8"?>
<process name="test"
xmlns="http://jbpm.org/4.0/jpdl">
<swimlane candidate-groups="A" name="A"/>
<swimlane candidate-groups="B" name="B"/>
<start name="start">
<transition to="task1A"/>
</start>
<task name="task1A" swimlane="A">
<transition to="task1B"/>
</task>
<task name="task1B" swimlane="B">
<transition to="fork"/>
</task>
<fork name="fork">
<transition to="task2A"/>
<transition to="task2B"/>
</fork>
<task name="task2A" swimlane="A">
<transition to="join"/>
</task>
<task name="task2B" swimlane="B">
<transition to="join"/>
</task>
<join name="join">
<transition to="end"/>
</join>
<end name="end"/>
</process>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira