[jboss-user] [jBPM] - How to check in jBPM 4.3 that java activity returned null?
Constantine Kulak
do-not-reply at jboss.com
Fri Jul 23 08:33:39 EDT 2010
Constantine Kulak [http://community.jboss.org/people/ity75303] created the discussion
"How to check in jBPM 4.3 that java activity returned null?"
To view the discussion, visit: http://community.jboss.org/message/554156#554156
--------------------------------------------------------------
Hello,
is there any way to store null value in a variable and then check it for being empty? I'm trying to do it like this:
<java
method="someMethod" name="Java" var="variable">
<transition to="Decision" />
</java>
<decision name="Decision">
<transition to="Variable is empty">
<condition expr="#{empty variable}" />
</transition>
<transition to="Default" />
</decision>
here xxx.Test.someMethod returns null, and +decision+ throws an exception:
org.jbpm.api.JbpmException: script evaluation error: javax.el.PropertyNotFoundException: Cannot find property variable
org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:130)
org.jbpm.pvm.internal.script.ScriptManager.evaluate(ScriptManager.java:118)
org.jbpm.pvm.internal.script.ScriptManager.evaluateExpression(ScriptManager.java:90)
org.jbpm.pvm.internal.model.ExpressionCondition.evaluate(ExpressionCondition.java:41)
org.jbpm.jpdl.internal.activity.DecisionConditionActivity.findTransitionUsingConditions(DecisionConditionActivity.java:61)
org.jbpm.jpdl.internal.activity.DecisionConditionActivity.execute(DecisionConditionActivity.java:46)
org.jbpm.jpdl.internal.activity.DecisionConditionActivity.execute(DecisionConditionActivity.java:42)
org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:656)
org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:616)
org.jbpm.pvm.internal.model.ExecutionImpl.start(ExecutionImpl.java:217)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:61)
org.jbpm.pvm.internal.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
org.jbpm.pvm.internal.svc.ExecutionServiceImpl.startProcessInstanceById(ExecutionServiceImpl.java:58)
org.jbpm.integration.console.ProcessManagementImpl.newInstance(ProcessManagementImpl.java:151)
org.jboss.bpm.console.server.FormProcessingFacade.startProcessWithUI(FormProcessingFacade.java:202)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
So I guess it doesn't create a variable if null is returned. To overcome this I'm returning List instead of a single object and check whether it is empty or not, but it looks ugly. Is there any better way to check for null values returned by +java+ activity?
Thanks in advance for your suggestions.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/554156#554156]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20100723/a7c434ed/attachment.html
More information about the jboss-user
mailing list