Bug 159009 Errors opening resource
build i0926-0935 I commonly use ctrl-shift-r to open a resource in my workspace. with this build I frequently get an error and the following stack track in my log file. !ENTRY org.eclipse.core.jobs 4 2 2006-09-27 13:47:30.164 !MESSAGE An internal error occurred during: "Searching for all". !STACK 0 java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:365) at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:380) at org.eclipse.ui.dialogs.ResourceSearcher$ResourceHistory.getMatchedElements(ResourceSearcher.java:497) at org.eclipse.ui.dialogs.ResourceSearcher$ResourceSearchEngineJob.getFilteredHistory(ResourceSearcher.java:306) at org.eclipse.ui.dialogs.AbstractSearcher$AbstractSearchJob.internalRun(AbstractSearcher.java:395) at org.eclipse.ui.dialogs.AbstractSearcher$AbstractSearchJob.doRun(AbstractSearcher.java:371) at org.eclipse.ui.dialogs.AbstractSearcher$AbstractJob.run(AbstractSearcher.java:337) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceSearcher.java
private static final String NODE_ROOT = "resourceInfoHistroy"; 
		private static final String NODE_TYPE_INFO = "resourceInfo"; 
		private static ResourceHistory fgInstance;
		public static synchronized ResourceHistory getInstance() {
			if (fgInstance == null)
				fgInstance = new ResourceHistory();
			return fgInstance;
		}
		private ResourceHistory() {
			super(NODE_ROOT, NODE_TYPE_INFO);
		}
		public synchronized boolean contains(IResource resource) {
			return super.contains(resource);
		}
		public synchronized void accessed(IResource resource) {
			super.accessed(resource);
		}
		public synchronized IResource remove(IResource resource) {
			return (IResource) super.remove(resource);
		}
		public synchronized IResource[] getMatchedElements(
				ResourceFilter filter, IContainer container) {
			Collection values = getValues();
			List result = new ArrayList();
			for (Iterator iter = values.iterator(); iter.hasNext();) {
				IResource resource = (IResource) iter.next();
				if (filter == null || filter.matchesElement(resource))
					if (container.findMember(resource.getFullPath()) != null)
						result.add(resource);