Buggy code:
private static final String BUILDER_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//builder" ; private static final String BUILDER_STATS_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//builder//stats" ; private static final String COMPLETION_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//completion" ; private static final String RESOLUTION_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//resolution" ; private static final String SELECTION_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//selection" ; private static final String SEARCH_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//search" ; private static final String SOURCE_MAPPER_DEBUG_VERBOSE = ( JavaCore . PLUGIN_ID ) + "//debug//sourcemapper" ; private static final String FORMATTER_DEBUG = ( JavaCore . PLUGIN_ID ) + "//debug//formatter" ; public static final String COMPLETION_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//completion" ; public static final String SELECTION_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//selection" ; public static final String DELTA_LISTENER_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//javadeltalistener" ; public static final String VARIABLE_INITIALIZER_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//variableinitializer" ; public static final String CONTAINER_INITIALIZER_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//containerinitializer" ; public static final String RECONCILE_PERF = ( JavaCore . PLUGIN_ID ) + "//perf//reconcile" ; private static final String INDEXED_SECONDARY_TYPES = "#@*_indexing<seq2seq4repair_space>secondary<seq2seq4repair_space>cache_*@#" ; public static boolean PERF_VARIABLE_INITIALIZER = false ; public static boolean PERF_CONTAINER_INITIALIZER = false ; public static final ICompilationUnit [ ] NO_WORKING_COPY = new ICompilationUnit [ 0 ] ; HashSet optionNames = new HashSet ( 20 ) ; Hashtable optionsCache ; public final IEclipsePreferences [ ] preferencesLookup = new IEclipsePreferences [ 2 ] ; static final int PREF_INSTANCE = 0 ; static final int PREF_DEFAULT = 1 ; static final Object [ ] [ ] NO_PARTICIPANTS = new Object [ 0 ] [ ] ; public static class CompilationParticipants { private static final int MAX_SOURCE_LEVEL = 7 ; private Object [ ] [ ] registeredParticipants = null ; private HashSet managedMarkerTypes ; public CompilationParticipant [ ] getCompilationParticipants ( IJavaProject project ) { } public HashSet managedMarkerTypes ( ) { } private synchronized Object [ ] [ ] getRegisteredParticipants ( ) { } private int indexForSourceLevel ( String sourceLevel ) { } private int sortParticipants ( ArrayList group , IConfigurationElement [ ] configElements , int index ) { } } public final JavaModelManager . CompilationParticipants compilationParticipants = new JavaModelManager . CompilationParticipants ( ) ; public ThreadLocal abortOnMissingSource = new ThreadLocal ( ) ; private ExternalFoldersManager externalFoldersManager = new ExternalFoldersManager ( ) ; public static boolean conflictsWithOutputLocation ( IPath folderPath , JavaProject project ) { } public synchronized IClasspathContainer containerGet ( IJavaProject project , IPath containerPath ) { } public synchronized IClasspathContainer containerGetDefaultToPreviousSession ( IJavaProject project , IPath containerPath ) { } private boolean containerIsInitializationInProgress ( IJavaProject project , IPath containerPath ) { } private void containerAddInitializationInProgress ( IJavaProject project , IPath containerPath ) { } public void containerBeingInitializedPut ( IJavaProject project , IPath containerPath , IClasspathContainer container ) { } public IClasspathContainer containerBeingInitializedGet ( IJavaProject project , IPath containerPath ) { } public IClasspathContainer containerBeingInitializedRemove ( IJavaProject project , IPath containerPath ) { } public synchronized void containerPut ( IJavaProject project , IPath containerPath , IClasspathContainer container ) { } public synchronized void containerRemove ( IJavaProject project ) { } public boolean containerPutIfInitializingWithSameEntries ( IPath containerPath , IJavaProject [ ] projects , IClasspathContainer [ ] respectiveContainers ) { } private void verbose_missbehaving_container ( IPath containerPath , IJavaProject [ ] projects , IClasspathContainer [ ] respectiveContainers , final IClasspathContainer container , final IClasspathEntry [ ] newEntries , final IClasspathEntry [ ] oldEntries ) { } void verbose_missbehaving_container ( IJavaProject project , IPath containerPath , IClasspathEntry [ ] classpathEntries ) { } void verbose_missbehaving_container_null_entries ( IJavaProject project , IPath containerPath ) { } private void containerRemoveInitializationInProgress ( IJavaProject project , IPath containerPath ) { } private synchronized void containersReset ( String [ ] containerIDs ) { for ( int i = 0 ; i < ( containerIDs . length ) ; i ++ ) { String containerID = containerIDs [ i ] ; Iterator projectIterator = this . containers . values ( ) . iterator ( ) ; while ( projectIterator . hasNext ( ) ) { Map projectContainers = ( ( Map ) ( projectIterator . next ( ) ) ) ; if ( projectContainers != null ) { Iterator containerIterator = projectContainers . keySet ( ) . iterator ( ) ; while ( containerIterator . hasNext ( ) ) { IPath containerPath = ( ( IPath ) ( containerIterator . next ( ) ) ) ; <START_BUG> if ( containerPath . segment ( 0 ) . equals ( containerID ) ) { <END_BUG> projectContainers . put ( containerPath , null ) ; } } } } } } public static IJavaElement create ( IResource resource , IJavaProject project ) { } public static IJavaElement create ( IFile file , IJavaProject project ) { } public static IJavaElement create ( IFolder folder , IJavaProject project ) { } public static IClassFile createClassFileFrom ( IFile file , IJavaProject project ) { } public static ICompilationUnit createCompilationUnitFrom ( IFile file , IJavaProject project ) { } public static IPackageFragmentRoot createJarPackageFragmentRootFrom ( IFile file , IJavaProject project ) { } public static IJavaElement determineIfOnClasspath ( IResource resource , IJavaProject project ) { } private static JavaModelManager MANAGER = new JavaModelManager ( ) ; private JavaModelCache cache ; private ThreadLocal temporaryCache = new ThreadLocal ( ) ; protected HashSet elementsOutOfSynchWithBuffers = new HashSet ( 11 ) ; public DeltaProcessingState deltaState = new DeltaProcessingState ( ) ; public IndexManager indexManager = null ; protected Map perProjectInfos = new HashMap ( 5 ) ; protected Map perWorkingCopyInfos = new HashMap ( 5 ) ; protected WeakHashMap searchScopes = new WeakHashMap ( ) ; public static class PerProjectInfo { private static final int JAVADOC_CACHE_INITIAL_SIZE = 10 ; static final IJavaModelStatus NEED_RESOLUTION = new JavaModelStatus ( ) ; public IProject project ; public Object savedState ; public boolean triedRead ; public IClasspathEntry [ ] rawClasspath ;

Fix:
if ( containerID . equals ( containerPath . segment ( 0 ) ) ) {