You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/04/07 13:48:24 UTC
svn commit: r1671818 - in
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs:
JobHandler.java JobManagerImpl.java queues/JobQueueImpl.java
Author: cziegeler
Date: Tue Apr 7 11:48:23 2015
New Revision: 1671818
URL: http://svn.apache.org/r1671818
Log:
SLING-4581 : Job notifications should only be sent out after the job resource has been updated
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java?rev=1671818&r1=1671817&r2=1671818&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobHandler.java Tue Apr 7 11:48:23 2015
@@ -113,7 +113,7 @@ public class JobHandler {
*/
public void finished(final Job.JobState state,
final boolean keepJobInHistory,
- final long duration) {
+ final Long duration) {
final boolean isSuccess = (state == Job.JobState.SUCCEEDED);
final ResourceResolver resolver = this.configuration.createResourceResolver();
try {
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1671818&r1=1671817&r2=1671818&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Tue Apr 7 11:48:23 2015
@@ -348,7 +348,7 @@ public class JobManagerImpl
}
} else {
final JobHandler jh = new JobHandler(job, null, this.configuration);
- jh.finished(Job.JobState.DROPPED, true, -1);
+ jh.finished(Job.JobState.DROPPED, true, null);
}
}
} else {
@@ -864,7 +864,7 @@ public class JobManagerImpl
if ( forward && !stopped ) {
// mark the job as stopped
final JobHandler jh = new JobHandler(job, null, this.configuration);
- jh.finished(JobState.STOPPED, true, -1);
+ jh.finished(JobState.STOPPED, true, null);
}
}
}
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java?rev=1671818&r1=1671817&r2=1671818&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java Tue Apr 7 11:48:23 2015
@@ -503,8 +503,10 @@ public class JobQueueImpl
private static final class RescheduleInfo {
public boolean reschedule = false;
+ // processing time is only set of state is SUCCEEDED
public long processingTime;
public Job.JobState state;
+ public String notificationTopic;
}
private RescheduleInfo handleReschedule(final JobHandler handler, final Job.JobState resultState) {
@@ -516,7 +518,7 @@ public class JobQueueImpl
this.logger.debug("Finished job {}", Utility.toString(handler.getJob()));
}
info.processingTime = System.currentTimeMillis() - handler.started;
- NotificationUtility.sendNotification(this.services.eventAdmin, NotificationConstants.TOPIC_JOB_FINISHED, handler.getJob(), info.processingTime);
+ info.notificationTopic = NotificationConstants.TOPIC_JOB_FINISHED;
break;
case QUEUED : // check if we exceeded the number of retries
final int retries = (Integer) handler.getJob().getProperty(Job.PROPERTY_JOB_RETRIES);
@@ -527,21 +529,21 @@ public class JobQueueImpl
if ( this.logger.isDebugEnabled() ) {
this.logger.debug("Cancelled job {}", Utility.toString(handler.getJob()));
}
- NotificationUtility.sendNotification(this.services.eventAdmin, NotificationConstants.TOPIC_JOB_CANCELLED, handler.getJob(), null);
+ info.notificationTopic = NotificationConstants.TOPIC_JOB_CANCELLED;
} else {
info.reschedule = true;
handler.getJob().retry();
if ( this.logger.isDebugEnabled() ) {
this.logger.debug("Failed job {}", Utility.toString(handler.getJob()));
}
- NotificationUtility.sendNotification(this.services.eventAdmin, NotificationConstants.TOPIC_JOB_FAILED, handler.getJob(), null);
+ info.notificationTopic = NotificationConstants.TOPIC_JOB_FAILED;
}
break;
default : // consumer cancelled the job (STOPPED, GIVEN_UP, ERROR)
if ( this.logger.isDebugEnabled() ) {
this.logger.debug("Cancelled job {}", Utility.toString(handler.getJob()));
}
- NotificationUtility.sendNotification(this.services.eventAdmin, NotificationConstants.TOPIC_JOB_CANCELLED, handler.getJob(), null);
+ info.notificationTopic = NotificationConstants.TOPIC_JOB_CANCELLED;
break;
}
@@ -586,6 +588,7 @@ public class JobQueueImpl
} else {
this.reschedule(handler);
}
+ NotificationUtility.sendNotification(this.services.eventAdmin, rescheduleInfo.notificationTopic, handler.getJob(), rescheduleInfo.processingTime);
return rescheduleInfo.reschedule;
}