[jboss-svn-commits] JBL Code SVN: r27629 - labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jul 6 10:04:49 EDT 2009
Author: kevin.conner at jboss.com
Date: 2009-07-06 10:04:49 -0400 (Mon, 06 Jul 2009)
New Revision: 27629
Modified:
labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java
Log:
double check returned job before rescheduling: JBESB-2689
Modified: labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java 2009-07-06 13:58:24 UTC (rev 27628)
+++ labs/jbossesb/trunk/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java 2009-07-06 14:04:49 UTC (rev 27629)
@@ -107,29 +107,33 @@
if (jobSession != null)
{
final Set<Long> monitoredJobs = new HashSet<Long>() ;
+ final long now = System.currentTimeMillis() ;
for(int count = 0 ; count < maxRetryJobs ; count++)
{
final Job job = jobSession.getFirstDueJob(RETRY_EXECUTOR, monitoredJobs) ;
- if (job == null)
+ if ((job == null) || (job.getDueDate().getTime() > now))
{
break ;
}
monitoredJobs.add(Long.valueOf(job.getId())) ;
- job.setLockOwner(null) ;
- if (job instanceof Timer)
+ if (RETRY_EXECUTOR.equals(job.getLockOwner()))
{
- final Timer timer = (Timer)job ;
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Rescheduling timer " + timer.getId());
+ job.setLockOwner(null) ;
+ if (job instanceof Timer)
+ {
+ final Timer timer = (Timer)job ;
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Rescheduling timer " + timer.getId());
+ }
+ jbpmContext.getServices().getSchedulerService().createTimer(timer);
}
- jbpmContext.getServices().getSchedulerService().createTimer(timer);
- }
- else
- {
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Rescheduling job " + job.getId());
+ else
+ {
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Rescheduling job " + job.getId());
+ }
+ jbpmContext.getServices().getMessageService().send(job) ;
}
- jbpmContext.getServices().getMessageService().send(job) ;
}
}
}
More information about the jboss-svn-commits
mailing list