Bug 355096 - [Subclipse] Implement the getChangeSets Iterator api
Summary: [Subclipse] Implement the getChangeSets Iterator api
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: 0.8   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 0.9   Edit
Assignee: Alvaro Sanchez-Leon CLA
QA Contact:
URL:
Whiteboard:
Keywords: core
Depends on: 354670
Blocks: 355098
  Show dependency tree
 
Reported: 2011-08-18 11:08 EDT by Alvaro Sanchez-Leon CLA
Modified: 2011-09-13 08:11 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alvaro Sanchez-Leon CLA 2011-08-18 11:08:05 EDT
This is the specific implementation of the getChangeSets: Iterator interface.

this is in order to reduce the waiting time to resolve the change list and the corresponding changes with base and targets.

e.g. via a blocking queue with a producer thread filling the changeset information e.g. in chunks
and removing elements consumed by the iterator.
Comment 1 Alvaro Sanchez-Leon CLA 2011-08-18 11:46:33 EDT
The initial implementation will assume that only one Iterator<ChangeSet> is needed at any given time, 
so each time a new iterator is requested for an associated eclipse project (e.g. new UI dialogue)  the previous worker changeSet producer thread will be shutdown and a new iterator will be provided which shall start with an empty queue.

The above can be later enhanced to re-use the same thread (one per project) and use a cached list of parsed ChangeSets, so the queue is filled up from the cache. This enhancement has to also consider that new commits may be available so the top of the list may need to be refreshed.
Comment 2 Steffen Pingel CLA 2011-08-23 15:07:47 EDT
I get a compile error on Java 1.5 in /org.eclipse.mylyn.subclipse.core/src/org/eclipse/mylyn/internal/subclipse/core	/SubclipseConnector.java:590: MINUTES cannot be resolved or is not a field	.
Comment 3 Alvaro Sanchez-Leon CLA 2011-08-23 15:29:12 EDT
I see..    I have just pushed the fix,
Thanks for pointing this out.
Comment 4 Steffen Pingel CLA 2011-08-23 17:37:58 EDT
You can detect this if you configure a 1.5 JRE in your workspace.
Comment 5 Alvaro Sanchez-Leon CLA 2011-08-23 18:22:05 EDT
(In reply to comment #4)
> You can detect this if you configure a 1.5 JRE in your workspace.

Yes, I normally do, but missed it for this time.
Thanks
Comment 6 Alvaro Sanchez-Leon CLA 2011-08-25 09:48:06 EDT
Implemented:
    bug 355096: Stop on copied elements to avoid path resolution problems
    in addition:
    - Introduce maximum number of recovery attempts to obtain next vesions
    after an exception
    - Detect done e.g. log message list received < than CHUNK_SIZE
    - Reduce poll timeout to 60 seconds
    - Always use a valid version as the start of a chunk e.g. using the last
    entry on the previous chunk to start the next one. but prevent adding
    the last entry of every chuck to the list (to avoid duplicates)