[Messaging, JMS & JBossMQ] - Message visible before transaction commit
by martiro
Hi everybody
This is my problem: I have 2 Message Driven Beans (let's call them MDB1 and MDB2). MDB1 performs the step1 and MDB2 performs the step2
MDB1 receive messages from a queue, mekes elaboration on it, and, if everything works fine, it put the message in a queue (that is the destination of MDB2) and it completes the operation updating a database to say that the message has completed the step 1 succesfully.
My problem is the following: as soon the method sender.send(message) is called the MDB2 is activated, even if the transaction in MDB1 is not completed. You can see it very well debugging step-by-step. This is a BIG problem.
I've done some test case. I report the worst of them: I've tried to throw an Exception after the DB update (that is: send(message); uptate database; throw exception ). The result is te following the database update rollbacks succesfully but at that time the message has already completed the elaboration passing through the followin MDB.
Is this a bug of JMS implementation or is there a configuration parameter to set up this behavior?
Thanks in advance for every help you'll give me.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057597#4057597
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057597
18Â years, 10Â months
[JCA/JBoss] - Discution about "Closing a connection for you" and Statefull
by buggsbunny101
Hello all,
I want to discuss about the "Closing a connection for you" and Stateful bean.
The ability to control if connection is not close is really useful, and should be keep since human write code (and can do mistake).
But when using a container managed transaction in a stateful session bean, this feature is a problem.
Effectively, if the treatment of the current bean need to be rolled back after many treatment, it's not possible since the connection have been closed after each treatment. We loose the interest of stateful bean!
I don't know how "Closing a connection for you" is managed and if it's really difficult to adapt it, but it can be useful to keep an association between the stateful bean and it's connection. So until the bean is open, the connection is keeped. At timeout, the connection is closed. Another way, certainly simple is to close connection when ejbClose is called! But closing the connection in a bean managed transaction context is a problem, no?
This will allow developper to use this feature and be informed that they forget to close connection. This also will ensure the safety of the server!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057596#4057596
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057596
18Â years, 10Â months
[JBoss Seam] - pageflow and exception problem
by leezard
Hi again,
I've quite simple pageflow:
| <pageflow-definition
| xmlns="http://jboss.com/products/seam/pageflow"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-1.2.xsd"
| name="transactionRevoke">
|
| <start-page name="startRevoke" view-id="/setRevokeDetails.jspx">
| <redirect/>
| <transition name="cancel" to="revokeCancelled"/>
| <transition name="process" to="checkRevokeResult">
| <action expression="#{processTransactionRevoke.revokeTransaction}"/>
| </transition>
| </start-page>
|
| <decision name="checkRevokeResult" expression="#{processTransactionRevoke.revokeSuccesful}">
| <transition name="true" to="revokeResult"/>
| <transition name="false" to="forceRevoke"/>
| </decision>
|
| <page name="forceRevoke" view-id="/forceRevoke.jspx">
| <redirect/>
| <transition name="process" to="checkRevokeResult">
| <action expression="#{processTransactionRevoke.revokeTransaction}"/>
| </transition>
| <transition name="cancel" to="revokeCancelled"/>
| </page>
|
| <page name="revokeResult" view-id="/revokeResult.jspx">
| <redirect/>
| <end-conversation/>
| </page>
|
| <page name="revokeCancelled" view-id="/revokeCancelled.jspx">
| <redirect/>
| <end-conversation/>
| </page>
|
| </pageflow-definition>
|
and I have exception declaration in pages.xml
| <exception>
| <end-conversation/>
| <redirect view-id="/generalError.jspx">
| <message>#{messages['error.tr.failed']}</message>
| </redirect>
| </exception>
|
Now when I got RuntimeException during processTransactionRevoke.revokeTransaction() method I get veeeery long stacktrace and browser error saying
The page isn't redirecting properly
Here is my stacktrace:
| 10:28:11,587 ERROR [ExceptionFilter] uncaught exception
| javax.servlet.ServletException
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
| 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.Transition.take(Transition.java:106)
| at org.jbpm.graph.def.Node.leave(Node.java:383)
| at org.jbpm.graph.exe.Token.signal(Token.java:178)
| at org.jbpm.graph.exe.Token.signal(Token.java:141)
| at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:229)
| at org.jboss.seam.pageflow.PageflowHelper.signal(PageflowHelper.java:47)
| at org.jboss.seam.core.Pageflow.navigate(Pageflow.java:298)
| at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigationHandler.java:30)
| at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:119)
| at javax.faces.component.UICommand.broadcast(UICommand.java:383)
| at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
| at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
| at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| ... 30 more
| Caused by: org.jbpm.JbpmException: couldn't evaluate expression '#{processTransactionRevoke.revokeTransaction}'
| 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)
| ... 49 more
| Caused by: javax.ejb.EJBTransactionRolledbackException
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
| 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:77)
| at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
| 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.dynamicInvoke(StatelessContainer.java:278)
| at org.jboss.ejb3.remoting.IsLocalInterceptor.invokeLocal(IsLocalInterceptor.java:79)
| at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:70)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:103)
| at $Proxy352.revokeTransaction(Unknown Source)
| at com.nsn.erefill.tr.gui.beans.ProcessTransactionRevokeBean.revokeTransaction(ProcessTransactionRevokeBean.java:65)
| 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:597)
| 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.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:37)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| at org.jboss.seam.interceptors.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:63)
| 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:597)
| 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.jav
| 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.invokeInOurTx(TxPolicy.java:79)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
| 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:83)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
| at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
| 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:204)
| at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:100)
| at $Proxy353.revokeTransaction(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:597)
| 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.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
| at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
| at org.javassist.tmp.java.lang.Object_$$_javassist_20.revokeTransaction(Object_$$_javassist_20.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:597)
| 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)
| ... 51 more
| Caused by: java.lang.NullPointerException
| at org.jboss.seam.intercept.JavaBeanInterceptor.markDirty(JavaBeanInterceptor.java:94)
| at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:79)
| at com.nsn.erefill.tr.TransactionRevokeRequest_$$_javassist_6.getParentTransaction(TransactionRevokeRequest_$$_javassist_6.java)
| at com.nsn.erefill.tr.bean.TransactionRevokeServiceBean.revokeTransaction(TransactionRevokeServiceBean.java:67)
| 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:597)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
| 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)
| ... 144 more
| 10:28:11,665 ERROR [ExceptionFilter] exception root cause
| 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.Transition.take(Transition.java:106)
| at org.jbpm.graph.def.Node.leave(Node.java:383)
| at org.jbpm.graph.exe.Token.signal(Token.java:178)
| at org.jbpm.graph.exe.Token.signal(Token.java:141)
| at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:229)
| at org.jboss.seam.pageflow.PageflowHelper.signal(PageflowHelper.java:47)
| at org.jboss.seam.core.Pageflow.navigate(Pageflow.java:298)
| at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigationHandler.java:30)
| at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:119)
| at javax.faces.component.UICommand.broadcast(UICommand.java:383)
| at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
| at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
| at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
| at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
| at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:60)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
| at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
| at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
| Caused by: org.jbpm.JbpmException: couldn't evaluate expression '#{processTransactionRevoke.revokeTransaction}'
| 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)
|
What's wrong?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057594#4057594
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057594
18Â years, 10Â months
[JBoss Seam] - jBPM and Seam Events question
by xinhua
hello all,
i use quartz to trigger a process and in a process action i want to raise an seam event. But i failed to do that. The exception is something about trasaction :
10:37:19,918 ERROR [DbPersistenceService] hibernate flush failed
| org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#1
| ]
| at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1765)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407)
| at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
| at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.jbpm.persistence.db.DbPersistenceService.flushSession(DbPersistenceService.java:239)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:180)
| at org.jbpm.svc.Services.close(Services.java:211)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jboss.seam.core.ManagedJbpmContext.destroy(ManagedJbpmContext.java:106)
| 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:21)
| at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:124)
| at org.jboss.seam.Component.callComponentMethod(Component.java:1904)
| at org.jboss.seam.Component.callDestroyMethod(Component.java:1835)
| at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:232)
| at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:484)
| at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:81)
| at org.jboss.seam.core.AbstractDispatcher$Asynchronous.execute(AbstractDispatcher.java:81)
| at org.jboss.seam.core.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:242)
| at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
| at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
| 10:37:20,230 ERROR [DbPersistenceService] hibernate rollback failed
| java.lang.NullPointerException
| at org.jbpm.persistence.db.DbPersistenceService.rollback(DbPersistenceService.java:271)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:182)
| at org.jbpm.svc.Services.close(Services.java:211)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jboss.seam.core.ManagedJbpmContext.destroy(ManagedJbpmContext.java:106)
| 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:21)
| at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:124)
| at org.jboss.seam.Component.callComponentMethod(Component.java:1904)
| at org.jboss.seam.Component.callDestroyMethod(Component.java:1835)
| at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:232)
| at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:484)
| at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:81)
| at org.jboss.seam.core.AbstractDispatcher$Asynchronous.execute(AbstractDispatcher.java:81)
| at org.jboss.seam.core.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:242)
| at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
| at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
| 10:37:20,558 ERROR [Services] problem closing service 'persistence'
| org.jbpm.persistence.JbpmPersistenceException: hibernate flush failed
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:185)
| at org.jbpm.svc.Services.close(Services.java:211)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jboss.seam.core.ManagedJbpmContext.destroy(ManagedJbpmContext.java:106)
| 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:21)
| at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:124)
| at org.jboss.seam.Component.callComponentMethod(Component.java:1904)
| at org.jboss.seam.Component.callDestroyMethod(Component.java:1835)
| at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:232)
| at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:484)
| at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:81)
| at org.jboss.seam.core.AbstractDispatcher$Asynchronous.execute(AbstractDispatcher.java:81)
| at org.jboss.seam.core.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:242)
| at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
| at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
i donot know what happened. Can anyone help me?
thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057593#4057593
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057593
18Â years, 10Â months
[JBoss jBPM] - Re: Why my condtion doesn't get evaluated?
by sparklehorse
I've tried without luck also a simplified scenario with all possible conditon syntax
| <decision name="CheckState">
| <transition name="tr2" to="node2">
| <condition>status=='DO NOT GO HERE'</condition>
| </transition>
| <transition name="tr3" to="node3">
| <condition>status=='UNDEF'</condition>
| </transition>
| <transition name="tr0" to="node0">
| <condition>status eq 'UNDEF'</condition>
| </transition>
| <transition name="tr1" to="node1">
| <condition>#{status == 'UNDEF'}</condition>
| </transition>
| <transition name="tr4" to="node4">
| <condition>#{contextInstance.variables['status'] == 'UNDEF'}</condition>
| </transition>
| <transition name="tr5" to="node5">
| <condition>#{contextInstance.variable.status == 'UNDEF'}</condition>
| </transition>
| <transition name="tr6" to="node6">
| <condition>#{contextInstance.variable.status eq 'UNDEF'}</condition>
| </transition>
| <transition name="tr7" to="node7">
| <condition>status -ùà -è+òl0'''00ì' 'UNDEF'</condition>
| </transition>
|
| </decision>
|
having set a status var to UNDEF
The jbpm log says
2007-06-26 09:59:08,649 DEBUG [] update variable 'status' in 'TokenVariableMap159640d' to value 'UNDEF'
2007-06-26 09:59:08,667 DEBUG [] event 'before-signal' on 'State(RequestedState)' for 'Token(/)'
2007-06-26 09:59:08,710 DEBUG [] event 'node-leave' on 'State(RequestedState)' for 'Token(/)'
2007-06-26 09:59:08,710 DEBUG [] event 'transition' on 'Transition()' for 'Token(/)'
2007-06-26 09:59:08,732 DEBUG [] event 'node-enter' on 'Decision(CheckState)' for 'Token(/)'
2007-06-26 09:59:08,813 DEBUG [] decision didn't select transition, taking default Transition(tr2)
2007-06-26 09:59:08,813 DEBUG [] decision CheckState is taking 'Transition(tr2)'
So it seems that my variable status is set to undef
But i always get transition 2
Is there a way to debug the condition code that decide to get the default
transition?
thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057584#4057584
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057584
18Â years, 10Â months
[JBoss Seam] - Re: UnitTesting and jBPM pageflow
by KnisterPeter
String id = new NonFacesRequest("/public/register.xhtml") {
|
| @Override
| protected void renderResponse() throws Exception {
| Contexts.getSessionContext().set("person", new Person());
| invokeMethod("#{register.begin}"); // <-- This is my pageflow start method annoted with @Begin(...)
| Pageflow pageflow = Pageflow.instance();
| assertEquals("register", pageflow.getNode().getName());
| assertTrue(isLongRunningConversation());
| assertEquals("/public/register.xhtml", getRenderedViewId());
| }
|
| }.run();
|
| ... next FacesRequest...
|
| @Override
| protected void invokeApplication() throws Exception {
| Pageflow pageflow = Pageflow.instance();
| pageflow.navigate(getFacesContext(), "next");
| assertEquals("confirm", pageflow.getNode().getName());
| }
|
|
|
As you can see, I'll never start the pageflow directly. I'm using the annotations to start Converstation and seam automatically start my pageflow.
As you further can see in subsequent requests I'll to the transition from node to node with calling pageflow.navigate(...) with my transition name I want to trigger.
I hope this does help you.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4057583#4057583
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4057583
18Â years, 10Â months