| Summary: | Annotations Refactoring | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Technology] Tigerstripe | Reporter: | Valentin Yerastov <valentin> | ||||||||||||||
| Component: | Annotations | Assignee: | Project Inbox <tigerstripe.annotations-inbox> | ||||||||||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||||||||||
| Severity: | normal | ||||||||||||||||
| Priority: | P3 | CC: | nmehrega, skanton | ||||||||||||||
| Version: | unspecified | ||||||||||||||||
| Target Milestone: | 0.5M0 | ||||||||||||||||
| Hardware: | PC | ||||||||||||||||
| OS: | Linux | ||||||||||||||||
| Whiteboard: | |||||||||||||||||
| Attachments: |
|
||||||||||||||||
Created attachment 204542 [details]
Annotations Refactoring Patch 2
I removed some debug log message and made some improvements. Please use the latest patch.
First code review was done on Oct 5 2011 10:00am EST: Main changes: - EMFDatabase has been replaced by Storage, which now uses TransactionalEditingDomains - AnnotationManager has been heavily modified: Registers a new resource change listener. Initializes Storage - Following plugins are no longer needed: espace.core, espace.resource, espace.resources.monitor Suggested modifications: - New public APIs have been added with no comments - All classes should be commented - EObjectRouter has been changed to Router, but there may be existing routers that already use EObjectRouter - Annotation example needs to be restored Issues with testing patch: - On certain projects, a progress bar is spun off for a really long time. Label of progress bar is 'Saving annotation file' - I came across a deadlock after running a simple generator, which prints out the annotation files. I'll attach the full stack trace. Created attachment 204608 [details]
Deadlock after running a simple generator
Pay particular attention to Daemon Thread [ModalContext]
Created attachment 204640 [details]
Annotations Refactoring Patch 3
I fixed the suggested issues. Thanks for threads dump.
Valentin, even with your updated patch, I still get the long-running progress bar "Save Annotation File", which runs for a really long time after adding an annotation to our implementation model. Created attachment 204751 [details]
Patch 3 : Annotation resource processor fix
Please use "Annotation resource processor fix" over patch 3 to prevent long running save operation.
Anton, I'm still able to reproduce this problem. I'll give more details in the internal JIRA on which project to use. Created attachment 205079 [details]
Annotations Refactoring Patch 4
Performance issues fixed. New extension point "annotationFiles" added to configure annotation files filtering.
There are cases where a build job is triggered right after adding an annotation, the progress bar stays at 0% and takes a really long time for it to go away. I'll post more details in the JIRA. The issue noted in comment#9 only happens once. It seems to be ok after that. Please go ahead and submit this patch. Thanks! Annotations patch 4 applied. |
Created attachment 204442 [details] Annotations Refactoring Patch There are the bugs in the annotation framework: - ConcurrentModificationException when modifying annotations - Annotations of artifacts are not removed then we remove a project. - DeferredResourceSaver must use WorkspaceJob - Annotation is not always saved in file - Annotation sometimes is not saved into project, instead of it is saved in metadata - Deadlocks then we work with annotations More information accessible in the internal JIRA. I've fixed these bugs and I attached the patch for code-review.