Buggy code:
public class BasicNewProjectResourceWizard extends BasicNewResourceWizard implements IExecutableExtension { private WizardNewProjectCreationPage mainPage ; private WizardNewProjectReferencePage referencePage ; private IProject newProject ; private IConfigurationElement configElement ; private static String WINDOW_PROBLEMS_TITLE = ResourceMessages . getString ( "NewProject.errorOpeningWindow" ) ; private static final String FINAL_PERSPECTIVE = "finalPerspective" ; private static final String PREFERRED_PERSPECTIVES = "preferredPerspectives" ; public BasicNewProjectResourceWizard ( ) { } public void addPages ( ) { } private IProject createNewProject ( ) { } void createProject ( IProjectDescription description , IProject projectHandle , IProgressMonitor monitor ) throws CoreException , OperationCanceledException { } public IProject getNewProject ( ) { } public void init ( IWorkbench workbench , IStructuredSelection currentSelection ) { } protected void initializeDefaultPageImageDescriptor ( ) { } private static void openInNewWindow ( IPerspectiveDescriptor desc ) { } public boolean performFinish ( ) { } private static void replaceCurrentPerspective ( IPerspectiveDescriptor persp ) { } public void setInitializationData ( IConfigurationElement cfig , String propertyName , Object data ) { } protected void updatePerspective ( ) { } public static void updatePerspective ( IConfigurationElement configElement ) { if ( configElement == null ) return ; AbstractUIPlugin uiPlugin = ( ( AbstractUIPlugin ) ( Platform . getPlugin ( PLUGIN_ID ) ) ) ; String perspSetting = uiPlugin . getPreferenceStore ( ) . getString ( PROJECT_OPEN_NEW_PERSPECTIVE ) ; if ( perspSetting . equals ( NO_NEW_PERSPECTIVE ) ) return ; String finalPerspId = configElement . getAttribute ( BasicNewProjectResourceWizard . FINAL_PERSPECTIVE ) ; if ( finalPerspId == null ) return ; IPerspectiveRegistry reg = PlatformUI . getWorkbench ( ) . getPerspectiveRegistry ( ) ; IPerspectiveDescriptor finalPersp = reg . findPerspectiveWithId ( finalPerspId ) ; if ( finalPersp == null ) { <START_BUG> if ( RoleManager . getInstance ( ) . filterRoles ) { <END_BUG> RoleManager . getInstance ( ) . enableRoles ( finalPerspId ) ; finalPersp = reg . findPerspectiveWithId ( finalPerspId ) ; } if ( finalPersp == null ) { WorkbenchPlugin . log ( ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>find<seq2seq4repair_space>persective<seq2seq4repair_space>" + finalPerspId ) + "<seq2seq4repair_space>in<seq2seq4repair_space>BasicNewProjectResourceWizard.updatePerspective" ) ) ; return ; } } ArrayList preferredPerspIds = new ArrayList ( ) ; preferredPerspIds . add ( finalPerspId ) ; String preferred = configElement . getAttribute ( BasicNewProjectResourceWizard . PREFERRED_PERSPECTIVES ) ; if ( preferred != null ) { StringTokenizer tok = new StringTokenizer ( preferred , "<seq2seq4repair_space>\t\n\r\f," ) ; while ( tok . hasMoreTokens ( ) ) { preferredPerspIds . add ( tok . nextToken ( ) ) ; } } IWorkbenchWindow window = PlatformUI . getWorkbench ( ) . getActiveWorkbenchWindow ( ) ; if ( window != null ) { IWorkbenchPage page = window . getActivePage ( ) ; if ( page != null ) { IPerspectiveDescriptor currentPersp = page . getPerspective ( ) ; if ( ( currentPersp != null ) && ( preferredPerspIds . contains ( currentPersp . getId ( ) ) ) ) { return ; } } if ( ! ( BasicNewProjectResourceWizard . confirmPerspectiveSwitch ( window , finalPersp ) ) ) { return ; } } if ( perspSetting . equals ( OPEN_PERSPECTIVE_WINDOW ) ) { BasicNewProjectResourceWizard . openInNewWindow ( finalPersp ) ; return ; } if ( perspSetting . equals ( OPEN_PERSPECTIVE_REPLACE ) ) { BasicNewProjectResourceWizard . replaceCurrentPerspective ( finalPersp ) ; return ; } } private static boolean confirmPerspectiveSwitch ( IWorkbenchWindow window , IPerspectiveDescriptor finalPersp ) { } }

Fix:
if ( RoleManager . getInstance ( ) . isFiltering ( ) ) {