SubTask completeTask 问题

代码:


package com.cloud.test;

import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task;
import org.jbpm.pvm.internal.task.TaskImpl;

/**
* 子任务测试
* @author Administrator
*
*/
public class SubTask {

/**
* 获取流程引擎
* @return
*/
public static ProcessEngine getProcessEngine() {

Configuration cfg = new Configuration();
return cfg.buildProcessEngine();
}


public void create() {

ProcessEngine engine = getProcessEngine();
//启动任务
engine.getExecutionService().startProcessInstanceByKey("SubTask");

//创建子任务
TaskService ts = engine.getTaskService();
List<Task> tasks = ts.findPersonalTasks("abc");
if (tasks !=null && tasks.size() >= 1) {
Task parent = tasks.get(0);
System.out.println(parent.getId() + "_" + parent.getName());
Task task = ts.newTask(parent.getId());
task.setAssignee("abc");
((TaskImpl)task).setSignalling(false);
task.setName("subTask_new");
ts.saveTask(task);
System.out.println("success");
}
}

public void audit() {

ProcessEngine engine = getProcessEngine();
TaskService ts = engine.getTaskService();
List<Task> tasks = ts.findPersonalTasks("abc");

for (Task task : tasks) {
System.out.println(task.getId() + "_" + task.getName());
if ("subTask_new".equals(task.getName())) {
ts.completeTask(task.getId());
}
}
}

public static void main(String[] args) {

// new SubTask().create();
new SubTask().audit();
}
}



xml:

<?xml version="1.0" encoding="UTF-8"?>

<process name="SubTask" xmlns="http://jbpm.org/4.4/jpdl">
<start name="start1" g="182,42,48,48">
<transition name="to task1" to="task1" g="-53,-17"/>
</start>
<task name="task1" g="159,132,92,52" assignee="abc">
<transition name="to end1" to="end1" g="-47,-17"/>
</task>
<end name="end1" g="182,245,48,48"/>
</process>


报错:

Exception in thread "main" org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [org.jbpm.pvm.internal.task.TaskImpl#440004]
at org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1041)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:188)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)
at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:241)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:291)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:239)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:319)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:265)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:242)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:192)
at org.hibernate.engine.Cascade.cascade(Cascade.java:153)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:145)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
at org.jbpm.pvm.internal.tx.HibernateSessionResource.prepare(HibernateSessionResource.java:56)
at org.jbpm.pvm.internal.tx.StandardTransaction.commit(StandardTransaction.java:107)
at org.jbpm.pvm.internal.tx.StandardTransaction.complete(StandardTransaction.java:64)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:57)
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:56)
at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:88)
at com.cloud.test.SubTask.audit(SubTask.java:59)
at com.cloud.test.SubTask.main(SubTask.java:67)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值