Bug 82706 [Wizards] WizardDialog: code inconsistent
As long as WizardDialog.updateTitleBar() is a public method (should it be?) it's not a bad idea to check dialog state in all appropriate places. Now: public void updateTitleBar() { String s = null; if(currentPage != null) s = currentPage.getTitle(); if (s == null) s = ""; //$NON-NLS-1$ setTitle(s); if(currentPage != null) setTitleImage(currentPage.getImage()); updateDescriptionMessage(); updateMessage(); } It accurately checks that currentPage != null, but forgets to do the same before calling of updateDescriptionMessage() method wich works with currentPage without any checking. This can cause NPE (which happened to me :-)).
bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
if (!createdWizards.contains(wizard)) {
            createdWizards.add(wizard);
            
            nestedWizards.add(wizard);
            if (pageContainer != null) {
                	
                
                
                createPageControls();
                
                updateSizeForWizard(wizard);
                pageContainer.layout(true);
            }
        } else {
            
             
            
            int size = nestedWizards.size();
            if (size >= 2 && nestedWizards.get(size - 2) == wizard)
                nestedWizards.remove(size - 1);
            else
                
                nestedWizards.add(wizard);
        }
    }
    /* (non-Javadoc)
     * Method declared on IWizardContainer.
     */
    public void showPage(IWizardPage page) {
        if (page == null || page == currentPage) {