Buggy code:
public class WorkbenchPlugin extends AbstractUIPlugin { private static WorkbenchPlugin inst ; private EditorRegistry editorRegistry ; private DecoratorManager decoratorManager ; private ThemeRegistry themeRegistry ; private WorkingSetManager workingSetManager ; private WorkingSetRegistry workingSetRegistry ; private BundleContext bundleContext ; public static boolean DEBUG = false ; public static String PI_WORKBENCH = PlatformUI . PLUGIN_ID ; public static char PREFERENCE_PAGE_CATEGORY_SEPARATOR = '//' ; private WorkbenchPreferenceManager preferenceManager ; private ViewRegistry viewRegistry ; private PerspectiveRegistry perspRegistry ; private ActionSetRegistry actionSetRegistry ; private SharedImages sharedImages ; private ProductInfo productInfo = null ; private IntroRegistry introRegistry ; public WorkbenchPlugin ( ) { } void reset ( ) { } public static Object createExtension ( final IConfigurationElement element , final String classAttribute ) throws CoreException { } protected ImageRegistry createImageRegistry ( ) { } public ActionSetRegistry getActionSetRegistry ( ) { } public static WorkbenchPlugin getDefault ( ) { } public IEditorRegistry getEditorRegistry ( ) { } public IElementFactory getElementFactory ( String targetID ) { } public AbstractPresentationFactory getPresentationFactory ( String targetID ) { } private Object createExtension ( String extensionPointId , String elementName , String targetID ) { } public IPerspectiveRegistry getPerspectiveRegistry ( ) { } public IWorkingSetManager getWorkingSetManager ( ) { } public WorkingSetRegistry getWorkingSetRegistry ( ) { } public IIntroRegistry getIntroRegistry ( ) { } public PreferenceManager getPreferenceManager ( ) { if ( ( preferenceManager ) == null ) { preferenceManager = new WorkbenchPreferenceManager ( WorkbenchPlugin . PREFERENCE_PAGE_CATEGORY_SEPARATOR ) ; PreferencePageRegistryReader registryReader = new PreferencePageRegistryReader ( getWorkbench ( ) ) ; registryReader . loadFromRegistry ( Platform . getExtensionRegistry ( ) ) ; <START_BUG> preferenceManager . addPagesAndGroups ( registryReader . getTopLevelNodes ( ) , registryReader . getTopLevelGroups ( ) ) ; <END_BUG> } return preferenceManager ; } public ISharedImages getSharedImages ( ) { } public IThemeRegistry getThemeRegistry ( ) { } public IViewRegistry getViewRegistry ( ) { } public IWorkbench getWorkbench ( ) { } protected void initializeDefaultPreferences ( IPreferenceStore store ) { } public static void log ( String message ) { } public static void log ( String message , Throwable t ) { } public static void log ( Class clazz , String methodName , Throwable t ) { } public static void log ( String message , IStatus status ) { } public void setWorkbench ( IWorkbench aWorkbench ) { } public DecoratorManager getDecoratorManager ( ) { } public void start ( BundleContext context ) throws Exception { } public Bundle [ ] getBundles ( ) { } public BundleContext getBundleContext ( ) { } public String getAppName ( ) { } public String getProductName ( ) { } public ImageDescriptor [ ] getWindowImages ( ) { } private ProductInfo getProductInfo ( ) { } public void stop ( BundleContext context ) throws Exception { } }

Fix:
preferenceManager . addPagesAndGroups ( registryReader . getTopLevelNodes ( ) , registryReader . getGroups ( ) ) ;