[jboss-svn-commits] JBL Code SVN: r27434 - labs/jbossesb/branches/JBESB_4_4_GA_CP/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
Thu Jul 2 07:45:42 EDT 2009
Author: kevin.conner at jboss.com
Date: 2009-07-02 07:45:42 -0400 (Thu, 02 Jul 2009)
New Revision: 27434
Modified:
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java
Log:
double check returned job before rescheduling: JBESB-2667
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java 2009-07-02 11:29:12 UTC (rev 27433)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/integration/msg/RetryExecutor.java 2009-07-02 11:45:42 UTC (rev 27434)
@@ -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