Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 67800

Summary: [Algorithms] RangeDifferencer progress reporting stops at 50%
Product: [Eclipse Project] Platform Reporter: Andre Weinand <andre_weinand>
Component: CompareAssignee: Michael Valenta <Michael.Valenta>
Status: VERIFIED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: douglas.pollock
Version: 3.0   
Target Milestone: 3.3 M5   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on:    
Bug Blocks: 50335    

Description Andre Weinand CLA 2004-06-18 09:04:45 EDT
This problem was reported by Douglas Pollock as part of bug #50335:

"The only issue that remains is that computation of the size of the progress bar 
is still off.  The task completes when the bar is slightly below the halfway 
mark. "
Comment 1 Andre Weinand CLA 2004-06-18 09:18:52 EDT
Problem analysis:
The 3-way compare internally uses two 2-way compares.
The initial guess for the amount of max work is the sum of two guesses for the two individual 
compares. If there are only incoming or only outgoing changes, one of the two compares exits early 
because there are no changes. This is the culprit.
In this case the ProgressManager.worked() isn't called and the amount of work is not brought to the 
expected value of max work. As a consequence in many cases the total progress stops at 50%.

There are two fixes possible:
- use of sub progressmonitors
- in case of an early exit ProgressManager.worked(max_work) is called.
Comment 2 Michael Valenta CLA 2007-01-09 15:22:32 EST
Fix released to HEAD
Comment 3 Michael Valenta CLA 2007-02-06 08:54:22 EST
Verified using I20070206-0010