Buggy code:
public class WorkbenchPage implements IWorkbenchPage { private WorkbenchWindow window ; private IAdaptable input ; private IWorkingSet workingSet ; private Composite composite ; private ControlListener resizeListener ; private IWorkbenchPart activePart ; private WorkbenchPage . ActivationList activationList = new WorkbenchPage . ActivationList ( ) ; private IEditorPart lastActiveEditor ; private EditorManager editorMgr ; private EditorPresentation editorPresentation ; private PartListenerList partListeners = new PartListenerList ( ) ; private ListenerList propertyChangeListeners = new ListenerList ( ) ; private PageSelectionService selectionService = new PageSelectionService ( this ) ; private IActionBars actionBars ; private ViewFactory viewFactory ; private WorkbenchPage . PerspectiveList perspList = new WorkbenchPage . PerspectiveList ( ) ; private Listener mouseDownListener ; private PerspectiveDescriptor deferredActivePersp ; private NavigationHistory navigationHistory = new NavigationHistory ( this ) ; private IPropertyChangeListener propertyChangeListener ; private WorkbenchPage . ActionSwitcher actionSwitcher = new WorkbenchPage . ActionSwitcher ( ) ; private class ActionSwitcher { private IWorkbenchPart activePart ; private org . eclipse . ui . IEditorPart topEditor ; private ArrayList actionSets = new ArrayList ( ) ; public void updateActivePart ( IWorkbenchPart newPart ) { } public void updateTopEditor ( IEditorPart newEditor ) { } private void activateContributions ( IWorkbenchPart part , boolean enable ) { } private void deactivateContributions ( IWorkbenchPart part , boolean remove ) { } private ArrayList calculateActionSets ( IWorkbenchPart part , IEditorPart editor ) { } private boolean updateActionSets ( ArrayList newActionSets ) { } } public WorkbenchPage ( WorkbenchWindow w , String layoutID , IAdaptable input ) throws WorkbenchException { } public WorkbenchPage ( WorkbenchWindow w , IAdaptable input ) throws WorkbenchException { } public void activate ( IWorkbenchPart part ) { if ( ! ( certifyPart ( part ) ) ) return ; if ( ( isZoomed ( ) ) && ( partChangeAffectsZoom ( part ) ) ) zoomOut ( ) ; <START_BUG> PartPane pane = ( ( PartSite ) ( part . getSite ( ) ) ) . getPane ( ) ; <END_BUG> if ( part instanceof MultiEditor ) { part = ( ( MultiEditor ) ( part ) ) . getActiveEditor ( ) ; } if ( ( window . getActivePage ( ) ) == ( this ) ) { bringToTop ( part ) ; setActivePart ( part ) ; } else { activationList . setActive ( part ) ; activePart = part ; } } private void activatePart ( final IWorkbenchPart part ) { } public void addFastView ( IViewPart view ) { } public void addPartListener ( IPartListener l ) { } public void addPropertyChangeListener ( IPropertyChangeListener listener ) { } public void addSelectionListener ( ISelectionListener listener ) { } public void addSelectionListener ( String partId , ISelectionListener listener ) { } public void addPostSelectionListener ( ISelectionListener listener ) { } public void addPostSelectionListener ( String partId , ISelectionListener listener ) { } public void bringToTop ( IWorkbenchPart part ) { } private void busyResetPerspective ( ) { } private void busySetPerspective ( IPerspectiveDescriptor desc ) { } private IViewPart busyShowView ( String viewID , boolean activate ) throws PartInitException { } private boolean certifyPart ( IWorkbenchPart part ) { } public boolean close ( ) { } public boolean closeAllSavedEditors ( ) { } public boolean closeAllEditors ( boolean save ) { } public boolean closeEditor ( IEditorReference editorRef , boolean save ) { } public boolean closeEditor ( IEditorPart editor , boolean save ) { } void closeAllPerspectives ( boolean save ) { } void closePerspective ( IPerspectiveDescriptor desc , boolean save ) { } void closePerspective ( Perspective persp , boolean save ) { } private void createClientComposite ( ) { } private Perspective createPerspective ( PerspectiveDescriptor desc ) { } public void openTracker ( ViewPane pane ) { } protected void addPart ( IWorkbenchPartReference ref ) { } protected void removePart ( IWorkbenchPartReference ref ) { } private void deactivateLastEditor ( ) { } private void deactivatePart ( IWorkbenchPart part ) { } private void disposePart ( final IWorkbenchPart part ) { } public void dispose ( ) { } private void disposePerspective ( Perspective persp ) { } public INavigationHistory getNavigationHistory ( ) { } public boolean editActionSets ( ) { } public Perspective findPerspective ( IPerspectiveDescriptor desc ) { } public IViewPart findView ( String id ) { } private void firePartActivated ( IWorkbenchPart part ) { } private void firePartBroughtToTop ( IWorkbenchPart part ) { } private void firePartClosed ( IWorkbenchPart part ) { } private void firePartDeactivated ( IWorkbenchPart part ) { } public void firePartOpened ( IWorkbenchPart part ) { } private void firePropertyChange ( String changeId , Object oldValue , Object newValue ) { } public IActionBars getActionBars ( ) { } public IActionSetDescriptor [ ] getActionSets ( ) { } public IEditorPart getActiveEditor ( ) { } public IWorkbenchPart getActivePart ( ) { } Perspective getActivePerspective ( ) { } public Composite getClientComposite ( ) { } private EditorManager getEditorManager ( ) { } public EditorPresentation getEditorPresentation ( ) { } public IEditorPart [ ] getEditors ( ) { } public IEditorPart [ ] getDirtyEditors ( ) { } public IEditorPart findEditor ( IEditorInput input ) { } public IEditorReference [ ] getEditorReferences ( ) { } public IViewPart [ ] getFastViews ( ) { } public IAdaptable getInput ( ) { } public String getLabel ( ) { } protected Listener getMouseDownListener ( ) { } public ArrayList getNewWizardActionIds ( ) { } public IPerspectiveDescriptor getPerspective ( ) { } public ArrayList getPerspectiveActionIds ( ) { } public ISelection getSelection ( ) { } public ISelection getSelection ( String partId ) { } public ArrayList getShowViewActionIds ( ) { } public CoolBarLayout getToolBarLayout ( ) { } protected WorkbenchWindow getUnprotectedWindow ( ) { } public ViewFactory getViewFactory ( ) { } public IViewReference [ ] getViewReferences ( ) { } public IViewPart [ ] getViews ( ) { } public IWorkbenchWindow getWorkbenchWindow ( ) { } public IWorkingSet getWorkingSet ( ) { } public void hideActionSet ( String actionSetID ) { }

Fix:
( ( PartSite ) ( part . getSite ( ) ) ) . getPane ( ) ;