使用 jbpm时,查找需要singal的task时代码如下,
Iterator it1=collect.iterator();
while(it1.hasNext()){
TaskInstance taskInstance=(TaskInstance)it1.next(); //在该行处报异常。
Set actorSet = taskInstance.getPooledActors();
Iterator iterator = actorSet.iterator();
while(iterator.hasNext()){
PooledActor poolAct = (PooledActor)iterator.next();
if((""+userId).equals(poolAct.getActorId())
&&!taskInstance.hasEnded() ){
Set set = taskInstance.getToken().getNode().getArrivingTransitions();
taskInstance.end();
}
}
}
在网上查找到,
Object[] objs = collect.toArray();
for(int j=0;j<objs.length;j++){
// while(it1.hasNext()){ //修改2
TaskInstance taskInstance=(TaskInstance)objs[j];
Set actorSet = taskInstance.getPooledActors();
Iterator iterator = actorSet.iterator();
while(iterator.hasNext()){
PooledActor poolAct = (PooledActor)iterator.next();
if((""+userId).equals(poolAct.getActorId())
&&!taskInstance.hasEnded() ){
Set set = taskInstance.getToken().getNode().getArrivingTransitions();
taskInstance.end();
}
}
}