Buggy code:
public IWorkbenchPage [ ] getPages ( ) { } public IPartService getPartService ( ) { } public KeyBindingService getKeyBindingService ( ) { } private void updateActiveActions ( ) { } protected Layout getLayout ( ) { } public IPerspectiveService getPerspectiveService ( ) { } protected Label getSeparator2 ( ) { } protected Label getSeparator3 ( ) { } public ISelectionService getSelectionService ( ) { } public boolean getShellActivated ( ) { } public ToolBarManager getShortcutBar ( ) { } ShortcutBarPartDragDrop getShortcutDND ( ) { } public boolean getShowShortcutBar ( ) { } public boolean getShowStatusLine ( ) { } public boolean getShowToolBar ( ) { } public StatusLineManager getStatusLineManager ( ) { } protected Control getToolBarControl ( ) { } public ToolBarManager getToolBarManager ( ) { } public IWorkbench getWorkbench ( ) { } public String getToolbarLabel ( String actionSetId ) { } private boolean hardClose ( ) { } public boolean isApplicationMenu ( String menuID ) { } boolean isWorkbenchCoolItemId ( String id ) { } void lockToolBar ( boolean lock ) { } public boolean okToClose ( ) { } public IWorkbenchPage openPage ( final String perspId , final IAdaptable input ) throws WorkbenchException { } public IWorkbenchPage openPage ( IAdaptable input ) throws WorkbenchException { } public void removePageListener ( IPageListener l ) { } public void removePerspectiveListener ( org . eclipse . ui . IPerspectiveListener l ) { } void removePerspectiveShortcut ( IPerspectiveDescriptor perspective , WorkbenchPage page ) { } private IStatus unableToRestorePage ( IMemento pageMem ) { } public IStatus restoreState ( IMemento memento , IPerspectiveDescriptor activeDescriptor ) { Assert . isNotNull ( getShell ( ) ) ; MultiStatus result = new MultiStatus ( PlatformUI . PLUGIN_ID , IStatus . OK , WorkbenchMessages . getString ( "WorkbenchWindow.problemsRestoringWindow" ) , null ) ; Rectangle displayBounds = getShell ( ) . getDisplay ( ) . getBounds ( ) ; Rectangle shellBounds = new Rectangle ( 0 , 0 , 0 , 0 ) ; Integer bigInt ; bigInt = memento . getInteger ( TAG_X ) ; shellBounds . x = ( bigInt == null ) ? 0 : bigInt . intValue ( ) ; bigInt = memento . getInteger ( TAG_Y ) ; shellBounds . y = ( bigInt == null ) ? 0 : bigInt . intValue ( ) ; bigInt = memento . getInteger ( TAG_WIDTH ) ; shellBounds . width = ( bigInt == null ) ? 0 : bigInt . intValue ( ) ; bigInt = memento . getInteger ( TAG_HEIGHT ) ; shellBounds . height = ( bigInt == null ) ? 0 : bigInt . intValue ( ) ; if ( ! ( shellBounds . isEmpty ( ) ) ) { if ( ! ( shellBounds . intersects ( displayBounds ) ) ) { Rectangle clientArea = getShell ( ) . getDisplay ( ) . getClientArea ( ) ; shellBounds . x = clientArea . x ; shellBounds . y = clientArea . y ; } getShell ( ) . setBounds ( shellBounds ) ; } if ( "true" . equals ( memento . getString ( TAG_MAXIMIZED ) ) ) { getShell ( ) . setMaximized ( true ) ; } if ( "true" . equals ( memento . getString ( TAG_MINIMIZED ) ) ) { } IWorkbenchPage newActivePage = null ; IMemento [ ] pageArray = memento . getChildren ( TAG_PAGE ) ; for ( int i = 0 ; i < ( pageArray . length ) ; i ++ ) { IMemento pageMem = pageArray [ i ] ; String strFocus = pageMem . getString ( TAG_FOCUS ) ; if ( ( strFocus == null ) || ( ( strFocus . length ( ) ) == 0 ) ) continue ; IMemento inputMem = pageMem . getChild ( TAG_INPUT ) ; String factoryID = inputMem . getString ( TAG_FACTORY_ID ) ; if ( factoryID == null ) { WorkbenchPlugin . log ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>restore<seq2seq4repair_space>page<seq2seq4repair_space>-<seq2seq4repair_space>no<seq2seq4repair_space>input<seq2seq4repair_space>factory<seq2seq4repair_space>ID." ) ; result . add ( unableToRestorePage ( pageMem ) ) ; continue ; } IAdaptable input ; try { UIStats . start ( RESTORE_WORKBENCH , "WorkbenchPageFactory" ) ; IElementFactory factory = WorkbenchPlugin . getDefault ( ) . getElementFactory ( factoryID ) ; if ( factory == null ) { <START_BUG> WorkbenchPlugin . log ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>restore<seq2seq4repair_space>pagee<seq2seq4repair_space>-<seq2seq4repair_space>cannot<seq2seq4repair_space>instantiate<seq2seq4repair_space>input<seq2seq4repair_space>factory:<seq2seq4repair_space>" + factoryID ) ) ; <END_BUG> result . add ( unableToRestorePage ( pageMem ) ) ; continue ; } input = factory . createElement ( inputMem ) ; if ( input == null ) { WorkbenchPlugin . log ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>restore<seq2seq4repair_space>page<seq2seq4repair_space>-<seq2seq4repair_space>cannot<seq2seq4repair_space>instantiate<seq2seq4repair_space>input<seq2seq4repair_space>element:<seq2seq4repair_space>" + factoryID ) ) ; result . add ( unableToRestorePage ( pageMem ) ) ; continue ; } } finally { UIStats . end ( RESTORE_WORKBENCH , "WorkbenchPageFactory" ) ; } WorkbenchPage newPage = null ; try { newPage = new WorkbenchPage ( this , input ) ; result . add ( newPage . restoreState ( pageMem , activeDescriptor ) ) ; pageList . add ( newPage ) ; firePageOpened ( newPage ) ; } catch ( WorkbenchException e ) { WorkbenchPlugin . log ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>restore<seq2seq4repair_space>perspective<seq2seq4repair_space>-<seq2seq4repair_space>constructor<seq2seq4repair_space>failed." ) ; result . add ( e . getStatus ( ) ) ; continue ; } if ( ( strFocus != null ) && ( ( strFocus . length ( ) ) > 0 ) ) newActivePage = newPage ; } if ( pageList . isEmpty ( ) ) { try { IContainer root = WorkbenchPlugin . getPluginWorkspace ( ) . getRoot ( ) ; String defPerspID = workbench . getPerspectiveRegistry ( ) . getDefaultPerspective ( ) ; WorkbenchPage newPage = new WorkbenchPage ( this , defPerspID , root ) ; pageList . add ( newPage ) ; firePageOpened ( newPage ) ; } catch ( WorkbenchException e ) { WorkbenchPlugin . log ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>default<seq2seq4repair_space>perspective<seq2seq4repair_space>-<seq2seq4repair_space>constructor<seq2seq4repair_space>failed." ) ; result . add ( e . getStatus ( ) ) ; String productName = workbench . getConfigurationInfo ( ) . getAboutInfo ( ) . getProductName ( ) ; if ( productName == null ) { productName = "" ; }

Fix:
WorkbenchPlugin . log ( ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>restore<seq2seq4repair_space>page<seq2seq4repair_space>-<seq2seq4repair_space>cannot<seq2seq4repair_space>instantiate<seq2seq4repair_space>input<seq2seq4repair_space>factory:<seq2seq4repair_space>" + factoryID ) ) ;