Salvatore Loria
2012-05-03 09:29:35 UTC
Salvatore Loria [https://community.jboss.org/people/slash17] created the discussion
"jBPM 5.2 set process instance variable from java - NullPointerException"
To view the discussion, visit: https://community.jboss.org/message/733540#733540
--------------------------------------------------------------
Hi to all.
I'm using jBPM for two projects that need a workflow engine.
In particular I'm just using the jBPM runtime, embedded in our jBoss AS 5.1 web applications.
Thanks to you all I solved the several problems I found in this month (deploy a jBPM based web app in AS 5.1 instead of AS 7, make persistence work with an external oracle DB etc..maybe I will make a discussion with my experience if this can help someone)
But now I face a real strange (and big) problem I can't solve.
I need to access and modify process instance variables from my java code, using the API.
Here is a code snippet (just for example):
WorkflowProcessInstance p = (WorkflowProcessInstance) jBPMSession.getProcessInstance(procId);
System.out.println("before set: " + p.getVariable("user"));
p.setVariable("user", "krisv");
System.out.println("after set: " + p.getVariable("user"));
I can get the variable value using this code p.getVariable("user")
but this p.setVariable("user", "krisv"); throws a NullPointerException, cause kruntime is null (:
[....]
11:20:53,095 INFOÂ [STDOUT] before set: john
11:20:53,095 ERROR [[ExampleServlet]] Servlet.service() for servlet ExampleServlet threw exception
java.lang.NullPointerException
         at org.jbpm.process.instance.impl.ProcessInstanceImpl.getProcess(ProcessInstanceImpl.java:67)
         at org.jbpm.process.instance.impl.ProcessInstanceImpl.getContextInstance(ProcessInstanceImpl.java:127)
         at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setVariable(WorkflowProcessInstanceImpl.java:238)
         at com.valueteam.jbpm.main.JBPMUtil.setVariable(JBPMUtil.java:188)
         at com.valueteam.example.ExampleServlet.doGet(ExampleServlet.java:81)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Thread.java:662)
Â
What is the cause and how can I solve this?
Thanks in advance.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/733540#733540]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
"jBPM 5.2 set process instance variable from java - NullPointerException"
To view the discussion, visit: https://community.jboss.org/message/733540#733540
--------------------------------------------------------------
Hi to all.
I'm using jBPM for two projects that need a workflow engine.
In particular I'm just using the jBPM runtime, embedded in our jBoss AS 5.1 web applications.
Thanks to you all I solved the several problems I found in this month (deploy a jBPM based web app in AS 5.1 instead of AS 7, make persistence work with an external oracle DB etc..maybe I will make a discussion with my experience if this can help someone)
But now I face a real strange (and big) problem I can't solve.
I need to access and modify process instance variables from my java code, using the API.
Here is a code snippet (just for example):
WorkflowProcessInstance p = (WorkflowProcessInstance) jBPMSession.getProcessInstance(procId);
System.out.println("before set: " + p.getVariable("user"));
p.setVariable("user", "krisv");
System.out.println("after set: " + p.getVariable("user"));
I can get the variable value using this code p.getVariable("user")
but this p.setVariable("user", "krisv"); throws a NullPointerException, cause kruntime is null (:
[....]
11:20:53,095 INFOÂ [STDOUT] before set: john
11:20:53,095 ERROR [[ExampleServlet]] Servlet.service() for servlet ExampleServlet threw exception
java.lang.NullPointerException
         at org.jbpm.process.instance.impl.ProcessInstanceImpl.getProcess(ProcessInstanceImpl.java:67)
         at org.jbpm.process.instance.impl.ProcessInstanceImpl.getContextInstance(ProcessInstanceImpl.java:127)
         at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.setVariable(WorkflowProcessInstanceImpl.java:238)
         at com.valueteam.jbpm.main.JBPMUtil.setVariable(JBPMUtil.java:188)
         at com.valueteam.example.ExampleServlet.doGet(ExampleServlet.java:81)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Thread.java:662)
Â
What is the cause and how can I solve this?
Thanks in advance.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/733540#733540]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]