Feki Ahmed [
https://community.jboss.org/people/bardelman] created the discussion
"Re: jbpm 5.4.0 - NullPointerException completing workItem. is this bug not resolved
yet ?"
To view the discussion, visit:
https://community.jboss.org/message/801076#801076
--------------------------------------------------------------
You are pointing to the right place ! i resolved this problem and i remember that i had to
instanciate a new kbuilder, a new kbase ,a new env , a new emf for the session to
reload as it is a new created session and even a new client for dealing with tasks.
here is the code :
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(new ClassPathResource(proctoreloadname+".bpmn"),
ResourceType.BPMN2);
if (kbuilder.hasErrors()) {
for (KnowledgeBuilderError error : kbuilder.getErrors()) {
System.out.println(">>> Error:" + error.getMessage());
}
System.out.println(">>> Knowledge couldn't be parsed!
");
}
kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
env = EnvironmentFactory.newEnvironment();
emf = Persistence.createEntityManagerFactory("org.jbpm.runtime.ht");
env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
env.set(EnvironmentName.TRANSACTION_MANAGER,
TransactionManagerServices.getTransactionManager());
processInstance = null;
// Let's reload the session
ksessions.add(JPAKnowledgeService.loadStatefulKnowledgeSession(Integer.parseInt(idSessionToReload),
kbase, null, env));
ksessions.remove(ksessions.size()-2);
sessionId= ksessions.get(ksessions.size()-1).getId();
// All the listeners and WorkItemHandlers are volatile, so we need to
register them each time that we reload the session
// from the DB.
clients.add(createTaskService(emf));
clients.remove(clients.size()-2);
clients.get(clients.size()-1).connect();
localHTWorkItemHandlers.add(new
LocalHTWorkItemHandler(clients.get(clients.size()-1),
ksessions.get(ksessions.size()-1)));
localHTWorkItemHandlers.remove(localHTWorkItemHandlers.size()-2);
try {
clients.get(clients.size()-1).disconnect();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ksessions.get(ksessions.size()-1).getWorkItemManager().registerWorkItemHandler("Human
Task", localHTWorkItemHandlers.get(localHTWorkItemHandlers.size()-1));
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/801076#801076]
Start a new discussion in jBPM Development at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]