### Eclipse Workspace Patch 1.0 #P org.eclipse.core.tests.runtime Index: src/org/eclipse/core/tests/runtime/jobs/YieldTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/runtime/jobs/YieldTest.java,v retrieving revision 1.9 diff -u -r1.9 YieldTest.java --- src/org/eclipse/core/tests/runtime/jobs/YieldTest.java 19 Jul 2010 21:59:44 -0000 1.9 +++ src/org/eclipse/core/tests/runtime/jobs/YieldTest.java 8 Sep 2010 13:35:59 -0000 @@ -1021,22 +1021,22 @@ final int[] count = new int[1]; JobChangeAdapter a = new JobChangeAdapter() { public void running(org.eclipse.core.runtime.jobs.IJobChangeEvent event) { - if (event.getJob() == conflicting || event.getJob() == yieldA) - return; - count[0]++; + if (event.getJob() == conflicting) + count[0]++; } }; Job.getJobManager().addJobChangeListener(a); - - // start testing - - yieldA.schedule(); - b.waitForStatus(TestBarrier.STATUS_RUNNING); - conflicting.schedule(); - - waitForCompletion(yieldA); - waitForCompletion(conflicting); - assertEquals("While resuming from yieldRule, implicit Job should only run once", 0, count[0]); + try { + // start testing + yieldA.schedule(); + b.waitForStatus(TestBarrier.STATUS_RUNNING); + conflicting.schedule(); + waitForCompletion(yieldA); + waitForCompletion(conflicting); + assertEquals("While resuming from yieldRule, conflicting job should only run once", 1, count[0]); + } finally { + Job.getJobManager().removeJobChangeListener(a); + } } }