Bug 171586 [Progress] Group progress updates too late
Build ID: M20070112-1200 Steps To Reproduce: The following test is based on the org.eclipse.ui.examples.job 1. The A TestJobRule was created as in the More information 2. The following change was made in JobsView to set the rule for the job result result.setUser(user); result.setRule(new TestJobRule(i)); result.schedule(delay); 3. In the Job Factory view, check Run in Group, Keep and User Job. 4. Create 3 jobs 5. When the progress dialogue comes up, press the button Run in background 6. There is no progress in the progress view until the last job. If the job runs without schedule rule, the progress view displays information about the jobs when they are running in background. This is also how it used to work in 3.1.2. I would think this is a regression. More information: Code of TestJobRule import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.jobs.ISchedulingRule; public class TestJobRule implements ISchedulingRule { private int jobOrder; public TestJobRule (int order){ jobOrder = order; } public boolean contains(ISchedulingRule rule) { if (rule instanceof IResource || rule instanceof TestJobRule) return true; return false; } public boolean isConflicting(ISchedulingRule rule) { if (!(rule instanceof TestJobRule)) return false; return ((TestJobRule)rule).getJobOrder() >= jobOrder; } public int getJobOrder() { return jobOrder; } }
examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
createCheckboxGroup(body);
	}
	/**
	 * Create all push button parts for the jobs view.
	 * @param parent
	 */
	private void createPushButtonGroup(Composite parent) {
		Composite group = new Composite(parent, SWT.NONE);
		GridLayout layout = new GridLayout();
		layout.numColumns = 1;
		group.setLayout(layout);
		group.setLayoutData(new GridData(GridData.FILL_BOTH));
		
		Button create = new Button(group, SWT.PUSH);
		create.setText("Create jobs"); 
		create.setToolTipText("Creates and schedules jobs according to above parameters"); 
		create.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		create.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				createJobs();
			}
		});
		
		Button touch = new Button(group, SWT.PUSH);
		touch.setText("Touch workspace"); 
		touch.setToolTipText("Modifies the workspace in the UI thread"); 
		touch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		touch.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				touchWorkspace();