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 2010/02/08 18:00:00 UTC
svn commit: r907725 -
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
Author: cziegeler
Date: Mon Feb 8 17:00:00 2010
New Revision: 907725
URL: http://svn.apache.org/viewvc?rev=907725&view=rev
Log:
SLING-1358 : Number of parallel threads is wrongly calculated
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=907725&r1=907724&r2=907725&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Mon Feb 8 17:00:00 2010
@@ -170,7 +170,7 @@
private final Object backgroundLock = new Object();
/** Number of parallel jobs for the main queue. */
- private long parallelJobCount;
+ private volatile long parallelJobCount;
/** Number of jobs to load from the repository on startup in one go. */
private long maxLoadJobs;
@@ -749,14 +749,12 @@
process = true;
}
}
-
- } else {
- // check number of parallel jobs for main queue
- if ( jobQueue == null && this.parallelJobCount >= this.maximumParallelJobs ) {
- logger.debug("Rescheduling job {} - maximum parallel job count of {} reached!", info.event, this.maximumParallelJobs);
- process = false;
- wait = true;
- }
+ }
+ // check number of parallel jobs for main queue
+ if ( process && jobQueue == null && this.parallelJobCount >= this.maximumParallelJobs ) {
+ logger.debug("Rescheduling job {} - maximum parallel job count of {} reached!", info.event, this.maximumParallelJobs);
+ process = false;
+ wait = true;
}
if ( process ) {
boolean unlock = true;
@@ -999,7 +997,7 @@
logger.debug("Starting job {}", event);
boolean unlock = true;
try {
- if ( isMainQueue && parallelProcessing ) {
+ if ( isMainQueue ) {
this.parallelJobCount++;
}
final String nodePath = eventNode.getPath();
@@ -1028,7 +1026,7 @@
this.logger.error("Exception during job processing.", re);
} finally {
if ( unlock ) {
- if ( isMainQueue && parallelProcessing ) {
+ if ( isMainQueue ) {
this.parallelJobCount--;
}
if ( !parallelProcessing ) {
@@ -1350,11 +1348,11 @@
synchronized ( this.processingMap ) {
this.processingMap.put(jobTopic, Boolean.FALSE);
}
- } else {
- if ( job.getProperty(EventUtil.PROPERTY_JOB_QUEUE_NAME) == null ) {
- this.parallelJobCount--;
- }
}
+ if ( job.getProperty(EventUtil.PROPERTY_JOB_QUEUE_NAME) == null ) {
+ this.parallelJobCount--;
+ }
+
if ( unlock ) {
synchronized ( this.deletedJobs ) {
this.deletedJobs.add(eventNodePath);