Buggy code:
} } ) ) ) + "}\n\tvalues:<seq2seq4repair_space>{\n" ) + ( org . eclipse . jdt . internal . compiler . util . Util . toString ( respectiveContainers , new org . eclipse . jdt . internal . compiler . util . Util . Displayable ( ) { public String displayString ( Object o ) { StringBuffer buffer = new StringBuffer ( "<seq2seq4repair_space>" ) ; if ( o == null ) { buffer . append ( "<null>" ) ; return buffer . toString ( ) ; } IClasspathContainer container = ( ( IClasspathContainer ) ( o ) ) ; buffer . append ( container . getDescription ( ) ) ; buffer . append ( "<seq2seq4repair_space>{\n" ) ; IClasspathEntry [ ] entries = container . getClasspathEntries ( ) ; if ( entries != null ) { for ( int i = 0 ; i < ( entries . length ) ; i ++ ) { buffer . append ( "<seq2seq4repair_space>" ) ; buffer . append ( entries [ i ] ) ; buffer . append ( '\n' ) ; } } buffer . append ( "<seq2seq4repair_space>}" ) ; return buffer . toString ( ) ; } } ) ) ) + "\n\t}\n\tinvocation<seq2seq4repair_space>stack<seq2seq4repair_space>trace:" ) ) ; new Exception ( "<Fake<seq2seq4repair_space>exception>" ) . printStackTrace ( System . out ) ; } final int projectLength = affectedProjects . length ; final IJavaProject [ ] modifiedProjects ; System . arraycopy ( affectedProjects , 0 , ( modifiedProjects = new IJavaProject [ projectLength ] ) , 0 , projectLength ) ; final IClasspathEntry [ ] [ ] oldResolvedPaths = new IClasspathEntry [ projectLength ] [ ] ; int remaining = 0 ; for ( int i = 0 ; i < projectLength ; i ++ ) { if ( ( monitor != null ) && ( monitor . isCanceled ( ) ) ) return ; JavaProject affectedProject = ( ( JavaProject ) ( affectedProjects [ i ] ) ) ; IClasspathContainer newContainer = respectiveContainers [ i ] ; if ( newContainer == null ) newContainer = JavaModelManager . CONTAINER_INITIALIZATION_IN_PROGRESS ; boolean found = false ; if ( JavaProject . hasJavaNature ( affectedProject . getProject ( ) ) ) { IClasspathEntry [ ] rawClasspath = affectedProject . getRawClasspath ( ) ; for ( int j = 0 , cpLength = rawClasspath . length ; j < cpLength ; j ++ ) { IClasspathEntry entry = rawClasspath [ j ] ; if ( ( ( entry . getEntryKind ( ) ) == ( IClasspathEntry . CPE_CONTAINER ) ) && ( entry . getPath ( ) . equals ( containerPath ) ) ) { found = true ; break ; } } } if ( ! found ) { modifiedProjects [ i ] = null ; JavaModelManager . getJavaModelManager ( ) . containerPut ( affectedProject , containerPath , newContainer ) ; continue ; } IClasspathContainer oldContainer = JavaModelManager . getJavaModelManager ( ) . containerGet ( affectedProject , containerPath ) ; if ( oldContainer == ( JavaModelManager . CONTAINER_INITIALIZATION_IN_PROGRESS ) ) { oldContainer = null ; } if ( ( oldContainer != null ) && ( oldContainer . equals ( respectiveContainers [ i ] ) ) ) { modifiedProjects [ i ] = null ; continue ; } remaining ++ ; oldResolvedPaths [ i ] = affectedProject . getResolvedClasspath ( true , false , false ) ; JavaModelManager . getJavaModelManager ( ) . containerPut ( affectedProject , containerPath , newContainer ) ; } if ( remaining == 0 ) return ; try { final boolean canChangeResources = ! ( ResourcesPlugin . getWorkspace ( ) . isTreeLocked ( ) ) ; JavaCore . run ( new IWorkspaceRunnable ( ) { public void run ( IProgressMonitor progressMonitor ) throws CoreException { for ( int i = 0 ; i < projectLength ; i ++ ) { if ( ( progressMonitor != null ) && ( progressMonitor . isCanceled ( ) ) ) return ; JavaProject affectedProject = ( ( JavaProject ) ( modifiedProjects [ i ] ) ) ; if ( affectedProject == null ) continue ; if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { Util . verbose ( ( ( ( ( ( "CPContainer<seq2seq4repair_space>SET<seq2seq4repair_space>-<seq2seq4repair_space>updating<seq2seq4repair_space>affected<seq2seq4repair_space>project<seq2seq4repair_space>due<seq2seq4repair_space>to<seq2seq4repair_space>setting<seq2seq4repair_space>container\n" + "<seq2seq4repair_space>project:<seq2seq4repair_space>" ) + ( affectedProject . getElementName ( ) ) ) + '\n' ) + "<seq2seq4repair_space>container<seq2seq4repair_space>path:<seq2seq4repair_space>" ) + containerPath ) ) ; } <START_BUG> affectedProject . setRawClasspath ( affectedProject . getRawClasspath ( ) , ReuseOutputLocation , progressMonitor , canChangeResources , oldResolvedPaths [ i ] , false , false ) ; <END_BUG> } } } , null , monitor ) ; } catch ( CoreException e ) { if ( JavaModelManager . CP_RESOLVE_VERBOSE ) { Util . verbose ( ( ( "CPContainer<seq2seq4repair_space>SET<seq2seq4repair_space>-<seq2seq4repair_space>FAILED<seq2seq4repair_space>DUE<seq2seq4repair_space>TO<seq2seq4repair_space>EXCEPTION\n" + "<seq2seq4repair_space>container<seq2seq4repair_space>path:<seq2seq4repair_space>" ) + containerPath ) , System . err ) ; e . printStackTrace ( ) ; } if ( e instanceof JavaModelException ) { throw ( ( JavaModelException ) ( e ) ) ; } else { throw new JavaModelException ( e ) ; } } finally { for ( int i = 0 ; i < projectLength ; i ++ ) { if ( ( respectiveContainers [ i ] ) == null ) { JavaModelManager . getJavaModelManager ( ) . containerPut ( affectedProjects [ i ] , containerPath , null ) ; } } } } public static void setClasspathVariable ( String variableName , IPath path ) throws JavaModelException { } public static void setClasspathVariable ( String variableName , IPath path , IProgressMonitor monitor ) throws JavaModelException { } public static void setClasspathVariables ( String [ ] variableNames , IPath [ ] paths , IProgressMonitor monitor ) throws JavaModelException { } public static void setOptions ( Hashtable newOptions ) { } public void stop ( BundleContext context ) throws Exception { } private void startIndexing ( ) { } public void start ( BundleContext context ) throws Exception { } }

Fix:
affectedProject . setRawClasspath ( affectedProject . getRawClasspath ( ) , REUSE_PATH , progressMonitor , canChangeResources , oldResolvedPaths [ i ] , false , false ) ;