finally { findbugsExecuteLock.release(); }
				protected IStatus run(IProgressMonitor monitor) {					JobManager manager = JobManager.getInstance();					FindBugsWorker worker =						new FindBugsWorker(resource.getProject(), monitor);					try {						monitor.subTask("preparing");						Project findbugsProject = FindBugsWorker.workPrepare(files);						//call worker.workExecute(files) but with mutex rule						FindBugsWorker.UpdateJob updateJob = null;						try {							monitor.subTask("waiting to detect");							manager.beginRule(findbugsExecuteMutex, monitor);							monitor.subTask("detecting");							updateJob = worker.workExecute(findbugsProject);						} finally {							manager.endRule(findbugsExecuteMutex);						}												monitor.subTask("updating");						if (updateJob != null) {							//updateJob.schedule();							updateJob.update(); // update directly						}					} catch (CoreException e) {						e.printStackTrace();						return Status.CANCEL_STATUS;					}					return Status.OK_STATUS;				}