Buggy code:
public class Perspective { private PerspectiveDescriptor descriptor ; protected WorkbenchPage page ; protected LayoutPart editorArea ; private PartPlaceholder editorHolder ; private ViewFactory viewFactory ; private ArrayList visibleActionSets ; private ArrayList alwaysOnActionSets ; private ArrayList alwaysOffActionSets ; private ArrayList newWizardActionIds ; private ArrayList showViewActionIds ; private ArrayList perspectiveActionIds ; private ArrayList fastViews ; private ArrayList fixedViews ; private boolean fixed ; private ArrayList showInPartIds ; private HashMap showInTimes = new HashMap ( ) ; private IViewReference activeFastView ; private IViewReference previousActiveFastView ; private IMemento memento ; protected PerspectivePresentation presentation ; private static final String VERSION_STRING = "0.016" ; private FastViewPane fastViewPane = new FastViewPane ( ) ; private static final int FASTVIEW_HIDE_STEPS = 5 ; private Map mapFastViewToWidthRatio = new HashMap ( ) ; private String oldPartID = null ; private boolean shouldHideEditorsOnActivate = false ; public Perspective ( PerspectiveDescriptor desc , WorkbenchPage page ) throws WorkbenchException { } protected Perspective ( WorkbenchPage page ) throws WorkbenchException { } private final ICompoundCommandHandlerService compoundCommandHandlerService = CommandHandlerServiceFactory . getCompoundCommandHandlerService ( ) ; private final ICompoundContextActivationService compoundContextActivationService = ContextActivationServiceFactory . getCompoundContextActivationService ( ) ; public ICompoundCommandHandlerService getCompoundCommandHandlerService ( ) { } public ICompoundContextActivationService getCompoundContextActivationService ( ) { } public void addFastView ( IViewReference ref ) { } public boolean bringToTop ( IViewReference ref ) { } public boolean canCloseView ( IViewPart view ) { } public boolean containsView ( IViewPart view ) { } private void createInitialActionSets ( List stringList ) { } private void createPresentation ( PerspectiveDescriptor persp ) throws WorkbenchException { } public void dispose ( ) { } public IViewReference findView ( String viewId ) { } public IViewReference findView ( String id , String secondaryId ) { } public IActionSetDescriptor [ ] getActionSets ( ) { } private Composite getClientComposite ( ) { } public IPerspectiveDescriptor getDesc ( ) { } Rectangle getFastViewBounds ( IViewReference ref ) { } public IViewReference [ ] getFastViews ( ) { } public ArrayList getNewWizardActionIds ( ) { } private ViewPane getPane ( IViewReference ref ) { } public ArrayList getPerspectiveActionIds ( ) { } public PerspectivePresentation getPresentation ( ) { } private float getFastViewWidthRatio ( String id ) { } public ArrayList getShowInPartIds ( ) { } public long getShowInTime ( String partId ) { } public ArrayList getShowViewActionIds ( ) { } private ViewFactory getViewFactory ( ) { } public void openTracker ( ViewPane pane ) { } public IViewReference [ ] getViewReferences ( ) { } public void hideActionSet ( String id ) { } protected void hideEditorArea ( ) { } private void hideFastView ( IViewReference ref , int steps ) { } void hideFastViewSash ( ) { } public boolean hideView ( IViewReference ref ) { } protected boolean isEditorAreaVisible ( ) { } public boolean isFastView ( IViewReference ref ) { } public boolean isFixedView ( IViewReference ref ) { } public boolean isFixedLayout ( ) { } private void loadCustomPersp ( PerspectiveDescriptor persp ) { } private void unableToOpenPerspective ( PerspectiveDescriptor persp , IStatus status ) { } private void loadPredefinedPersp ( PerspectiveDescriptor persp ) throws WorkbenchException { } protected void onActivate ( ) { } protected void onDeactivate ( ) { } public void partActivated ( IWorkbenchPart activePart ) { } public void performedShowIn ( String partId ) { } public void removeFastView ( IViewReference ref ) { } public IStatus restoreState ( IMemento memento ) { } private IStatus createReferences ( IMemento [ ] views ) { } public IStatus restoreState ( ) { } private ArrayList getShowInIdsFromRegistry ( ) { } public void saveDesc ( ) { } public void saveDescAs ( IPerspectiveDescriptor desc ) { } public IStatus saveState ( IMemento memento ) { } private IStatus saveState ( IMemento memento , PerspectiveDescriptor p , boolean saveInnerViewState ) { } public void setActionSets ( IActionSetDescriptor [ ] newArray ) { } public IViewReference getActiveFastView ( ) { } void setActiveFastView ( IViewReference ref , int steps ) { } void setActiveFastView ( IViewReference ref ) { } private void setAllPinsVisible ( boolean visible ) { } private void setFastViewIconSelection ( IViewReference ref , boolean selected ) { } public void setNewWizardActionIds ( ArrayList newList ) { } public void setPerspectiveActionIds ( ArrayList list ) { } public void setShowInPartIds ( ArrayList list ) { } public void setShowViewActionIds ( ArrayList list ) { } public void showActionSet ( String id ) { } protected void showEditorArea ( ) { } private void setEditorAreaVisible ( boolean visible ) { } void showFastView ( IViewReference ref ) { if ( ( ref . getPart ( true ) ) == null ) return ; ViewPane pane = getPane ( ref ) ; saveFastViewWidthRatio ( ) ; <START_BUG> int side = ( ( WorkbenchWindow ) ( page . getWorkbenchWindow ( ) ) ) . getFastViewBarSide ( ) ; <END_BUG> fastViewPane . showView ( getClientComposite ( ) , pane , side , getFastViewWidthRatio ( ref . getId ( ) ) ) ; setFastViewIconSelection ( ref , true ) ; } private void saveFastViewWidthRatio ( ) { } public IViewPart showView ( String viewId , String secondaryId ) throws PartInitException { } public void toggleFastView ( IViewReference ref ) { } public String getOldPartID ( ) { } public void setOldPartID ( String oldPartID ) { } void moveFastView ( IViewReference draggedView , IViewReference destinationView ) { } void addActionSet ( IActionSetDescriptor newDesc ) { } void removeActionSet ( String id ) { } }

Fix:
int side = ( ( WorkbenchWindow ) ( page . getWorkbenchWindow ( ) ) ) . getFastViewBar ( ) . getViewSide ( ref ) ;