Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Vogel2021-02-12 07:20:27 +0000
committerLars Vogel2021-02-12 09:09:41 +0000
commit74705dc54fc01a1266ed3025119c915f880a3fd1 (patch)
tree81acddb62f0779f44ddc9155b42ca044a7a5c522
parent44818033c46c99d90718ff5475803ef85e086173 (diff)
downloadeclipse.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.java18
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
}

Back to the top