[JBoss JIRA] Created: (JBPM-1167) JMS message service fails under WebSphere 6.1
by Alejandro Guizar (JIRA)
JMS message service fails under WebSphere 6.1
---------------------------------------------
Key: JBPM-1167
URL: http://jira.jboss.com/jira/browse/JBPM-1167
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.2
Reporter: Alejandro Guizar
Assigned To: Tom Baeyens
Fix For: jBPM jPDL 3.2.3, jBPM 3.2.2 SOA 1
The application is using jBPM under WebSphere 6.1 and using jbpm-enterprise.jar that ships with JBPM 3.2.2 for asynchronous continuation. When JBPM hits an async node, the JmsMessageServiceImpl class gets invoked to send a JMS message, resulting in this exception:
Note: the WebSphere MQ messaging provider is being used.
java.lang.UnsupportedOperationException: MQJMS1014: operation invalid for identified producer
at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1184)
at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:3132)
at com.ibm.ejs.jms.JMSMessageProducerHandle.send(JMSMessageProducerHandle.java :1014)
at org.jbpm.msg.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:77)
at org.jbpm.graph.def.Node.enter(Node.java:316)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6 4)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitial izer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$8c4161a1.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:394)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6 4)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitial izer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$8c4161a1.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:195)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at gov.ssa.ejb.jbpm.LaunchJBPMBean.doIt(LaunchJBPMBean.java:129)
at gov.ssa.ejb.jbpm.EJSLocalStatelessLaunchJBPM_6a5e7e51.doIt(EJSLocalStateles sLaunchJBPM_6a5e7e51.java:23)
at gov.ssa.ejb.jms.mdb.JBPMLaunchMDBBean.onMessage(JBPMLaunchMDBBean.java:103)
at com.ibm.ejs.jms.listener.MDBWrapper$PriviledgedOnMessage.run(MDBWrapper.jav a:302)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.jav a:63)
at com.ibm.ejs.jms.listener.MDBWrapper.callOnMessage(MDBWrapper.java:271)
at com.ibm.ejs.jms.listener.MDBWrapper.onMessage(MDBWrapper.java:240)
at com.ibm.mq.jms.MQSession.run(MQSession.java:1682)
at com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:967)
at com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSe ssion.java:891)
at com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:656)
at com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:623)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:6 4)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDisp atcher.java:37)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:96)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:132)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:481)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
Looking up the error code at the top of the stack trace yields:
MQJMS1014 Operation invalid for identified producer.
Explanation: The QueueSender.send method has been performed on an identified QueueSender, which contradicts the JMS specification
User Response: See QueueSender and the JMS specification (http://java.sun.com/products/jms/docs.html) for further information.
--
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
16 years, 7 months
[JBoss JIRA] Created: (JBPM-1143) Decision Nodes not working, exception says decision selected non existing transition - reference SOA-450
by Jeff DeLong (JIRA)
Decision Nodes not working, exception says decision selected non existing transition - reference SOA-450
--------------------------------------------------------------------------------------------------------
Key: JBPM-1143
URL: http://jira.jboss.com/jira/browse/JBPM-1143
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.2
Environment: T60 laptop running RHEL 5, Java 1.5, SOA Platform 4.2 CR3
Reporter: Jeff DeLong
Assigned To: Tom Baeyens
I have defined a process definition with the following decision node where Account is a POJO. I can see that the Account as a jBPM variable in the jBPM Admin Console.
<decision name="Sufficient Funds in Account?" expression="#{account.balance > tollTransaction.toll} ">
<transition to="Post Toll Transaction to Account" name="true"></transition>
<transition to="Replenish Account" name="false"></transition>
</decision>
When I execute the process, I get the following errors:
15:55:39,123 ERROR [GraphElement] action threw exception: decision 'Sufficient Funds in Account?' selected non existing transition 'true '
org.jbpm.JbpmException: decision 'Sufficient Funds in Account?' selected non existing transition 'true '
at org.jbpm.graph.node.Decision.execute(Decision.java:102)
at org.jbpm.graph.def.Node.enter(Node.java:319)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$b7f2fc0f.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:394)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$b7f2fc0f.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:195)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$e74c698b.signal(<generated>)
at org.jbpm.command.SignalCommand.execute(SignalCommand.java:91)
at org.jboss.soa.esb.services.jbpm.cmd.AsyncProcessSignal$AsyncSignalAction.execute(AsyncProcessSignal.java:287)
at org.jbpm.graph.def.Action.execute(Action.java:122)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$b15cf56b.execute(<generated>)
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$b7f2fc0f.executeAction(<generated>)
at org.jbpm.job.ExecuteActionJob.execute(ExecuteActionJob.java:32)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.job.Job$$EnhancerByCGLIB$$27ab04c8.execute(<generated>)
at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
I then tried the following (simpler) expression, and got a similar result:
#{account.balance > 100}
16:07:28,807 ERROR [GraphElement] action threw exception: decision 'Sufficient Funds in Account?' selected non existing transition 'false '
org.jbpm.JbpmException: decision 'Sufficient Funds in Account?' selected non existing transition 'false '
--
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
16 years, 7 months
[JBoss JIRA] Created: (JBPM-1175) CLONE -Wrong transition taken after ending a task with the taskform button
by Martin Loiacono (JIRA)
CLONE -Wrong transition taken after ending a task with the taskform button
--------------------------------------------------------------------------
Key: JBPM-1175
URL: http://jira.jboss.com/jira/browse/JBPM-1175
Project: JBoss jBPM
Issue Type: Bug
Components: Web Interface
Affects Versions: jBPM jPDL 3.2.1
Reporter: Martin Loiacono
Assigned To: Tom Baeyens
Priority: Critical
Fix For: jBPM jPDL 3.2.2
This behavior can be reproduced with the default suite by following these steps on the deployed "websale" demo process:
1. Login: admin/admin
2. Click 'Processes' (upper navigation)
3. Process ID 1, websale, click: Examine
4. Left navigation, click: Start a new instance
5. Task 'Create new web sale order' is displayed, click 'Examine'
6. Form for web sale order vars displayed, fill out, click 'Evaluate'
7. Click: Tasks (upper navigation)
8. Task 'Evaluate web order', click Actions: 'Examine'
9. Form for web sale order with filled vars is displayed, click 'More Info Needed'
10. Inspect the process instance via the Instance Link/Process Image
--> the token has incorrectly moved down the 'ok' transition
--
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
16 years, 7 months
[JBoss JIRA] Created: (JBPM-1112) <mail> action not allowed in <timer>
by Tong Zheng (JIRA)
<mail> action not allowed in <timer>
------------------------------------
Key: JBPM-1112
URL: http://jira.jboss.com/jira/browse/JBPM-1112
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2.2
Environment: JDK 1.5, jPDL 3.2.2
Reporter: Tong Zheng
Assigned To: Tom Baeyens
It's mentioned in the doc that "Anywhere you are allowed to specify actions in the process, you can specify a mail action". But mail action doesn't work inside timer.
sample code:
<state name="resolve-issue">
<event type="node-enter">
<mail name="notification"
to="user1@localhost"
template="notification">
</mail>
</event>
<timer name="timer-reminder-1" duedate="5 seconds">
<mail name="reminder-1"
to="user1@localhost"
template="reminder">
</mail>
</timer>
<transition to="end"></transition>
</state>
Got exception while deploying the definition:
org.jbpm.jpdl.JpdlException: [[ERROR] line 20: cvc-complex-type.2.4.a: Invalid content was found starting with element 'mail'. One of '{"urn:jbpm.org:jpdl-3.2":action, "urn:jbpm.org:jpdl-3.2":script}' is expected.]
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:172)
at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:180)
at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:161)
at org.albertahealth.waitlist.workflow.app.DeployProcess.deployProcessFromXml(DeployProcess.java:61)
at com.albertahealth.waitlist.workflow.app.DeployEWProcessTest.testDeployProcessDefinition(DeployEWProcessTest.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
--
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
16 years, 7 months
[JBoss JIRA] Commented: (JBPM-1024) Serializable variables are not being deserialized when retrieved from process
by Bernd Ruecker (JIRA)
[ http://jira.jboss.com/jira/browse/JBPM-1024?page=comments#action_12414817 ]
Bernd Ruecker commented on JBPM-1024:
-------------------------------------
Yeah, I can reproduce the error on the web-console i the class is not on the classpath but just deployed in the jbpm tables via the process archive. The error occurs here:
public Object revert(Object o) {
ByteArray byteArray = (ByteArray) o;
try {
ByteArrayInputStream bais = new ByteArrayInputStream(byteArray.getBytes());
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
throw new JbpmException("couldn't deserialize object", e);
}
}
Here the Stacktrace:
java.lang.ClassNotFoundException: org.acme.insurance.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jbpm.context.exe.converter.SerializableToByteArrayConverter.revert(SerializableToByteArrayConverter.java:64)
at org.jbpm.context.exe.VariableInstance.getValue(VariableInstance.java:147)
at org.jbpm.context.exe.VariableContainer.getVariablesLocally(VariableContainer.java:125)
at org.jbpm.context.exe.VariableContainer.getVariables(VariableContainer.java:109)
at org.jbpm.jsf.core.action.GetVariableMapActionListener.handleAction(GetVariableMapActionListener.java:49)
at org.jbpm.jsf.core.impl.JbpmActionListenerWrapper.processAction(JbpmActionListenerWrapper.java:82)
...
So the problem seems to occur if you deploy your business object classes only with jbpm. This should be not the normal case, the business classes should be deployed in other ways in my eyes.
But I am thinking if it would be nice to fix it. That would be possible by using a classloader like the Delegation does, but in the Converter, we don't know the process definition... Hmm, any thought on that?
Here how the classloader is retrieved in the Delegation:
// find the classloader to use
ClassLoader classLoader = ClassLoaderUtil.getProcessClassLoader(processDefinition);
> Serializable variables are not being deserialized when retrieved from process
> -----------------------------------------------------------------------------
>
> Key: JBPM-1024
> URL: http://jira.jboss.com/jira/browse/JBPM-1024
> Project: JBoss jBPM
> Issue Type: Bug
> Components: Core Engine
> Affects Versions: jBPM 3.1.4
> Reporter: thilker
> Assigned To: Tom Baeyens
>
> Storing an serializable object in a process should write an "R" in the column "converter" in table JBPM_VARIABLEINSTANCE.
> But the value of the field is "null".
> The cause:
> The converter ID is retrieved in class org.jbpm.db.hibernate.Converter at line 63.
> For the case of the SerializableToByteArrayConverter the ID is "null".
> Regards,
> Thorsten
--
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
16 years, 7 months
[JBoss JIRA] Updated: (JBPM-1072) Concurrent JobExecutors can process the same job in parallel
by Alejandro Guizar (JIRA)
[ http://jira.jboss.com/jira/browse/JBPM-1072?page=all ]
Alejandro Guizar updated JBPM-1072:
-----------------------------------
Fix Version/s: jBPM jPDL 3.2.3
> Concurrent JobExecutors can process the same job in parallel
> ------------------------------------------------------------
>
> Key: JBPM-1072
> URL: http://jira.jboss.com/jira/browse/JBPM-1072
> Project: JBoss jBPM
> Issue Type: Bug
> Components: Core Engine
> Affects Versions: jBPM jPDL 3.2.2
> Environment: Linux 2.6.21-1.3228.fc7 #1 SMP Tue Jun 12 14:56:37 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> MySQL 5.0.22
> Reporter: Jiri Pechanec
> Assigned To: Alejandro Guizar
> Fix For: jBPM jPDL 3.2.3
>
> Attachments: expl.tar.gz
>
>
> Attached is a simple test case that
> 1) Deploys process definition with two nodes
> 2) Starts 20 executor threads
> 2) Starts the process instance that will asynchronously execute action on the second node
> 4) The second node writes a record to the database
> The test case needs to be executed multiple times to see the incorrect behaviour.
> This is an example of run output
> Isol 8
> Action 1
> Success 0
> Failure 0
> Action 2
> Action 2 1
> Action 2
> Action 2 1
> Action 2
> Action 2 1
> Action 2
> Action 2 1
> Action 2
> Action 2 1
> Action 2
> Action 2 1
> Action 2
> Action 2
> Action 2 1
> Action 2 1
> Action 2
> Action 2 1
> Explanation of the outcome
> 9 job executors successfully executed the node action (same job) including database operation. All database operations were comitted (9 new records were created)
--
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
16 years, 7 months
[JBoss JIRA] Commented: (JBPM-575) delete Timer fails in Scheduler
by Ronald van Kuijk (JIRA)
[ http://jira.jboss.com/jira/browse/JBPM-575?page=comments#action_12414596 ]
Ronald van Kuijk commented on JBPM-575:
---------------------------------------
Can somone confirm this is still an issue with 3.2 or better yet, make a unit test that demonstrates the problem....
> delete Timer fails in Scheduler
> -------------------------------
>
> Key: JBPM-575
> URL: http://jira.jboss.com/jira/browse/JBPM-575
> Project: JBoss jBPM
> Issue Type: Bug
> Components: Core Engine
> Affects Versions: jBPM 3.1
> Environment: jbpm 3.1, PostgreSQL / MS SQL Server / DB/2, jboss 4.0.4 RC1
> Reporter: maplat
> Assigned To: Tom Baeyens
> Original Estimate: 10 minutes
> Remaining Estimate: 10 minutes
>
> if a timer is scheduled, which execution leeds to the process end, the timer can not be deleted,
> because at the end of the process instance all timers are canceld and after this the scheduler also tries
> to delete the timer
> I did a change on SchedulerSession.cancelTimersForProcessInstance
> (the commented code ist the original one, I also added a new named query to hibernate.queries.hbm.xml)
> The change does not directly delete the timers from database, it calls the deleteTimer methode, which causes the
> timers beeing deleted to be added to the deletedTimers collection. If another delete is done from the scheduler
> it is ignored, because in the delete timer methode the deletedTImers collection is checked.
> public void cancelTimersForProcessInstance(ProcessInstance processInstance) {
> try {
> /*Query query = session.getNamedQuery("SchedulerSession.deleteTimersForProcessInstance");
> query.setEntity("processInstance", processInstance);
> query.executeUpdate();*/
> Query query = session.getNamedQuery("SchedulerSession.findTimersForProcessInstance");
> query.setEntity("processInstance", processInstance);
> Iterator iter = query.list().iterator();
> while(iter.hasNext()) {
> deleteTimer((Timer) iter.next());
> }
> } catch (Exception e) {
> log.error(e);
> jbpmSession.handleException();
> throw new JbpmException("couldn't delete timers for process instance '"+processInstance+"'", e);
> }
> }
> -- new named query
> <query name="SchedulerSession.findTimersForProcessInstance">
> <![CDATA[
> select t from org.jbpm.scheduler.exe.Timer t
> where t.processInstance = :processInstance
> ]]>
> </query>
> I'm not sure if the deleteTimersForProcessInstance query is used somewhere else, so I left it.
> If this approch is right, someone of the developers maybe can fix it in the code, I do not have access to it
--
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
16 years, 7 months