Buggy code:
protected WorkbenchWindow getUnprotectedWindow ( ) { } public ViewFactory getViewFactory ( ) { } public IViewReference [ ] getViewReferences ( ) { } public IViewPart [ ] getViews ( ) { } public IWorkbenchWindow getWorkbenchWindow ( ) { } public IWorkingSet getWorkingSet ( ) { } public void hideActionSet ( String actionSetID ) { } public void hideView ( IViewReference ref ) { } void refreshActiveView ( ) { } public void hideView ( IViewPart view ) { } private void hideView ( Perspective persp , IViewReference ref ) { } private void init ( WorkbenchWindow w , String layoutID , IAdaptable input ) throws WorkbenchException { } public boolean isPartVisible ( IWorkbenchPart part ) { } public boolean isEditorAreaVisible ( ) { } public boolean isFastView ( IViewReference ref ) { } public boolean isFixedLayout ( ) { } public IViewReference getActiveFastView ( ) { } protected boolean isSaveNeeded ( ) { } public boolean isZoomed ( ) { } private boolean needToZoomOut ( IWorkbenchPart part ) { } protected void onActivate ( ) { } protected void onDeactivate ( ) { } public void reuseEditor ( IReusableEditor editor , IEditorInput input ) { } public IEditorPart openEditor ( IEditorInput input , String editorID ) throws PartInitException { } public IEditorPart openEditor ( final IEditorInput input , final String editorID , final boolean activate ) throws PartInitException { } private IEditorPart busyOpenEditor ( IEditorInput input , String editorID , boolean activate ) throws PartInitException { } private void showEditor ( boolean activate , IEditorPart editor ) { } public boolean isEditorPinned ( IEditorPart editor ) { } private boolean partChangeAffectsZoom ( IWorkbenchPartReference ref ) { } public void removeFastView ( IViewReference ref ) { } public void removePartListener ( IPartListener l ) { } public void removePartListener ( IPartListener2 l ) { } public void removePropertyChangeListener ( IPropertyChangeListener listener ) { } public void removeSelectionListener ( ISelectionListener listener ) { } public void removeSelectionListener ( String partId , ISelectionListener listener ) { } public void removePostSelectionListener ( ISelectionListener listener ) { } public void removePostSelectionListener ( String partId , ISelectionListener listener ) { } public void requestActivation ( IWorkbenchPart part ) { } public void resetPerspective ( ) { } public IStatus restoreState ( IMemento memento , IPerspectiveDescriptor activeDescritor ) { } public boolean saveAllEditors ( boolean confirm ) { } protected boolean savePart ( ISaveablePart saveable , IWorkbenchPart part , boolean confirm ) { } public boolean saveEditor ( IEditorPart editor , boolean confirm ) { } public void savePerspective ( ) { } public void savePerspectiveAs ( IPerspectiveDescriptor newDesc ) { } public IStatus saveState ( IMemento memento ) { } private void setActivePart ( IWorkbenchPart newPart ) { } public void setEditorAreaVisible ( boolean showEditorArea ) { } private void setPerspective ( Perspective newPersp ) { } private void updateVisibility ( Perspective oldPersp , Perspective newPersp ) { } private void activateOldPart ( Perspective newPersp ) { } public void setPerspective ( final IPerspectiveDescriptor desc ) { } protected void resetToolBarLayout ( ) { } public void setWorkingSet ( IWorkingSet newWorkingSet ) { } public void showActionSet ( String actionSetID ) { } public IViewPart showView ( String viewID ) throws PartInitException { } public IViewPart showView ( final String viewID , final String secondaryID , final int mode ) throws PartInitException { } private boolean certifyMode ( int mode ) { } public void hideFastView ( ) { } public void toggleFastView ( IViewReference ref ) { } public void toggleZoom ( IWorkbenchPartReference ref ) { } public void updateActionBars ( ) { } private void updateTabList ( IWorkbenchPart part ) { PartSite site = ( ( PartSite ) ( part . getSite ( ) ) ) ; PartPane pane = site . getPane ( ) ; if ( pane instanceof ViewPane ) { ViewPane viewPane = ( ( ViewPane ) ( pane ) ) ; Control [ ] tabList = viewPane . getTabList ( ) ; if ( ( pane . getWindow ( ) ) instanceof DetachedWindow ) { viewPane . getControl ( ) . getShell ( ) . setTabList ( tabList ) ; } else { getClientComposite ( ) . setTabList ( tabList ) ; } } else if ( pane instanceof EditorPane ) { <START_BUG> EditorArea ea = ( ( EditorPane ) ( pane ) ) . getWorkbook ( ) . getEditorArea ( ) ; <END_BUG> ea . updateTabList ( ) ; getClientComposite ( ) . setTabList ( new Control [ ] { ea . getParent ( ) } ) ; } } public void updateTitle ( IViewReference ref ) { } void zoomOut ( ) { } private void zoomOutIfNecessary ( IWorkbenchPart part ) { } public int getEditorReuseThreshold ( ) { } public void setEditorReuseThreshold ( int openEditors ) { } public IEditorReference [ ] getSortedEditors ( ) { } protected IPerspectiveDescriptor [ ] getOpenedPerspectives ( ) { } protected IPerspectiveDescriptor [ ] getSortedPerspectives ( ) { } public IWorkbenchPartReference [ ] getSortedParts ( ) { } public IWorkbenchPartReference getReference ( IWorkbenchPart part ) { } private class ActivationList { List parts = new ArrayList ( ) ; void setActive ( IWorkbenchPart part ) { } void setActive ( IWorkbenchPartReference ref ) { } void add ( IWorkbenchPartReference ref ) { } IWorkbenchPart getActive ( ) { } IWorkbenchPart getPreviouslyActive ( ) { } private IWorkbenchPart getActive ( int start ) { } int indexOf ( IWorkbenchPart part ) { } boolean remove ( IWorkbenchPartReference ref ) { } private IEditorReference [ ] getEditors ( ) { } private IWorkbenchPartReference [ ] getParts ( ) { } IEditorPart getTopEditor ( ) { } } private class PerspectiveList { private List openedList ; private List usedList ; private Perspective active ; public PerspectiveList ( ) { } public Perspective [ ] getSortedPerspectives ( ) { } public boolean add ( Perspective perspective ) { } public Iterator iterator ( ) { } public Perspective [ ] getOpenedPerspectives ( ) { }

Fix:
EditorSashContainer ea = ( ( EditorPane ) ( pane ) ) . getWorkbook ( ) . getEditorArea ( ) ;