diff options
-rw-r--r-- | common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/java/source/SourceAnnotatedElement.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/java/source/SourceAnnotatedElement.java b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/java/source/SourceAnnotatedElement.java index 748aa02367..e6499ba5c5 100644 --- a/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/java/source/SourceAnnotatedElement.java +++ b/common/plugins/org.eclipse.jpt.common.core/src/org/eclipse/jpt/common/core/internal/resource/java/source/SourceAnnotatedElement.java @@ -396,14 +396,15 @@ abstract class SourceAnnotatedElement<E extends AnnotatedElement> annotation.synchronizeWith(astAnnotation); } } - + + // add annotations first, otherwise it might cause unnecessary remove/add behavior elsewhere + this.annotations.putAll(annotationsToAdd); + this.fireItemsAdded(ANNOTATIONS_COLLECTION, annotationsToAdd.values()); + for (String annotationName : annotationsToRemove.keySet()) { this.annotations.remove(annotationName); } this.fireItemsRemoved(ANNOTATIONS_COLLECTION, annotationsToRemove.values()); - - this.annotations.putAll(annotationsToAdd); - this.fireItemsAdded(ANNOTATIONS_COLLECTION, annotationsToAdd.values()); } private void syncAnnotationContainers(HashMap<String, org.eclipse.jdt.core.dom.Annotation> astContainerAnnotations, HashMap<String, org.eclipse.jdt.core.dom.Annotation> astStandaloneNestableAnnotations) { |