Buggy code:
public class EditorReference extends WorkbenchPartReference implements IEditorReference { private final EditorManager manager ; private IMemento editorMemento ; private boolean expectingInputChange = false ; private boolean reportedMalfunctioningEditor = false ; String name ; String factoryId ; IEditorInput restoredInput ; private IEditorReference [ ] multiEditorChildren = null ; public EditorReference ( EditorManager manager , IEditorInput input , EditorDescriptor desc ) { } EditorReference ( EditorManager manager , IMemento memento ) { } public EditorDescriptor getDescriptor ( ) { } private EditorDescriptor getDescriptor ( String id ) { } private void initListenersAndHandlers ( ) { } protected PartPane createPane ( ) { } public void pinStatusUpdated ( ) { } public String getFactoryId ( ) { } protected String computePartName ( ) { } public String getName ( ) { } public IEditorPart getEditor ( boolean restore ) { } protected void releaseReferences ( ) { } void setName ( String name ) { } public IMemento getMemento ( ) { } public IWorkbenchPage getPage ( ) { } protected void doDisposePart ( ) { } public IEditorInput getEditorInput ( ) throws PartInitException { } private IEditorInput getRestoredInput ( ) throws PartInitException { } public ImageDescriptor computeImageDescriptor ( ) { } protected IWorkbenchPart createPart ( ) { PartInitException exception = null ; IWorkbenchPart result = null ; try { result = createPartHelper ( ) ; } catch ( PartInitException e ) { exception = e ; } if ( exception != null ) { IStatus originalStatus = exception . getStatus ( ) ; IStatus logStatus = StatusUtil . newStatus ( originalStatus , NLS . bind ( "Unable<seq2seq4repair_space>to<seq2seq4repair_space>create<seq2seq4repair_space>editor<seq2seq4repair_space>ID<seq2seq4repair_space>{0}:<seq2seq4repair_space>{1}" , getId ( ) , originalStatus . getMessage ( ) ) ) ; WorkbenchPlugin . log ( logStatus ) ; IStatus displayStatus = StatusUtil . newStatus ( originalStatus , NLS . bind ( EditorManager_unableToCreateEditor , originalStatus . getMessage ( ) ) ) ; ErrorEditorPart part = new ErrorEditorPart ( displayStatus ) ; IEditorInput input ; try { input = getEditorInput ( ) ; } catch ( PartInitException e1 ) { input = new NullEditorInput ( ) ; } EditorPane pane = ( ( EditorPane ) ( getPane ( ) ) ) ; pane . createControl ( ( ( Composite ) ( manager . page . getEditorPresentation ( ) . getLayoutPart ( ) . getControl ( ) ) ) ) ; EditorDescriptor descr = getDescriptor ( ) ; EditorSite site = new EditorSite ( this , part , manager . page , descr ) ; <START_BUG> site . setActionBars ( new EditorActionBars ( manager . page , site , getId ( ) ) ) ; <END_BUG> try { part . init ( site , input ) ; } catch ( PartInitException e ) { WorkbenchPlugin . log ( e ) ; return null ; } Composite parent = ( ( Composite ) ( pane . getControl ( ) ) ) ; Composite content = new Composite ( parent , SWT . NONE ) ; content . setLayout ( new FillLayout ( ) ) ; try { part . createPartControl ( content ) ; } catch ( Exception e ) { content . dispose ( ) ; WorkbenchPlugin . log ( e ) ; return null ; } result = part ; } return result ; } protected void partPropertyChanged ( Object source , int propId ) { } public boolean setInput ( IEditorInput input ) { } private void reportMalfunction ( String string ) { } private IEditorPart createPartHelper ( ) throws PartInitException { } public boolean isMultiReference ( ) { } }

Fix:
site . setActionBars ( new EditorActionBars ( manager . page , site . getWorkbenchWindow ( ) , getId ( ) ) ) ;