From: Shawn O. Pearce Date: Fri, 11 Jul 2008 04:33:17 GMT Subject: Re: [EGIT PATCH 7/9] Add a job to refresh projects when the index changes. Message-ID: <20080711043317.GD32633@spearce.org> In-Reply-To: <1215729651-26781-8-git-send-email-robin.rosenberg@dewire.com> Robin Rosenberg wrote: > + > + static class RIRefresh extends Job implements RepositoryListener { ... > + while (projectsToScan.size() > 0) { > + IProject p; > + synchronized (projectsToScan) { > + if (projectsToScan.size() == 0) { > + } > + p = projectsToScan.iterator().next(); This is going to throw some sort of no such element exception when you call next when projectsToScan is empty. You are missing a break inside of the if test that is meant to guard against this. > + projectsToScan.remove(p); > + } You have gone to the trouble of allocating the Iterator to obtain the next item, you should also just use it to do the deletion of the next item. Its quicker to let the Iterator do the remove as it already has the pointer to the proper element position. -- Shawn.