Buggy code:
public static final String CODEASSIST_VISIBILITY_CHECK = ( JavaCore . PLUGIN_ID ) + ".codeComplete.visibilityCheck" ; public static final String CODEASSIST_IMPLICIT_QUALIFICATION = ( JavaCore . PLUGIN_ID ) + ".codeComplete.forceImplicitQualification" ; public static final String CODEASSIST_FIELD_PREFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.fieldPrefixes" ; public static final String CODEASSIST_STATIC_FIELD_PREFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.staticFieldPrefixes" ; public static final String CODEASSIST_LOCAL_PREFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.localPrefixes" ; public static final String CODEASSIST_ARGUMENT_PREFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.argumentPrefixes" ; public static final String CODEASSIST_FIELD_SUFFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.fieldSuffixes" ; public static final String CODEASSIST_STATIC_FIELD_SUFFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.staticFieldSuffixes" ; public static final String CODEASSIST_LOCAL_SUFFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.localSuffixes" ; public static final String CODEASSIST_ARGUMENT_SUFFIXES = ( JavaCore . PLUGIN_ID ) + ".codeComplete.argumentSuffixes" ; public static final String CODEASSIST_FORBIDDEN_REFERENCE_CHECK = ( JavaCore . PLUGIN_ID ) + ".codeComplete.forbiddenReferenceCheck" ; public static final String CODEASSIST_DISCOURAGED_REFERENCE_CHECK = ( JavaCore . PLUGIN_ID ) + ".codeComplete.discouragedReferenceCheck" ; public static final String GENERATE = "generate" ; public static final String DO_NOT_GENERATE = "do<seq2seq4repair_space>not<seq2seq4repair_space>generate" ; public static final String PRESERVE = "preserve" ; public static final String OPTIMIZE_OUT = "optimize<seq2seq4repair_space>out" ; public static final String VERSION_1_1 = "1.1" ; public static final String VERSION_1_2 = "1.2" ; public static final String VERSION_1_3 = "1.3" ; public static final String VERSION_1_4 = "1.4" ; public static final String VERSION_1_5 = "1.5" ; public static final String VERSION_1_6 = "1.6" ; public static final String ABORT = "abort" ; public static final String ERROR = "error" ; public static final String WARNING = "warning" ; public static final String IGNORE = "ignore" ; public static final String COMPUTE = "compute" ; public static final String INSERT = "insert" ; public static final String DO_NOT_INSERT = "do<seq2seq4repair_space>not<seq2seq4repair_space>insert" ; public static final String PRESERVE_ONE = "preserve<seq2seq4repair_space>one" ; public static final String CLEAR_ALL = "clear<seq2seq4repair_space>all" ; public static final String NORMAL = "normal" ; public static final String COMPACT = "compact" ; public static final String TAB = "tab" ; public static final String SPACE = "space" ; public static final String ENABLED = "enabled" ; public static final String DISABLED = "disabled" ; public static final String CLEAN = "clean" ; public static final String PUBLIC = "public" ; public static final String PROTECTED = "protected" ; public static final String DEFAULT = "default" ; public static final String PRIVATE = "private" ; public static final String NEVER = "never" ; public JavaCore ( ) { } public static void addElementChangedListener ( IElementChangedListener listener ) { } public static void addElementChangedListener ( IElementChangedListener listener , int eventMask ) { } public static void addJavaElementMarkerAttributes ( Map attributes , IJavaElement element ) { } public static void addPreProcessingResourceChangedListener ( IResourceChangeListener listener ) { } public static void addPreProcessingResourceChangedListener ( IResourceChangeListener listener , int eventMask ) { } public void configureJavaElementMarker ( IMarker marker , IJavaElement element ) throws CoreException { } public static IJavaElement create ( String handleIdentifier ) { } public static IJavaElement create ( String handleIdentifier , WorkingCopyOwner owner ) { } public static IJavaElement create ( IFile file ) { } public static IJavaElement create ( IFolder folder ) { } public static IJavaProject create ( IProject project ) { } public static IJavaElement create ( IResource resource ) { } public static IJavaModel create ( IWorkspaceRoot root ) { } public static IClassFile createClassFileFrom ( IFile file ) { } public static ICompilationUnit createCompilationUnitFrom ( IFile file ) { } public static IPackageFragmentRoot createJarPackageFragmentRootFrom ( IFile file ) { } public static IClasspathContainer getClasspathContainer ( IPath containerPath , IJavaProject project ) throws JavaModelException { } public static ClasspathContainerInitializer getClasspathContainerInitializer ( String containerID ) { } private static ClasspathContainerInitializer computeClasspathContainerInitializer ( String containerID ) { } public static IPath getClasspathVariable ( final String variableName ) { JavaModelManager manager = JavaModelManager . getJavaModelManager ( ) ; IPath variablePath = manager . variableGet ( variableName ) ; if ( variablePath == ( JavaModelManager . VARIABLE_INITIALIZATION_IN_PROGRESS ) ) { return manager . getPreviousSessionVariable ( variableName ) ; } if ( variablePath != null ) { <START_BUG> if ( JavaModelManager . CP_ENTRY_IGNORE . equals ( variablePath . toString ( ) ) ) <END_BUG> return null ; return variablePath ; } final ClasspathVariableInitializer initializer = JavaCore . getClasspathVariableInitializer ( variableName ) ; if ( initializer != null ) { if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { Util . verbose ( ( ( ( ( ( ( ( "CPVariable<seq2seq4repair_space>INIT<seq2seq4repair_space>-<seq2seq4repair_space>triggering<seq2seq4repair_space>initialization\n" + "<seq2seq4repair_space>variable:<seq2seq4repair_space>" ) + variableName ) + '\n' ) + "<seq2seq4repair_space>initializer:<seq2seq4repair_space>" ) + initializer ) + '\n' ) + "<seq2seq4repair_space>invocation<seq2seq4repair_space>stack<seq2seq4repair_space>trace:" ) ) ; new Exception ( "<Fake<seq2seq4repair_space>exception>" ) . printStackTrace ( System . out ) ; } JavaModelManager . getJavaModelManager ( ) . variablePut ( variableName , JavaModelManager . VARIABLE_INITIALIZATION_IN_PROGRESS ) ; boolean ok = false ; try { initializer . initialize ( variableName ) ; variablePath = JavaModelManager . getJavaModelManager ( ) . variableGet ( variableName ) ; if ( variablePath == ( JavaModelManager . VARIABLE_INITIALIZATION_IN_PROGRESS ) ) return null ; if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { Util . verbose ( ( ( ( ( ( "CPVariable<seq2seq4repair_space>INIT<seq2seq4repair_space>-<seq2seq4repair_space>after<seq2seq4repair_space>initialization\n" + "<seq2seq4repair_space>variable:<seq2seq4repair_space>" ) + variableName ) + '\n' ) + "<seq2seq4repair_space>variable<seq2seq4repair_space>path:<seq2seq4repair_space>" ) + variablePath ) ) ; } ok = true ; } catch ( RuntimeException e ) { if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { e . printStackTrace ( ) ; } throw e ; } catch ( Error e ) { if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { e . printStackTrace ( ) ; } throw e ; } finally { if ( ! ok ) JavaModelManager . getJavaModelManager ( ) . variablePut ( variableName , null ) ; } } else { if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { Util . verbose ( ( ( "CPVariable<seq2seq4repair_space>INIT<seq2seq4repair_space>-<seq2seq4repair_space>no<seq2seq4repair_space>initializer<seq2seq4repair_space>found\n" + "<seq2seq4repair_space>variable:<seq2seq4repair_space>" ) + variableName ) ) ; } } return variablePath ; } public static ClasspathVariableInitializer getClasspathVariableInitializer ( String variable ) { }

Fix:
if ( variablePath == ( JavaModelManager . CP_ENTRY_IGNORE_PATH ) )