Return-Path: Delivered-To: apmail-sling-commits-archive@www.apache.org Received: (qmail 35011 invoked from network); 8 Feb 2010 17:00:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 8 Feb 2010 17:00:24 -0000 Received: (qmail 64104 invoked by uid 500); 8 Feb 2010 17:00:24 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 64047 invoked by uid 500); 8 Feb 2010 17:00:24 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 64038 invoked by uid 99); 8 Feb 2010 17:00:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Feb 2010 17:00:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Feb 2010 17:00:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B5A072388A66; Mon, 8 Feb 2010 17:00:00 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r907725 - /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Date: Mon, 08 Feb 2010 17:00:00 -0000 To: commits@sling.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100208170000.B5A072388A66@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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);