diff --git a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/actions/RunCodeAnalysis.java b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/actions/RunCodeAnalysis.java index e3a124d4002..d132b45b349 100644 --- a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/actions/RunCodeAnalysis.java +++ b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/internal/ui/actions/RunCodeAnalysis.java @@ -38,35 +38,36 @@ public class RunCodeAnalysis implements IObjectActionDelegate { @Override public void run(IAction action) { - Job job = new Job(CodanUIMessages.Job_TitleRunningAnalysis) { - @SuppressWarnings("unchecked") - @Override - protected IStatus run(final IProgressMonitor monitor) { - IStructuredSelection ss = (IStructuredSelection) sel; - int count = ss.size(); - monitor.beginTask(getName(), count * 100); - if (monitor.isCanceled()) - return Status.CANCEL_STATUS; - for (Iterator iterator = ss.iterator(); iterator.hasNext();) { - Object o = iterator.next(); - if (o instanceof IAdaptable) { - o = ((IAdaptable) o).getAdapter(IResource.class); - } - if (o instanceof IResource) { - IResource res = (IResource) o; - SubProgressMonitor subMon = new SubProgressMonitor(monitor, 100); - CodanRuntime.getInstance().getBuilder().processResource(res, subMon, CheckerLaunchMode.RUN_ON_DEMAND); - if (subMon.isCanceled()) - return Status.CANCEL_STATUS; - } + if (sel instanceof IStructuredSelection) { + final IStructuredSelection ss = (IStructuredSelection) sel; + Job job = new Job(CodanUIMessages.Job_TitleRunningAnalysis) { + @Override + protected IStatus run(final IProgressMonitor monitor) { + int count = ss.size(); + monitor.beginTask(getName(), count * 100); if (monitor.isCanceled()) return Status.CANCEL_STATUS; + for (Iterator iterator = ss.iterator(); iterator.hasNext();) { + Object o = iterator.next(); + if (o instanceof IAdaptable) { + o = ((IAdaptable) o).getAdapter(IResource.class); + } + if (o instanceof IResource) { + IResource res = (IResource) o; + SubProgressMonitor subMon = new SubProgressMonitor(monitor, 100); + CodanRuntime.getInstance().getBuilder().processResource(res, subMon, CheckerLaunchMode.RUN_ON_DEMAND); + if (subMon.isCanceled()) + return Status.CANCEL_STATUS; + } + if (monitor.isCanceled()) + return Status.CANCEL_STATUS; + } + return Status.OK_STATUS; } - return Status.OK_STATUS; - } - }; - job.setUser(true); - job.schedule(); + }; + job.setUser(true); + job.schedule(); + } } @Override