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 showInPartIds ; private IViewReference activeFastView ; private IViewReference previousActiveFastView ; private IMemento memento ; protected PerspectivePresentation presentation ; private static final String VERSION_STRING = "0.016" ; private static final int SASH_SIZE = 3 ; private static final int FASTVIEW_HIDE_STEPS = 5 ; private static final long FASTVIEW_HIDE_MIN_DURATION = 50 ; private static final long FASTVIEW_HIDE_MAX_DURATION = 250 ; private static final RGB RGB_COLOR1 = new RGB ( 132 , 130 , 132 ) ; private static final RGB RGB_COLOR2 = new RGB ( 143 , 141 , 138 ) ; private static final RGB RGB_COLOR3 = new RGB ( 171 , 168 , 165 ) ; private Color borderColor1 ; private Color borderColor2 ; private Color borderColor3 ; private Map mapFastViewToWidthRatio = new HashMap ( ) ; private Sash fastViewSash ; private CoolBarLayout toolBarLayout ; private int reuseEditors = - 1 ; Listener resizeListener = new Listener ( ) { public void handleEvent ( Event event ) { } } ; private PaintListener paintListener = new PaintListener ( ) { public void paintControl ( PaintEvent event ) { } } ; private SelectionAdapter selectionListener = new SelectionAdapter ( ) { public void widgetSelected ( SelectionEvent e ) { } } ; private String oldPartID = null ; private boolean shouldHideEditorsOnActivate = false ; public Perspective ( PerspectiveDescriptor desc , WorkbenchPage page ) throws WorkbenchException { } protected Perspective ( WorkbenchPage page ) throws WorkbenchException { } public void addFastView ( IViewReference ref ) { } public boolean bringToTop ( IViewReference ref ) { } public boolean canCloseView ( IViewPart view ) { } private void checkDragLimit ( SelectionEvent event ) { } public boolean containsView ( IViewPart view ) { } private void createInitialActionSets ( List stringList ) { } private void createPresentation ( PerspectiveDescriptor persp ) throws WorkbenchException { } public void dispose ( ) { } public IViewReference findView ( String id ) { } 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 ArrayList getShowViewActionIds ( ) { } public CoolBarLayout getToolBarLayout ( ) { } IViewReference getPreviousActiveFastView ( ) { } 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 ) { } 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 ( ) { PerspectiveExtensionReader reader = new PerspectiveExtensionReader ( ) ; reader . setIncludeOnlyTags ( new String [ ] { PerspectiveExtensionReader . TAG_SHOW_IN_PART } ) ; PageLayout layout = new PageLayout ( ) ; <START_BUG> reader . extendLayout ( descriptor . getId ( ) , layout ) ; <END_BUG> return layout . getShowInPartIds ( ) ; } 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 setToolBarLayout ( CoolBarLayout layout ) { } public void showActionSet ( String id ) { } protected void showEditorArea ( ) { } private void setEditorAreaVisible ( boolean visible ) { } void showFastView ( IViewReference ref ) { } public void updateFastViewSashBounds ( Rectangle partBounds ) { } public IViewPart showView ( String viewID ) throws PartInitException { } public void toggleFastView ( IViewReference ref ) { } public String getOldPartID ( ) { } public void setOldPartID ( String oldPartID ) { } void moveFastView ( IViewReference draggedView , IViewReference destinationView , boolean placeAtEnd ) { } }

Fix:
reader . extendLayout ( descriptor . getOriginalId ( ) , layout ) ;