diff options
author | Karsten Thoms | 2017-07-11 04:47:20 +0000 |
---|---|---|
committer | Dani Megert | 2017-08-21 09:18:20 +0000 |
commit | bad83c43b6006c692555a917f323f2f62ff60682 (patch) | |
tree | 3bc4145d27021de2e22997da99380247cd15aed3 | |
parent | 0861b46bac8cc7bd48fb9665d56fe9d30395ce4b (diff) | |
download | eclipse.jdt.ui-bad83c43b6006c692555a917f323f2f62ff60682.tar.gz eclipse.jdt.ui-bad83c43b6006c692555a917f323f2f62ff60682.tar.xz eclipse.jdt.ui-bad83c43b6006c692555a917f323f2f62ff60682.zip |
Bug 466379 Ignore failure on deletion I20170823-2000I20170822-2000
Change-Id: I6dd675630711319cff33cbc1b25c0d8d8cc49a90
Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
-rw-r--r-- | org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/ProblemsLabelDecorator.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/ProblemsLabelDecorator.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/ProblemsLabelDecorator.java index f954e37dfe..02f6fb727c 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/ProblemsLabelDecorator.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/ProblemsLabelDecorator.java @@ -327,13 +327,13 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe } // markers on package itself (e.g. missing @NonNullByDefault) - int severity= res.findMaxProblemSeverity(IMarker.PROBLEM, true, IResource.DEPTH_ZERO); + int severity= findMaxProblemSeverity(res, IMarker.PROBLEM, true, IResource.DEPTH_ZERO); if (severity == IMarker.SEVERITY_ERROR) return ERRORTICK_ERROR; // markers on CUs for (ICompilationUnit cu : pack.getCompilationUnits()) { - severity= Math.max(severity, cu.getResource().findMaxProblemSeverity(IMarker.PROBLEM, true, IResource.DEPTH_ZERO)); + severity= Math.max(severity, findMaxProblemSeverity(cu.getResource(), IMarker.PROBLEM, true, IResource.DEPTH_ZERO)); if (severity == IMarker.SEVERITY_ERROR) return ERRORTICK_ERROR; } @@ -342,7 +342,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe for (Object object : pack.getNonJavaResources()) { if (object instanceof IResource) { IResource resource= (IResource) object; - severity= Math.max(severity, resource.findMaxProblemSeverity(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE)); + severity= Math.max(severity, findMaxProblemSeverity(resource, IMarker.PROBLEM, true, IResource.DEPTH_INFINITE)); if (severity == IMarker.SEVERITY_ERROR) return ERRORTICK_ERROR; } @@ -357,6 +357,18 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe } return 0; } + + private int findMaxProblemSeverity (IResource res, String type, boolean includeSubtypes, int depth) throws CoreException { + try { + return res.findMaxProblemSeverity(type, includeSubtypes, depth); + } catch (CoreException e) { + if (e.getStatus().getCode() == IResourceStatus.RESOURCE_NOT_FOUND) { + // Ignore failure in the case of concurrent deletion + return -1; + } + throw e; + } + } private boolean isMarkerInRange(IMarker marker, ISourceReference sourceElement) throws CoreException { if (marker.isSubtypeOf(IMarker.TEXT)) { |