From 1f5127784d38d1849ca71ea57ab8e4fa4474bd21 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Fri, 10 Jul 2009 17:59:05 +0000 Subject: [PATCH] bug 278779: CodanProblemReporter creates duplicate markers --- .../cdt/codan/core/model/CodanProblemReporter.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/CodanProblemReporter.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/CodanProblemReporter.java index 1205eac8bd2..7b5bb830ccd 100644 --- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/CodanProblemReporter.java +++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/model/CodanProblemReporter.java @@ -33,6 +33,19 @@ public class CodanProblemReporter { if (problem.isEnabled() == false) return; // skip int severity = problem.getSeverity().intValue(); + // Do not put in duplicates + IMarker[] cur = file.findMarkers(GENERIC_CODE_ANALYSIS_MARKER_TYPE, false, IResource.DEPTH_ZERO); + if (cur != null) { + for (IMarker element : cur) { + int line = ((Integer) element.getAttribute(IMarker.LINE_NUMBER)).intValue(); + if (line==lineNumber) { + String mesg = (String) element.getAttribute(IMarker.MESSAGE); + int sev = ((Integer) element.getAttribute(IMarker.SEVERITY)).intValue(); + if (sev == severity && mesg.equals(message)) + return; + } + } + } IMarker marker = file .createMarker(GENERIC_CODE_ANALYSIS_MARKER_TYPE); marker.setAttribute(IMarker.MESSAGE, message);