Buggy code:
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 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 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 JavaCore ( IPluginDescriptor pluginDescriptor ) { } public static void addElementChangedListener ( IElementChangedListener listener ) { } public static void addElementChangedListener ( IElementChangedListener listener , int eventMask ) { } public static void addJavaElementMarkerAttributes ( Map attributes , IJavaElement element ) { } public void configureJavaElementMarker ( IMarker marker , IJavaElement element ) throws CoreException { } public static IJavaElement create ( String handleIdentifier ) { } 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 ( final IPath containerPath , final IJavaProject project ) throws JavaModelException { } public static ClasspathContainerInitializer getClasspathContainerInitializer ( String containerID ) { } public static IPath getClasspathVariable ( final String variableName ) { } public static ClasspathVariableInitializer getClasspathVariableInitializer ( String variable ) { } public static String [ ] getClasspathVariableNames ( ) { } public static Hashtable getDefaultOptions ( ) { } public static JavaCore getJavaCore ( ) { } public static String getOption ( String optionName ) { } public static Hashtable getOptions ( ) { } public static Plugin getPlugin ( ) { } public static IClasspathEntry getResolvedClasspathEntry ( IClasspathEntry entry ) { } public static IPath getResolvedVariablePath ( IPath variablePath ) { } public static IWorkingCopy [ ] getSharedWorkingCopies ( IBufferFactory factory ) { if ( factory == null ) factory = BufferManager . getDefaultBufferManager ( ) . getDefaultBufferFactory ( ) ; Map sharedWorkingCopies = JavaModelManager . getJavaModelManager ( ) . sharedWorkingCopies ; <START_BUG> CompilationUnitOwner owner = new DefaultCompilationUnitOwner ( factory , null ) ; <END_BUG> Map perFactoryWorkingCopies = ( ( Map ) ( sharedWorkingCopies . get ( owner ) ) ) ; if ( perFactoryWorkingCopies == null ) return NoWorkingCopy ; Collection copies = perFactoryWorkingCopies . values ( ) ; IWorkingCopy [ ] result = new IWorkingCopy [ copies . size ( ) ] ; copies . toArray ( result ) ; return result ; } protected void initializeDefaultPluginPreferences ( ) { } public static boolean isReferencedBy ( IJavaElement element , IMarker marker ) throws CoreException { } public static boolean isReferencedBy ( IJavaElement element , IMarkerDelta markerDelta ) throws CoreException { } public static IClasspathEntry newContainerEntry ( IPath containerPath ) { } public static IClasspathEntry newContainerEntry ( IPath containerPath , boolean isExported ) { } public static IClasspathEntry newLibraryEntry ( IPath path , IPath sourceAttachmentPath , IPath sourceAttachmentRootPath ) { } public static IClasspathEntry newLibraryEntry ( IPath path , IPath sourceAttachmentPath , IPath sourceAttachmentRootPath , boolean isExported ) { } public static IClasspathEntry newProjectEntry ( IPath path ) { } public static IClasspathEntry newProjectEntry ( IPath path , boolean isExported ) { } public static IRegion newRegion ( ) { } public static IClasspathEntry newSourceEntry ( IPath path ) { } public static IClasspathEntry newSourceEntry ( IPath path , IPath [ ] exclusionPatterns ) { } public static IClasspathEntry newSourceEntry ( IPath path , IPath [ ] exclusionPatterns , IPath specificOutputLocation ) { } public static IClasspathEntry newVariableEntry ( IPath variablePath , IPath variableSourceAttachmentPath , IPath sourceAttachmentRootPath ) { } public static IClasspathEntry newVariableEntry ( IPath variablePath , IPath variableSourceAttachmentPath , IPath variableSourceAttachmentRootPath , boolean isExported ) { } public static void removeClasspathVariable ( String variableName ) { } public static void removeClasspathVariable ( String variableName , IProgressMonitor monitor ) { } public static void removeElementChangedListener ( IElementChangedListener listener ) { } public static void run ( IWorkspaceRunnable action , IProgressMonitor monitor ) throws CoreException { } public static void setClasspathContainer ( final IPath containerPath , IJavaProject [ ] affectedProjects , IClasspathContainer [ ] respectiveContainers , IProgressMonitor monitor ) throws JavaModelException { } 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 { }

Fix:
WorkingCopyOwner owner = new BufferFactoryWrapper ( factory ) ;