Livia Hauser [http://community.jboss.org/people/liviah] created the discussion
"Diagram not upadet (using async. work item)" To view the discussion, visit: http://community.jboss.org/message/630012#630012 -------------------------------------------------------------- Hi All, last weekend I played arround with drools (5.3.0.CR1) and jbpm (5.1.1.Final) on jboss 5.1. I have a simple bpmn: [1]start -> [2] timer ->[3]script -> [4]AsyncHandler -> [5]timer -> [6]script -> [7]end After my AsyncHandler calls completeWorkItem task [5] and [6] will executed. But if I take a look at the diagram task [4] is still highlighted. How I can make shure a user will see right/updated diagram? My WorkHandler to test a asynch behavior: public class AsyncWorkItemHandler implements WorkItemHandler { StatefulKnowledgeSession ksession; public AsyncWorkItemHandler(ProcessContext kcontext){ super(); this.ksession = (StatefulKnowledgeSession)kcontext.getKnowledgeRuntime(); } public AsyncWorkItemHandler(StatefulKnowledgeSession ksession) { super(); this.ksession = ksession; @Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager){ class WThread extends Thread{ int sessionId; long itemId; KnowledgeBase kbase; Environment env; public WThread(int sessionId, long itemId, KnowledgeBase kbase, Environment env) { super(); this.sessionId = sessionId;; this.itemId = itemId; this.kbase = kbase; this.env = env; } @Override public void run(){ int seconds = 30; System.out.println("thread for session " + this.sessionId + " (workitem "+ this.itemId +"), sleep " + seconds + "s"); try { Thread.currentThread().sleep(seconds * 1000); } catch (InterruptedException e) { e.printStackTrace(); } StatefulKnowledgeSession ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(this.sessionId, kbase, null, env); ksession.getWorkItemManager().registerWorkItemHandler("AsyncTask", new AsyncWorkItemHandler(ksession)); ksession.getWorkItemManager().completeWorkItem(this.itemId, null); System.out.println("thread for session " + this.sessionId + " (workitem "+ this.itemId +") end"); this.clean(); } protected void clean(){ this.kbase = null; this.env = null; } } KnowledgeBase kbase = ksession.getKnowledgeBase(); Environment env = ksession.getEnvironment(); int sessionId = ksession.getId(); long itemId = workItem.getId(); WThread t = new WThread(sessionId, /*processId,*/ itemId, kbase, env); t.start(); } } } Any hints? Many thx + greetings, Livia -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/630012#630012] Start a new discussion in jBPM at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
