Author: cziegeler Date: Wed Oct 27 07:19:46 2010 New Revision: 1027843 URL: http://svn.apache.org/viewvc?rev=1027843&view=rev Log: SLING-1854 : IgnoreQueueTest failure on Windows Vista
Added: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java (with props) Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/AbstractJobEventHandlerTest.java sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/AbstractJobEventHandlerTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/AbstractJobEventHandlerTest.java?rev=1027843&r1=1027842&r2=1027843&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/AbstractJobEventHandlerTest.java (original) +++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/AbstractJobEventHandlerTest.java Wed Oct 27 07:19:46 2010 @@ -49,7 +49,7 @@ public abstract class AbstractJobEventHa protected void activate(final EventAdmin ea) throws Throwable { super.activate(ea); - this.jobManager = new DefaultJobManager(); + this.jobManager = new ExtendedJobManager(); this.configManager = this.createQueueConfigManager(); PrivateAccessor.setField(this.jobManager, "configManager", this.configManager); PrivateAccessor.setField(this.jobManager, "environment", this.environment); Added: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java?rev=1027843&view=auto ============================================================================== --- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java (added) +++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java Wed Oct 27 07:19:46 2010 @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.event.impl.jobs; + +import java.util.concurrent.atomic.AtomicInteger; + +public class ExtendedJobManager extends DefaultJobManager { + + private final AtomicInteger processed = new AtomicInteger(); + + private final AtomicInteger added = new AtomicInteger(); + + @Override + public void process(JobEvent event) { + super.process(event); + this.processed.incrementAndGet(); + } + + @Override + public void notifyAddJob(JobEvent job) { + super.notifyAddJob(job); + this.added.incrementAndGet(); + } + + public int getProcessed() { + return processed.intValue(); + } + + public int getAdded() { + return added.intValue(); + } +} Propchange: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java ------------------------------------------------------------------------------ svn:keywords = author date id revision rev url Propchange: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java?rev=1027843&r1=1027842&r2=1027843&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java (original) +++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java Wed Oct 27 07:19:46 2010 @@ -102,7 +102,7 @@ public class IgnoreQueueTest extends Abs return new Event(JobUtil.TOPIC_JOB, props); } - @org.junit.Test public void testDroppingQueue() throws Exception { + @org.junit.Test(timeout=30000) public void testIgnoreQueue() throws Exception { final PersistenceHandler jeh = this.handler; // set new event admin @@ -124,8 +124,12 @@ public class IgnoreQueueTest extends Abs for(int i = 0; i < NUM_JOBS; i++ ) { jeh.handleEvent(getJobEvent()); } - // we wait a little bit - Thread.sleep(400); + + // we wait until NUM_JOBS have been processed by the JobManager + while ( ((ExtendedJobManager)this.jobManager).getAdded() < NUM_JOBS ) { + Thread.sleep(400); + } + // no jobs queued, none processed but available assertEquals(0, this.jobManager.getStatistics().getNumberOfQueuedJobs()); assertEquals(0, this.jobManager.getStatistics().getNumberOfProcessedJobs());