Announcement Announcement Module
Collapse
No announcement yet.
AbstractWizardDialog throws nullPointerException when executing onNext Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • AbstractWizardDialog throws nullPointerException when executing onNext

    Hi there,

    I'm trying to create a wizard consisting of multiple pages.
    Here is part of the code (rest is not important):


    Code:
    public class CSVWizard extends AbstractWizard{
        public CSVWizard(){
                   
        }       
        @Override
        public void addPages(){
    
            CSVWizardPage1 csv1WizardPage = new CSVWizardPage1("page1");        
            CSVWizardPage2 csv2WizardPage = new CSVWizardPage2("page1");                
            addPage(csv1WizardPage);
            addPage(csv2WizardPage);         
            
        }
    
        @Override
        protected boolean onFinish() {
            return true;
        }
    }
    The pages load correctly (so the logs show), but when I push the button "next"-button
    a nullpointerexception is thrown:

    Code:
    [DEBUG,MessagesDialogExceptionHandler,AWT-EventQueue-0] Uncaught throwable handled
    java.lang.NullPointerException
    	at org.springframework.richclient.wizard.WizardDialog.onNext(WizardDialog.java:163)
    	at org.springframework.richclient.wizard.WizardDialog$1.doExecuteCommand(WizardDialog.java:100)
    	at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195)
    	at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:126)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    	at java.awt.Component.processMouseEvent(Component.java:6288)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6053)
    	at java.awt.Container.processEvent(Container.java:2041)
    	at java.awt.Component.dispatchEventImpl(Component.java:4651)
    	at java.awt.Container.dispatchEventImpl(Container.java:2099)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    	at java.awt.Container.dispatchEventImpl(Container.java:2085)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
    	at java.awt.EventQueue.access$000(EventQueue.java:84)
    	at java.awt.EventQueue$1.run(EventQueue.java:602)
    	at java.awt.EventQueue$1.run(EventQueue.java:600)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    	at java.awt.EventQueue$2.run(EventQueue.java:616)
    	at java.awt.EventQueue$2.run(EventQueue.java:614)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
    	at java.awt.Dialog$1.run(Dialog.java:1046)
    	at java.awt.Dialog$3.run(Dialog.java:1098)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.awt.Dialog.show(Dialog.java:1096)
    	at java.awt.Component.show(Component.java:1584)
    	at java.awt.Component.setVisible(Component.java:1536)
    	at java.awt.Window.setVisible(Window.java:842)
    	at java.awt.Dialog.setVisible(Dialog.java:986)
    	at gov.loc.repository.bagger.ui.handlers.CSVExecutor.execute(CSVExecutor.java:20)
    	at org.springframework.richclient.command.support.AbstractActionCommandExecutor.execute(AbstractActionCommandExecutor.java:124)
    	at org.springframework.richclient.command.TargetableActionCommand.doExecuteCommand(TargetableActionCommand.java:140)
    	at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195)
    	at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:126)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    	at java.awt.Component.processMouseEvent(Component.java:6288)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:6053)
    	at java.awt.Container.processEvent(Container.java:2041)
    	at java.awt.Component.dispatchEventImpl(Component.java:4651)
    	at java.awt.Container.dispatchEventImpl(Container.java:2099)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    	at java.awt.Container.dispatchEventImpl(Container.java:2085)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4481)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
    	at java.awt.EventQueue.access$000(EventQueue.java:84)
    	at java.awt.EventQueue$1.run(EventQueue.java:602)
    	at java.awt.EventQueue$1.run(EventQueue.java:600)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    	at java.awt.EventQueue$2.run(EventQueue.java:616)
    	at java.awt.EventQueue$2.run(EventQueue.java:614)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Looking at the source code of AbstractWizardDialog, the attribute currentPage is null.
    Is there a way to fix this? Or is my code wrong?

    Thanks in advance

  • #2
    Ok, meanwhile I solved the problem myself. This is what is did:

    Code:
    CSVWizardDialog wdialog = new CSVWizardDialog();
    wdialog.getDialog.setVisible(true);
    That way, the method showPage of AbstractWizard was never called for the first time, and currentPage
    remained empty.

    better:

    Code:
    CSVWizardDialog wdialog = new CSVWizardDialog();
    wdialog.openDialog();

    Comment

    Working...
    X