diff options
author | Lars Vogel | 2021-02-12 07:20:27 +0000 |
---|---|---|
committer | Lars Vogel | 2021-02-12 09:09:41 +0000 |
commit | 74705dc54fc01a1266ed3025119c915f880a3fd1 (patch) | |
tree | 81acddb62f0779f44ddc9155b42ca044a7a5c522 | |
parent | 44818033c46c99d90718ff5475803ef85e086173 (diff) | |
download | eclipse.jdt.core-74705dc54fc01a1266ed3025119c915f880a3fd1.tar.gz eclipse.jdt.core-74705dc54fc01a1266ed3025119c915f880a3fd1.tar.xz eclipse.jdt.core-74705dc54fc01a1266ed3025119c915f880a3fd1.zip |
Bug 571017 - Use atomic marker creation API in
AbstractImageBuilder#storeProblemsFor
The new marker API from Bug 570914 allows to create markers with
attributes and therefore avoids sending out resource change events for
every attribute change.
JDT core dependencies have already increased the minimum required
resource API version in a previous commit.
Change-Id: I178b6f36033923329a824f155fe298265aec5962
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java index 6ce54d3049..af91784229 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/AbstractImageBuilder.java @@ -704,16 +704,14 @@ protected void storeProblemsFor(SourceFile sourceFile, CategorizedProblem[] prob JavaBuilder.removeProblemsAndTasksFor(this.javaBuilder.currentProject); // make this the only problem for this project this.keepStoringProblemMarkers = false; } - IMarker marker = this.javaBuilder.currentProject.createMarker(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER); - marker.setAttributes( - new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IJavaModelMarker.CATEGORY_ID, IMarker.SOURCE_ID}, - new Object[] { - buildPathProblemMessage, - Integer.valueOf(isInvalidClasspathError ? IMarker.SEVERITY_ERROR : IMarker.SEVERITY_WARNING), - Integer.valueOf(CategorizedProblem.CAT_BUILDPATH), - JavaBuilder.SOURCE_ID - } - ); + + Map<String,Object> attributes = new HashMap<>(); + attributes.put(IMarker.MESSAGE, buildPathProblemMessage); + attributes.put(IMarker.SEVERITY, Integer.valueOf(isInvalidClasspathError ? IMarker.SEVERITY_ERROR : IMarker.SEVERITY_WARNING)); + attributes.put(IJavaModelMarker.CATEGORY_ID, Integer.valueOf(CategorizedProblem.CAT_BUILDPATH)); + attributes.put(IMarker.SOURCE_ID, JavaBuilder.SOURCE_ID); + + this.javaBuilder.currentProject.createMarker(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, attributes); // even if we're not keeping more markers, still fall through rest of the problem reporting, so that offending // IsClassPathCorrect problem gets recorded since it may help locate the offending reference } |