cannot register transaction synchronization at processInstance.end
------------------------------------------------------------------
Key: JBSEAM-2251
URL:
http://jira.jboss.com/jira/browse/JBSEAM-2251
Project: JBoss Seam
Issue Type: Bug
Components: BPM
Affects Versions: 2.0.0.GA
Environment: Tomcat 6 with Jboss Embedded
Reporter: Jamie Cruise
If I have the JBPM scheduler service registered in jbpm.cfg.xml, I get the following error
whenever I complete any process:
org.jbpm.JbpmException: couldn't delete jobs for
'org.jbpm.graph.exe.ProcessInstance@1a282af'
at org.jbpm.db.JobSession.deleteJobsForProcessInstance(JobSession.java:211)
at
org.jbpm.scheduler.db.DbSchedulerService.deleteTimersByProcessInstance(DbSchedulerService.java:54)
at org.jbpm.graph.exe.ProcessInstance.end(ProcessInstance.java:329)
at org.jbpm.graph.exe.Token.notifyParentOfTokenEnd(Token.java:331)
at org.jbpm.graph.exe.Token.end(Token.java:303)
at org.jbpm.graph.exe.Token.end(Token.java:253)
at org.jbpm.graph.node.EndState.execute(EndState.java:59)
at org.jbpm.graph.def.Node.enter(Node.java:318)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
at org.jbpm.graph.exe.Token.signal(Token.java:194)
at org.jbpm.graph.exe.Token.signal(Token.java:139)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:476)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:390)
at org.jboss.seam.bpm.BusinessProcess.endTask(BusinessProcess.java:195)
at com.volantice.zone.action.TaskBean.endTask(TaskBean.java:266)
at com.volantice.zone.action.TaskBean.doEndTask(TaskBean.java:234)
at com.volantice.zone.action.TaskBean.endTask(TaskBean.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:56)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.bpm.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:49)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
at org.jboss.seam.util.Work.workInTransaction(Work.java:40)
at
org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
at
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
at
com.volantice.zone.action.TaskBean_$$_javassist_9.endTask(TaskBean_$$_javassist_9.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
at org.jboss.el.parser.AstBracketSuffix.invoke(AstBracketSuffix.java:63)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
at
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
at
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at com.sun.facelets.component.UIRepeat.broadcast(UIRepeat.java:574)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:184)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:162)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:350)
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.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:80)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.TransactionException: could not register synchronization
at
org.hibernate.transaction.JTATransaction.registerSynchronization(JTATransaction.java:309)
at org.jbpm.db.JobSession.deleteJobsForProcessInstance(JobSession.java:208)
... 93 more
Caused by: java.lang.NullPointerException
at
org.hibernate.transaction.JTATransaction.registerSynchronization(JTATransaction.java:306)
... 94 more
my jbpm.cfg.xml:
<jbpm-configuration>
<jbpm-context>
<service name="persistence">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<field name="isTransactionEnabled">
<false />
</field>
</bean>
</factory>
</service>
<service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
<service name="message"
factory="org.jbpm.msg.db.DbMessageServiceFactory" />
<service name="scheduler"
factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
<service name="logging"
factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
<service name="authentication"
factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory"
/>
</jbpm-context>
</jbpm-configuration>
my persistence.xml:
<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="xstreamlineDatabase">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/xstreamlineDatasource</jta-data-source>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.cache.provider_class"
value="org.hibernate.cache.HashtableCacheProvider" />
<property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
</properties>
</persistence-unit>
</persistence>
my hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">false</property>
<property
name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property
name="connection.datasource">java:/xstreamlineDatasource</property>
<property
name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property
name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
<property
name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hbm2ddl.auto">update</property>
<!--property
name="transaction.flush_before_completion">true</property-->
<!-- ############################################ -->
<!-- # mapping files with external dependencies # -->
<!-- ############################################ -->
<!-- following mapping file has a dependendy on -->
<!-- 'bsh-{version}.jar'. -->
<!-- uncomment this if you don't have bsh on your -->
<!-- classpath. you won't be able to use the -->
<!-- script element in process definition files -->
<mapping resource="org/jbpm/graph/action/Script.hbm.xml" />
<!-- following mapping files have a dependendy on -->
<!-- 'jbpm-identity.jar', mapping files -->
<!-- of the pluggable jbpm identity component. -->
<!-- Uncomment the following 3 lines if you -->
<!-- want to use the jBPM identity mgmgt -->
<!-- component. -->
<!-- identity mappings (begin) ===
<mapping resource="org/jbpm/identity/User.hbm.xml"/>
<mapping resource="org/jbpm/identity/Group.hbm.xml"/>
<mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
==== identity mappings (end) -->
<!-- following mapping files have a dependendy on -->
<!-- the JCR API -->
<!-- jcr mappings (begin) ===
<mapping
resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
==== jcr mappings (end) -->
<!-- ###################### -->
<!-- # jbpm mapping files # -->
<!-- ###################### -->
<!-- hql queries and type defs -->
<mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
<!-- graph.action mapping files -->
<mapping resource="org/jbpm/graph/action/MailAction.hbm.xml" />
<!-- graph.def mapping files -->
<mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml" />
<mapping resource="org/jbpm/graph/def/Node.hbm.xml" />
<mapping resource="org/jbpm/graph/def/Transition.hbm.xml" />
<mapping resource="org/jbpm/graph/def/Event.hbm.xml" />
<mapping resource="org/jbpm/graph/def/Action.hbm.xml" />
<mapping resource="org/jbpm/graph/def/SuperState.hbm.xml" />
<mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml" />
<mapping resource="org/jbpm/instantiation/Delegation.hbm.xml" />
<!-- graph.node mapping files -->
<mapping resource="org/jbpm/graph/node/StartState.hbm.xml" />
<mapping resource="org/jbpm/graph/node/EndState.hbm.xml" />
<mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml" />
<mapping resource="org/jbpm/graph/node/Decision.hbm.xml" />
<mapping resource="org/jbpm/graph/node/Fork.hbm.xml" />
<mapping resource="org/jbpm/graph/node/Join.hbm.xml" />
<mapping resource="org/jbpm/graph/node/MailNode.hbm.xml" />
<mapping resource="org/jbpm/graph/node/State.hbm.xml" />
<mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml" />
<!-- context.def mapping files -->
<mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml" />
<mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml" />
<!-- taskmgmt.def mapping files -->
<mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml" />
<!-- module.def mapping files -->
<mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml" />
<!-- bytes mapping files -->
<mapping resource="org/jbpm/bytes/ByteArray.hbm.xml" />
<!-- file.def mapping files -->
<mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml" />
<!-- scheduler.def mapping files -->
<mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml" />
<mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml" />
<!-- graph.exe mapping files -->
<mapping resource="org/jbpm/graph/exe/Comment.hbm.xml" />
<mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml" />
<mapping resource="org/jbpm/graph/exe/Token.hbm.xml" />
<mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml" />
<!-- module.exe mapping files -->
<mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml" />
<!-- context.exe mapping files -->
<mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml" />
<mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml" />
<mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml" />
<mapping
resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"
/>
<mapping
resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml" />
<mapping
resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml" />
<mapping
resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"
/>
<mapping
resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"
/>
<mapping
resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml" />
<mapping
resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml" />
<mapping
resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml" />
<!-- job mapping files -->
<mapping resource="org/jbpm/job/Job.hbm.xml" />
<mapping resource="org/jbpm/job/Timer.hbm.xml" />
<mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml" />
<mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml" />
<!-- taskmgmt.exe mapping files -->
<mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml" />
<!-- logging mapping files -->
<mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml" />
<mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml" />
<mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"
/>
<mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml" />
<mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml" />
<mapping resource="org/jbpm/context/log/VariableLog.hbm.xml" />
<mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml" />
<mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml" />
<mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml" />
<mapping
resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"
/>
<mapping
resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml" />
<mapping
resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml" />
<mapping
resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"
/>
<mapping
resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"
/>
<mapping
resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml" />
<mapping
resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml" />
<mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml" />
</session-factory>
</hibernate-configuration>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira