[jbpm-dev] Task object with stale data

Marcelo Zabalet zabalet at gmail.com
Fri Aug 3 08:17:03 EDT 2012


Thanks Mauricio, I will post in the forum, but before I will work on this
issue a little more. I think I messed up the entity managers.


On Wed, Aug 1, 2012 at 8:30 PM, Mauricio Salatino <salaboy at gmail.com> wrote:

> Hi Marcelo,
> You should not post user questions to the jbpm-dev list, you should use
> the forum for this kind of questions.
>
> Can you please post the question in the forum with a test to reproduce
> your problem?
> Cheers
>
> On Wed, Aug 1, 2012 at 10:38 PM, Marcelo Zabalet <zabalet at gmail.com>wrote:
>
>> Hey.
>>
>> I'm working on a long-term government project for the implementation of
>> BPM. We are building an application with jBPM to expose BPM to other
>> projects as a service. I'll be working with this for a while.
>>
>> Well, going to the point, the problem I have now is an object "Task" with
>> stale data when I try to do a CompleteTask operation.
>>
>> To set the context: this project is based on
>>
>>     <parent>
>>         <groupId>org.drools</groupId>
>>         <artifactId>droolsjbpm-parent</artifactId>
>>         <version>5.4.0.Final</version>
>>     </parent>
>>
>> using, at the moment, a local strategy for the Human Task Service (not
>> Mina, nor MQ) accesing the service with this class:
>>
>> org.jboss.bpm.console.server.integration.TaskManagement.
>>
>>
>> By completing a task from here: TaskManagement.completeTask (taskId,
>> data, user ID), I found the symptom of losing the assignment of task vars
>> to the process. I don't know what exactly the problem is, but trying to
>> solve the problem, I realized that here:
>>
>> SyncWSHumanTaskHandler.handleCompletedTask(taskId) {
>>   Task task = client.getTask(taskId);
>>   ...
>>   if (task.getTaskData().getStatus() == Status.Completed)) {
>>   ...
>> }
>>
>> the system ends up with a Task object with stale data. In the database,
>> the task at hand has a Completed status, but in this case, the Task object
>> has an InProgress status. So, the if-condition evaluates to false, never
>> executing the corresponding block where lies the vars assigment stuff.
>>
>> Here is a copy of the stack at the three moments where the completeTask
>> operation acquires a Task object from the database (or the persistence
>> context).
>>
>> This acquires a task and marks it as InProgress
>>
>>     TaskServiceSession.getTask(long) line: 527
>>     TaskServiceSession.taskOperation(Operation, long, String, String,
>> ContentData, List<String>) line: 406
>>     LocalTaskService.start(long, String) line: 276
>>     TaskManagement.completeTask(long, Map, String) line: 95
>>
>> This acquires a task and marks it as Completed. I checked at this point
>> and is the same Task Object (I mean same java Obect in memory), so far so
>> good.
>>
>>     TaskServiceSession.getTask(long) line: 527
>>     TaskServiceSession.taskOperation(Operation, long, String, String,
>> ContentData, List<String>) line: 406
>>     LocalTaskService.complete(long, String, ContentData) line: 80
>>     TaskManagement.completeTask(long, Map, String) line: 113
>>
>> This acquires a Task for the work-item stuff.
>> This is where the problem lies. The Task object is a diferent one from
>> the previous ones and has stale data, so the status is InProgress.
>> I think there is a conflict with the Entity Managers here...
>>
>>     TaskServiceSession.getTask(long) line: 527
>>     LocalTaskService.getTask(long) line: 165
>>     SyncWSHumanTaskHandler$TaskCompletedHandler.handleCompletedTask(long)
>> line: 345
>>     SyncWSHumanTaskHandler$TaskCompletedHandler$1.run() line: 333
>>     Thread.run() line: 662
>>
>>
>> Obviously, the best answer is how I fix this to get it working ASAP :)
>> Talking seriously, I will apreciate any tip or clue to help me focus in
>> the right direction. Maybe I'm wrong from the root. Some of the questions
>> that arise:
>> I see that I'm using (indirectly)
>> org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler that is marked as
>> @Deprecated.
>> Why is it deprecated or what should I use instead?
>> I choose a local strategy, is still contemplated or will be removed and
>> no one is thinking on local in favor of Mina, queues, or something else?
>>
>>
>> Thanks in advance.
>>
>>
>> Marcelo.
>>
>> _______________________________________________
>> jbpm-dev mailing list
>> jbpm-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbpm-dev
>>
>>
>
>
> --
>  - MyJourney @ http://salaboy.wordpress.com
>  - Co-Founder @ http://www.jugargentina.org
>  - Co-Founder @ http://www.jbug.com.ar
>
>  - Salatino "Salaboy" Mauricio -
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbpm-dev/attachments/20120803/d79350b3/attachment-0001.html 


More information about the jbpm-dev mailing list