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) {