Bug 505959 - JobGroup API: progress reporting broken

Change-Id: I49febb13851f89f8bf9954f9fe9b2143e2a97706
diff --git a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobManager.java b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobManager.java
index 92927d2..aafb26d 100644
--- a/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobManager.java
+++ b/bundles/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs/JobManager.java
@@ -1037,7 +1037,6 @@
 
 		SubMonitor subMonitor = SubMonitor.convert(monitor, JobMessages.jobs_blocked0, jobCount);
 		try {
-			int jobsLeft;
 			while (true) {
 				if (subMonitor.isCanceled())
 					throw new OperationCanceledException();
@@ -1054,16 +1053,16 @@
 				}
 				if (jobGroup.doJoin(remainingTime))
 					break;
+				int jobsLeft;
 				synchronized (lock) {
 					jobsLeft = jobGroup.getActiveJobsCount();
 				}
-				if (jobsLeft < jobCount) {
+				if (jobsLeft < jobCount)
 					subMonitor.worked(jobCount - jobsLeft);
-				} else {
-					jobCount = jobsLeft;
-					subMonitor.setWorkRemaining(jobCount);
-				}
-				subMonitor.subTask(getWaitMessage(jobsLeft));
+
+				jobCount = jobsLeft;
+				subMonitor.setWorkRemaining(jobCount);
+				subMonitor.subTask(getWaitMessage(jobCount));
 			}
 		} finally {
 			if (monitor != null) {