1 2 3 4 Previous Next 53 Replies Latest reply on Jun 20, 2007 11:30 AM by gavin.king Go to original post
      • 30. Re: Seam jBPM: use annotation or pages.xml to get next task?
        gavin.king

        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?

          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

            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

              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?

                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?

                   

                  "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

                    (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

                       

                      "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?

                         

                        "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?

                          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?

                            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?


                              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

                                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?

                                   

                                  "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

                                    oic, sorry, I misread what you are doing.

                                    You should be able to wrap all this up on a page action - something like

                                    TaskFinder

                                    public 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