Buggy code:
public class EditorWorkbook extends LayoutPart implements ILayoutContainer { private EditorArea editorArea ; public static EditorWorkbook newEditorWorkbook ( EditorArea editorArea , WorkbenchPage page ) { } private WorkbenchPage page ; private DefaultStackPresentationSite presentationSite = new DefaultStackPresentationSite ( ) { public void selectPart ( IPresentablePart toSelect ) { } public void setPresentation ( StackPresentation newPresentation ) { } public void setState ( int newState ) { } public void dragStart ( IPresentablePart beingDragged , Point initialLocation , boolean keyboard ) { } public void dragStart ( Point initialLocation , boolean keyboard ) { } public void close ( IPresentablePart part ) { } public boolean isCloseable ( IPresentablePart part ) { } public boolean isMoveable ( IPresentablePart part ) { } } ; private LayoutPart current ; private LayoutPart inactiveCurrent ; private boolean active = false ; private int flags ; private List children = new ArrayList ( 3 ) ; private class SystemMenuContribution extends ContributionItem { private SystemMenuClose systemMenuClose ; private SystemMenuCloseAllEditors systemMenuCloseAllEditors ; private SystemMenuCloseOtherEditors systemMenuCloseOtherEditors ; private SystemMenuMaximize systemMenuMaximize ; private SystemMenuMoveEditor systemMenuMoveEditor ; private SystemMenuPinEditor systemMenuPinEditor ; private SystemMenuRestore systemMenuRestore ; private SystemMenuSize systemMenuSize ; SystemMenuContribution ( IStackPresentationSite stackPresentationSite , EditorPane editorPane ) { } public void fill ( Menu menu , int index ) { } public void dispose ( ) { } } private IContributionItem systemMenuContribution ; public EditorWorkbook ( EditorArea editorArea , WorkbenchPage page ) { } private void presentationSelectionChanged ( IPresentablePart newSelection ) { } protected void close ( IPresentablePart part ) { } private LayoutPart getPaneFor ( IPresentablePart part ) { } public EditorWorkbook ( EditorArea editorArea , WorkbenchPage page , int flags ) { } private void add ( LayoutPart newChild , int idx ) { } public void add ( LayoutPart child ) { } public boolean allowsBorder ( ) { } private LayoutPart getLayoutPart ( IPresentablePart toFind ) { } private IPresentablePart getPresentablePartAtIndex ( int idx ) { } private List getPresentableParts ( ) { } public void createControl ( Composite parent ) { } private void showPart ( LayoutPart part , IPresentablePart position ) { } public void dispose ( ) { } private StackPresentation getPresentation ( ) { } public void openTracker ( LayoutPart part ) { } public Rectangle getBounds ( ) { } public int getMinimumHeight ( ) { } public LayoutPart [ ] getChildren ( ) { } public Control getControl ( ) { } public int getItemCount ( ) { } public Composite getParent ( ) { } public int getSelection ( ) { } public LayoutPart getVisiblePart ( ) { } public int indexOf ( LayoutPart item ) { } private int indexOf ( IPresentablePart part ) { } public void remove ( LayoutPart child ) { } public void reparent ( Composite newParent ) { } public void replace ( LayoutPart oldChild , LayoutPart newChild ) { } public IStatus restoreState ( IMemento memento ) { } public IStatus saveState ( IMemento memento ) { } private void hidePart ( LayoutPart part ) { } public void setBounds ( Rectangle r ) { } public void setSelection ( int index ) { } private void setSelection ( LayoutPart part ) { } public boolean isDragAllowed ( Point point ) { } public void setActive ( boolean activeState ) { } public void showBusy ( PartPane partPane , boolean busy ) { } public void setContainer ( ILayoutContainer container ) { } private void setState ( int newState ) { } public void setZoomed ( boolean isZoomed ) { } private void updateControlBounds ( ) { } private void forceLayout ( ) { } public void findSashes ( LayoutPart part , ViewPane . Sashes sashes ) { } private void updateContainerVisibleTab ( ) { } public boolean resizesVertically ( ) { } public boolean allowsAutoFocus ( ) { } private void updateSystemMenu ( ) { } public Control [ ] getTabList ( ) { } public void removeAll ( ) { } public boolean isActiveWorkbook ( ) { } public void becomeActiveWorkbook ( boolean hasFocus ) { } public void tabFocusHide ( ) { if ( ( getControl ( ) ) == null ) return ; <START_BUG> setActive ( isActiveWorkbook ( ) ) ; <END_BUG> } public void tabFocusShow ( boolean hasFocus ) { } public EditorPane [ ] getEditors ( ) { } public EditorArea getEditorArea ( ) { } public EditorPane getVisibleEditor ( ) { } public void setVisibleEditor ( EditorPane editorPane ) { } public void showVisibleEditor ( ) { } }

Fix:
setActive ( false ) ;