-
30. Re: Seam jBPM: use annotation or pages.xml to get next task?
gavin.king Mar 20, 2007 7:06 PM (in response to avbentem)What exactly is driving jBPM here? What causes the event to fire?
-
31. Re: Seam jBPM: use annotation or pages.xml to get next task?
bsmithjj Mar 20, 2007 7:14 PM (in response to avbentem)Another EJB (yes a seam component) has created the process instance - then, based on certain business conditions, the process gets signaled through the tasks until we arrive at this particular state (node). On entry into the state, this ActionHandler fires (I posted the XML for this state node a few postings back).
Thanks -
32. Re: Seam jBPM: use annotation or pages.xml to get next task?
gavin.king Mar 20, 2007 7:17 PM (in response to avbentem)So how is it created. If it was created using @CreateProcess then it will be associated with the current conversation, and it will be available to the action handler.
-
33. Re: Seam jBPM: use annotation or pages.xml to get next task?
gavin.king Mar 20, 2007 7:20 PM (in response to avbentem)Of course, if you created it yourself via some other mechanism, *you* will have to associate it will the conversation using BusinessProcess.instance().setProcessId( processInstance.getId() ).
Seam isn't magic. Seam only knows about processes it creates or retrieves. If you get it yourself, by going to jBPM APIs directly, then it is up to you to do the job of associating it with the conversation. -
34. Re: Seam jBPM: use annotation or pages.xml to get next task?
bsmithjj Mar 20, 2007 7:23 PM (in response to avbentem)In our application, a user may create a 1-N entities we call AccessRequests. In the SFSB method which is invoked by the user on submit, we create a loop to create each AccessRequest and create a ProcessInstance with that AccessRequest's id as a process variable. In this particular use case, we signal up to the 'provisioning' state previously described. Here is the code that creates the N ProcessInstances (inside the braces of a for loop):
// Load the JBPM context JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance(); JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext(); // Create new process, associate with this access request and save ProcessInstance process = jbpmContext.newProcessInstance("NewAccessRequest"); process.getContextInstance().setVariable("accessRequestId", accessRequest.getId()); Contexts.getEventContext().set( "accessRequest", accessRequest ); Token token = process.getRootToken(); token.signal(); // move to <task-node name="User Manager Approve-Reject Request"> and flushed)."); Collection<TaskInstance> tasks = (Collection<TaskInstance>) process.getTaskMgmtInstance().getTaskInstances(); // Thd jBPM API sucks (3.1.4) - this is the only way I can find of ending the current task // along the 'approve' transition for (TaskInstance task : tasks) { if ("Approve/Reject".equals(task.getName())) { task.end("approve"); break; } } jbpmContext.close();
thanks -
35. Re: Seam jBPM: use annotation or pages.xml to get next task?
bsmithjj Mar 20, 2007 7:28 PM (in response to avbentem)"gavin.king@jboss.com" wrote:
Of course, if you created it yourself via some other mechanism, *you* will have to associate it will the conversation using BusinessProcess.instance().setProcessId( processInstance.getId() ).
Seam isn't magic. Seam only knows about processes it creates or retrieves. If you get it yourself, by going to jBPM APIs directly, then it is up to you to do the job of associating it with the conversation.
I realize what you're saying above about Seam - I'm attempting to use the EL as you showed earlier to have an ActionHandler invoke a Seam component instead of having to implement an ActionHandler which you claim I should never have to do ;-). Anyway, now we're coming to why I suggested earlier the possibility of creating a Seam-jBPM interceptor that fires around the execute(...) method in an ActionHandler, DecisionHandler, etc... -
36. Re: Seam jBPM: use annotation or pages.xml to get next task?
gavin.king Mar 20, 2007 7:36 PM (in response to avbentem)(1) Why not use the jbpmContext component, instead of creating your own context?
(2) Since you create the processInstance, you must associate it with the Seam contexts, by doing BusinessProcess.instance().setProcessId(...).
I think if you do both of those, things will work nicely.... -
37. Re: Seam jBPM: use annotation or pages.xml to get next task?
gavin.king Mar 20, 2007 7:39 PM (in response to avbentem)"bsmithjj" wrote:
"gavin.king@jboss.com" wrote:
Of course, if you created it yourself via some other mechanism, *you* will have to associate it will the conversation using BusinessProcess.instance().setProcessId( processInstance.getId() ).
Seam isn't magic. Seam only knows about processes it creates or retrieves. If you get it yourself, by going to jBPM APIs directly, then it is up to you to do the job of associating it with the conversation.
I realize what you're saying above about Seam - I'm attempting to use the EL as you showed earlier to have an ActionHandler invoke a Seam component instead of having to implement an ActionHandler which you claim I should never have to do ;-). Anyway, now we're coming to why I suggested earlier the possibility of creating a Seam-jBPM interceptor that fires around the execute(...) method in an ActionHandler, DecisionHandler, etc...
Yes, well, I happen to agree with you on this one. Two reasons:
(1) It is needed for the problem of jBPM async events and timers, for me to set up my Seam contexts.
(2) I would be able to transparently associate the processinstance, and save you from doing that explicitly.
Currently, AFAIK, jBPM does not provide the hooks I need for this, but I have asked Tom for them. Not sure the status there. -
38. Re: Seam jBPM: use annotation or pages.xml to get next task?
bsmithjj Mar 20, 2007 7:46 PM (in response to avbentem)"gavin.king@jboss.com" wrote:
(1) Why not use the jbpmContext component, instead of creating your own context?
(2) Since you create the processInstance, you must associate it with the Seam contexts, by doing BusinessProcess.instance().setProcessId(...).
I think if you do both of those, things will work nicely....
I will try this and let you know how this works out - I really appreciate this discussion we're having - thanks! -
39. Re: Seam jBPM: use annotation or pages.xml to get next task?
bsmithjj Mar 21, 2007 11:18 AM (in response to avbentem)So now I've tried your recommendation:
Here is the code that creates a new ProcessInstance and signals (or transitions) it two steps:ProcessInstance process = jbpmContext.newProcessInstance("NewAccessRequest"); businessProcess.setProcessId(process.getId()); log.info("new process.id=" + process.getId()); process.getContextInstance().setVariable("accessRequestId", accessRequest.getId()); Contexts.getEventContext().set( "accessRequest", accessRequest ); Token token = process.getRootToken(); token.signal(); // move to <task-node name="User Manager Approve-Reject Request"> Collection<TaskInstance> tasks = (Collection<TaskInstance>) process.getTaskMgmtInstance().getTaskInstances(); log.info("tasks -> " + tasks); for (TaskInstance task : tasks) { if ("Approve/Reject".equals(task.getName())) { task.end("approve"); break; } }
And as a reminder, here is the state node we enter upon task.end("approve") (actually, a DecisionHandler ends up routing us here in the workflow):<state name="Provision Response"> <event type="node-enter"> <!-- on entry, fire the auto provision action --> <!--action class="com.evergreen.accesscontrol.jbpmaction.AutoProvisionAction"/--> <action expression="#{autoProvisioner.provisionAccess}"/> </event> <transition name="ProvisionSuccess" to="end approval request"></transition> <transition name="ProvisionFailure" to="end approval request"></transition> </state>
And here is the AutoProvisionerBean@Stateless @Name("autoProvisioner") public class AutoProvisionerBean implements AutoProvisioner { @Logger private Log log; @PersistenceContext(unitName = "accessControlDatabase") private EntityManager em; @In(create = true) private JMSSender simpleJmsSender; @In private JbpmContext jbpmContext; @In private BusinessProcess businessProcess; public String provisionAccess() { log.info("---------------------> provisionAccess(): Resource Check"); log.info("JbpmContext -> " + jbpmContext); log.info("EntityManager (em) -> " + em); log.info("BusinessProcess -> "+businessProcess); ProcessInstance processInstance = jbpmContext.getProcessInstance(businessProcess.getProcessId()); log.info("ProcessInstance -> "+processInstance); long accessRequestId = (Long)processInstance.getContextInstance().getVariable("accessRequestId"); log.info("accessRequestId -> " + accessRequestId); AccessRequest accessRequest = null; User user = null; try { accessRequest = (AccessRequest) em.createQuery( "from AccessRequest a fetch all properties where a.id=:id" ).setParameter("id", accessRequestId) .getSingleResult(); log.info("AccessRequest: " + accessRequest); EntitlementStorageType entStorageType = accessRequest.getApplication().getEntitlementStorageType(); log.info("EntitlementStorageType=" + entStorageType); .... there's more but we don't get that far ....
and here is the logs:11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - ---------------------> provisionAccess(): Resource Check 11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - JbpmContext -> org.jbpm.JbpmContext@1144c75 11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - EntityManager (em) -> org.jboss.seam.persistence.EntityManagerProxy@102375a 11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - BusinessProcess -> BusinessProcess(processId=80379,taskId=null) 11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - ProcessInstance -> org.jbpm.graph.exe.ProcessInstance@acb24d 11:02:06,616 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - accessRequestId -> 80374 11:02:06,632 INFO com.evergreen.accesscontrol.impl.AutoProvisionerBean - AccessRequest: AccessRequest{id=80374{userId=A428302{ ... truncated ... } } 11:02:06,663 ERROR org.hibernate.LazyInitializationException - could not initialize proxy - the owning Session was closed org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:196) at com.evergreen.accesscontrol.entity.EntitlementStorageType_$$_javassist_225.toString(EntitlementStorageType_$$_javassist_225.java) at java.lang.String.valueOf(String.java:2615) at java.lang.StringBuilder.append(StringBuilder.java:116) at com.evergreen.accesscontrol.impl.AutoProvisionerBean.provisionAccess(AutoProvisionerBean.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:181) at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79) at $Proxy590.provisionAccess(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:20) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50) at org.javassist.tmp.java.lang.Object_$$_javassist_331.provisionAccess(Object_$$_javassist_331.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jbpm.jpdl.el.impl.BeanMethod.invoke(BeanMethod.java:19) at org.jbpm.jpdl.el.impl.ArraySuffix.evaluate(ArraySuffix.java:287) at org.jbpm.jpdl.el.impl.ComplexValue.evaluate(ComplexValue.java:146) at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:264) at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:191) at org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator.evaluate(JbpmExpressionEvaluator.java:34) at org.jbpm.graph.def.Action.execute(Action.java:119) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:235) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:182) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166) at org.jbpm.graph.def.Node.enter(Node.java:301) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:198) at org.jbpm.graph.exe.Token.signal(Token.java:178) at org.jbpm.graph.exe.Token.signal(Token.java:149) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:443) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:382) at com.evergreen.accesscontrol.impl.AccessRequestManagerBean.sendRequestAndApprove(AccessRequestManagerBean.java:759) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationalInterceptor.aroundInvoke(ConversationalInterceptor.java:89) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188) at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98) at $Proxy564.sendRequestAndApprove(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:20) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50) at org.javassist.tmp.java.lang.Object_$$_javassist_310.sendRequestAndApprove(Object_$$_javassist_310.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.el.parser.AstValue.invoke(AstValue.java:151) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168) at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at com.evergreen.fastpass.catalina.CASSSOAuthenticatorValve.invoke(CASSSOAuthenticatorValve.java:373) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) 11:02:06,710 ERROR org.jbpm.graph.def.GraphElement - action threw exception: couldn't evaluate expression '#{autoProvisioner.provisionAccess}' org.jbpm.JbpmException: couldn't evaluate expression '#{autoProvisioner.provisionAccess}' at org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator.evaluate(JbpmExpressionEvaluator.java:38) at org.jbpm.graph.def.Action.execute(Action.java:119) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:235) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:182) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166) at org.jbpm.graph.def.Node.enter(Node.java:301) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:198) at org.jbpm.graph.exe.Token.signal(Token.java:178) at org.jbpm.graph.exe.Token.signal(Token.java:149) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:443) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:382) at com.evergreen.accesscontrol.impl.AccessRequestManagerBean.sendRequestAndApprove(AccessRequestManagerBean.java:759) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationalInterceptor.aroundInvoke(ConversationalInterceptor.java:89) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188) at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98) at $Proxy564.sendRequestAndApprove(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:20) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50) at org.javassist.tmp.java.lang.Object_$$_javassist_310.sendRequestAndApprove(Object_$$_javassist_310.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.el.parser.AstValue.invoke(AstValue.java:151) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168) at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at com.evergreen.fastpass.catalina.CASSSOAuthenticatorValve.invoke(CASSSOAuthenticatorValve.java:373) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.ejb.EJBTransactionRolledbackException: org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:181) at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79) at $Proxy590.provisionAccess(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:20) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50) at org.javassist.tmp.java.lang.Object_$$_javassist_331.provisionAccess(Object_$$_javassist_331.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jbpm.jpdl.el.impl.BeanMethod.invoke(BeanMethod.java:19) at org.jbpm.jpdl.el.impl.ArraySuffix.evaluate(ArraySuffix.java:287) at org.jbpm.jpdl.el.impl.ComplexValue.evaluate(ComplexValue.java:146) at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:264) at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:191) at org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator.evaluate(JbpmExpressionEvaluator.java:34) ... 152 more Caused by: org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:196) at com.evergreen.accesscontrol.entity.EntitlementStorageType_$$_javassist_225.toString(EntitlementStorageType_$$_javassist_225.java) at java.lang.String.valueOf(String.java:2615) at java.lang.StringBuilder.append(StringBuilder.java:116) at com.evergreen.accesscontrol.impl.AutoProvisionerBean.provisionAccess(AutoProvisionerBean.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) ... 188 more 11:02:06,741 WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null 11:02:06,741 ERROR org.hibernate.util.JDBCExceptionReporter - Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]; - nested throwa ble: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]) 11:02:06,741 WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null 11:02:06,741 ERROR org.hibernate.util.JDBCExceptionReporter - Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]; - nested throwa ble: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]) 11:02:06,741 ERROR com.evergreen.accesscontrol.impl.AccessRequestManagerBean - java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:198) at org.jbpm.graph.exe.Token.signal(Token.java:178) at org.jbpm.graph.exe.Token.signal(Token.java:149) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:443) at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:382) at com.evergreen.accesscontrol.impl.AccessRequestManagerBean.sendRequestAndApprove(AccessRequestManagerBean.java:759) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:37) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:54) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.ConversationalInterceptor.aroundInvoke(ConversationalInterceptor.java:89) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118) at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188) at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98) at $Proxy564.sendRequestAndApprove(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:20) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57) at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103) at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50) at org.javassist.tmp.java.lang.Object_$$_javassist_310.sendRequestAndApprove(Object_$$_javassist_310.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.el.parser.AstValue.invoke(AstValue.java:151) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168) at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at com.evergreen.fastpass.catalina.CASSSOAuthenticatorValve.invoke(CASSSOAuthenticatorValve.java:373) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) ... 124 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:208) at org.jbpm.graph.def.Node_$$_javassist_270.enter(Node_$$_javassist_270.java) at org.jbpm.graph.def.Transition.take(Transition.java:119) at org.jbpm.graph.def.Node.leave(Node.java:383) at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:136) at org.jbpm.graph.node.Decision.execute(Decision.java:146) at org.jbpm.graph.def.Node.enter(Node.java:316) ... 135 more Caused by: org.jbpm.graph.def.DelegationException at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:352) at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:346) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:249) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:182) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166) at org.jbpm.graph.def.Node.enter(Node.java:301) ... 146 more Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561) at org.hibernate.loader.Loader.doQuery(Loader.java:661) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.loadCollection(Loader.java:1919) at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36) at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:541) at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60) at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1705) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentList.iterator(PersistentList.java:115) at org.jbpm.graph.def.GraphElement.findExceptionHandler(GraphElement.java:361) at org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:328) ... 152 more Caused by: org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]; - nested throwable: (javax.reso urce.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95]) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94) at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417) ... 167 more Caused by: javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=DEIBKST-6KZFT61/95, BranchQual=, localId=95] at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:290) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:379) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) ... 169 more 11:02:06,773 INFO com.evergreen.accesscontrol.impl.AccessRequestManagerBean - Raising event -> AccessRequestSaved 11:02:06,851 ERROR org.jboss.seam.web.ExceptionFilter - uncaught exception javax.servlet.ServletException: Error calling action method of component with id _id24:_id84 at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
-
40. Re: Seam jBPM: use annotation or pages.xml to get next task?
avbentem Mar 21, 2007 11:40 AM (in response to avbentem)Ok, now that Gavin gave a nice combination of @StartTask and pages.xml, I wonder if something similar could be done using the value returned by @CreateProcess, somehow also forcing @StartTask to be triggered?
Now, how to explain this... In the Todo example we've got:@CreateProcess(definition = "todo") public void createTodo() { // nothing here in fact }
and<process-definition name="todo"> : <task-node name="todo"> <task name="todo" description="#{todoList.description}"> <assignment actor-id="#{actor.id}"/> </task> : </process-definition>
Above, when createTodo() completes successfully then @CreateProcess somehow tells jBPM that the process is started. Eventually the <task-node> is reached at which point jBPM will create the org.jbpm.taskmgmt.exe.TaskInstance and assign it to the current actor. Next, the task could be started using, for example, Gavin's TaskSelector#selectTask.
Above, createTodo() does not return a value, so the actor stays at the current page. In my example I do in fact return a value, which gives the actor my page on which I check if the task has been started. To find the single task that I expect, I use something like:@Name("taskFinder") public class TaskFinder { @Logger Log log; @In ProcessInstance processInstance; /** * Convenience method to get the single task from the current process * instance. * <p> * Assumes the process instance holds exactly one task; returns * <code>null</code> if none or multiple tasks are found. * * @return org.jbpm.taskmgmt.exe.TaskInstance, just like returned by * {@link org.jboss.seam.core.TaskInstanceList}, or * <code>null</code> when none or multiple tasks are found. */ @SuppressWarnings("unchecked") public TaskInstance getSingleTaskInstance() { Collection<TaskInstance> taskInstances = (Collection<TaskInstance>) processInstance.getTaskMgmtInstance() .getTaskInstances(); if (taskInstances.size() != 1) { log.error("Expected single task, found #0", taskInstances.size()); return null; } return (TaskInstance)taskInstances.iterator().next(); } }
and<c:choose> <c:when test="#{taskInstance == null}"> <p>This task has not yet been started.</p> <p><s:link action="#{taskSelector.startTask}" taskInstance="#{taskFinder.singleTaskInstance}" value="Start now" />.</p> </c:when> <c:otherwise> :
So, though all of this happens AFTER createTodo() completes, for this specific process I know that a single task is created (almost) immediately. I actually even know the name of that task. So I can assume only a single task will be found.
Though the above works for me (well, I guess in some cases I actually would like it to start automatically when needed...), I wonder if this could somehow be implemented without my TaskFinder, for example using pages.xml?
(and errr, yes, in the Todo-list example starting the task would in fact also end it, but just suppose the @EndTask is set on another method so we could show some Todo-task page...) -
41. Re: Seam jBPM: use annotation or pages.xml to get next task?
avbentem Mar 22, 2007 5:09 AM (in response to avbentem)
Actually, I think one day I also might want to start a task as soon as one assigns it to oneself, and show the appropriate page right away. In the DVD Store example the following is used:<h:dataTable value="#{pooledTaskInstanceList}" var="task"> : <s:button action="#{pooledTask.assignToCurrentActor}" taskInstance="#{task}" value="Assign"/> : </h:dataTable>
After clicking the button above, the new assigned task is listed in #{taskInstanceListForType['approve']}, and can then be started. But how to start the task right away, so as soon as the task is assigned to oneself?
I could rewrite this to:<s:button action="#{taskSelector.assignToCurrentActor}" taskInstance="#{task}" value="Assign"/>
using@Name("taskSelector") public class TaskSelector { @In TaskInstance taskInstance; @In Actor actor; : public String assignToCurrentActor(){ taskInstance.setActorId(actor.getId()); // Or maybe one should use the following? // jbpmContext.getTaskMgmtSession().loadTaskInstance(taskId) // .assign(actor.getId()); return taskInstance.getName(); } :
This allows me to go to a task-specific page right away, but at that point the task has not been started yet. So this needs something more...
Thanks for any thoughts,
Arjan. -
42. Re: Seam jBPM: use annotation or pages.xml to get next task?
pmuir Mar 22, 2007 5:34 AM (in response to avbentem)I think the code for auto-starting tasks is an area which is extremely use-case specific (assuming the actor has only one task assigned is a *big* one) so should be implemented on a case-by-case basis.
-
43. Re: Seam jBPM: use annotation or pages.xml to get next task?
avbentem Mar 22, 2007 6:47 AM (in response to avbentem)"petemuir" wrote:
assuming the actor has only one task assigned is a *big* one
Of course, and indeed I'm not assuming an actor only has a single task assigned. So, for example, when a human actor logs into some website then indeed a list of tasks will often be very appropriate.
However, when a human actor starts a new process, then I think often a single task will be activated and almost immediately assigned to that very same actor. Likewise, when assigning a specific task of some existing process to the current actor, one in fact knows exactly what task is to be performed. The actor wants to take control of that task, so I think often the actor also wants to start working on the task, and wants to be taken to the task-specific page to get the job done.
And above all: I'm not saying that tasks should always be auto-started. But if the application is such that (some) tasks should be auto-started, then I wonder what's the cleanest, most Seam-like way to get it implemented.
Thanks,
Arjan. -
44. Re: Seam jBPM: use annotation or pages.xml to get next task?
pmuir Mar 22, 2007 7:19 AM (in response to avbentem)oic, sorry, I misread what you are doing.
You should be able to wrap all this up on a page action - something like
TaskFinderpublic String autoStart() { TaskInstance taskInstance = getSingleTaskInstance(); if (taskInstance != null) { // Associate the task and process BusinessProcess.instance().resumeTask(taskInstance.getId()); // As long as you have an Actor set up, call this to actually mark the task started BusinessProcess.instance().startTask(); return taskInstance.getName(); } return null; }
Then wire it up<page view-id="/assignTask.xhtml" action="#{taskFinder.autoStart()}"> <navigation> ... </navigation> </page>
And then in assignTask.xhtml you would have a manual task selector which would be reached if the autoStart returned null; if it didn't you would start the task and get redirected. Make the @CreateProcess method navigate you to assignTask.xhtml
In fact, can you create a JIRA issue for both a task selector and a way of auto-starting tasks - we can probably wrap it up in @CreateProcess / create-process in pages.xml