Menu

#21 NPE during startup

open
nobody
5
2007-06-20
2007-06-20
No

I've sometimes a NPE during application startup. I can't track it down to a problem in my code or somewhere in the JDK (using WinVista & JDK1.6). It seems to me that the dockingwindow tries to remove a tooltiptext that was never set. The exception hasn't occurred every time during startup (loading docks from ObjectOutputStream) but maybe in 2 of 3 startups.

This is the FULL stack trace.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ArrayTable.remove(ArrayTable.java:211)
at javax.swing.InputMap.remove(InputMap.java:121)
at javax.swing.ToolTipManager.unregisterComponent(ToolTipManager.java:391)
at javax.swing.JComponent.setToolTipText(JComponent.java:2958)
at net.infonode.docking.internalutil.InternalDockingUtil.updateButtons(Unknown Source)
at net.infonode.docking.WindowTab.updateTabButtons(Unknown Source)
at net.infonode.docking.DockingWindow.updateButtonVisibility(Unknown Source)
at net.infonode.docking.View.updateButtonVisibility(Unknown Source)
at net.infonode.docking.DockingWindow.updateButtonVisibility(Unknown Source)
at net.infonode.docking.TabWindow.doUpdateButtonVisibility(Unknown Source)
at net.infonode.docking.TabWindow.updateButtonVisibility(Unknown Source)
at net.infonode.docking.AbstractTabWindow$6.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Discussion

  • Stephen Bate

    Stephen Bate - 2008-07-11

    Logged In: YES
    user_id=362035
    Originator: NO

    I also see this NPE, but it happens every time. I'm running Java 6 on Win XP Pro and IDW 1.5.0. I'll attach the source code which reliably causes the problem on my system. Unfortunately, it's difficult for me to determine more details because the IDW library is provided without debug information so I can't step through the code execution in a debugger. I'd build the code with debug but the source code packaging doesn't include the build scripts and I haven't been able to locate any public SVN or CVS repository. How do your users typically diagnose bugs in the library?

     
  • Stephen Bate

    Stephen Bate - 2008-07-11

    Logged In: YES
    user_id=362035
    Originator: NO

    Apparently, I can only attach files for new issues, not for comments so I'll paste the code here (sorry about any strange formatting).

    package net.infonode.docking;

    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.SwingUtilities;

    import net.infonode.docking.theme.BlueHighlightDockingTheme;
    import net.infonode.docking.theme.DockingWindowsTheme;
    import net.infonode.docking.util.DockingUtil;
    import net.infonode.docking.util.ViewMap;
    import net.infonode.util.Direction;

    public class DockingExample1 {
    private static RootWindow rootWindow;

    public static void main(String[] args) throws Exception {
    View[] views = new View[5];
    ViewMap viewMap = new ViewMap();
    for (int i = 0; i < views.length; i++) {
    views[i] = new View("View " + i, null, new JLabel("This is view " + i + "!"));
    viewMap.addView(i, views[i]);
    }

    rootWindow = DockingUtil.createRootWindow(viewMap, true);

    rootWindow.setWindow(
    new SplitWindow(true, 0.4f,
    new SplitWindow(false, views[0],
    new SplitWindow(false, views[1], views[2])),
    new TabWindow(new DockingWindow[] {
    views[3], views[4] })));

    rootWindow.getWindowBar(Direction.DOWN).setEnabled(true);

    DockingWindowsTheme theme = new BlueHighlightDockingTheme();

    // Apply theme
    rootWindow.getRootWindowProperties().addSuperObject(
    theme.getRootWindowProperties());

    SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
    JFrame frame = new JFrame("Test");
    frame.getContentPane().add(rootWindow);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 500);
    frame.setVisible(true);
    }
    });
    }
    }

     
  • Stephen Bate

    Stephen Bate - 2008-07-11

    Logged In: YES
    user_id=362035
    Originator: NO

    Here's the full stack trace for my example application...

    Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ArrayTable.remove(ArrayTable.java:188)
    at javax.swing.ActionMap.remove(ActionMap.java:118)
    at javax.swing.ToolTipManager.unregisterComponent(ToolTipManager.java:394)
    at javax.swing.JComponent.setToolTipText(JComponent.java:2963)
    at net.infonode.docking.internalutil.InternalDockingUtil.updateButtons(Unknown Source)
    at net.infonode.docking.WindowTab.updateTabButtons(Unknown Source)
    at net.infonode.docking.DockingWindow.updateButtonVisibility(Unknown Source)
    at net.infonode.docking.View.updateButtonVisibility(Unknown Source)
    at net.infonode.docking.DockingWindow.updateButtonVisibility(Unknown Source)
    at net.infonode.docking.TabWindow.doUpdateButtonVisibility(Unknown Source)
    at net.infonode.docking.TabWindow.access$000(Unknown Source)
    at net.infonode.docking.TabWindow$4.tabAdded(Unknown Source)
    at net.infonode.tabbedpanel.TabbedPanel.fireAddedEvent(Unknown Source)
    at net.infonode.tabbedpanel.TabbedPanel.access$1300(Unknown Source)
    at net.infonode.tabbedpanel.TabbedPanel$4.componentAdded(Unknown Source)
    at net.infonode.gui.draggable.DraggableComponentBox.fireAddedEvent(Unknown Source)
    at net.infonode.gui.draggable.DraggableComponentBox.insertDraggableComponent(Unknown Source)
    at net.infonode.tabbedpanel.TabbedPanel.doInsertTab(Unknown Source)
    at net.infonode.tabbedpanel.TabbedPanel.insertTab(Unknown Source)
    at net.infonode.docking.AbstractTabWindow.addTabNoSelect(Unknown Source)
    at net.infonode.docking.TabWindow.addTabNoSelect(Unknown Source)
    at net.infonode.docking.AbstractTabWindow.addTab(Unknown Source)
    at net.infonode.docking.TabWindow.addTab(Unknown Source)
    at net.infonode.docking.AbstractTabWindow.addTab(Unknown Source)
    at net.infonode.docking.TabWindow.<init>(Unknown Source)
    at net.infonode.docking.TabWindow.<init>(Unknown Source)
    at net.infonode.docking.TabWindow.<init>(Unknown Source)
    at net.infonode.docking.DockingWindow.getContentWindow(Unknown Source)
    at net.infonode.docking.SplitWindow$3.run(Unknown Source)
    at net.infonode.docking.DockingWindow$8.run(Unknown Source)
    at net.infonode.docking.FocusManager.pinFocus(Unknown Source)
    at net.infonode.docking.DockingWindow.optimizeAfter(Unknown Source)
    at net.infonode.docking.SplitWindow.setWindows(Unknown Source)
    at net.infonode.docking.SplitWindow.<init>(Unknown Source)
    at net.infonode.docking.SplitWindow.<init>(Unknown Source)
    at net.infonode.docking.SplitWindow.<init>(Unknown Source)
    at net.infonode.docking.DockingExample1.main(DockingExample1.java:29)

     
  • Thoralf Rickert

    Thoralf Rickert - 2008-07-11

    Logged In: YES
    user_id=669570
    Originator: YES

    Do the initialization in the Event Thread (invokeLater) then this exception disappears.

     
  • Stephen Bate

    Stephen Bate - 2008-07-11

    Logged In: YES
    user_id=362035
    Originator: NO

    OK, thanks.

     
  • Kenny Joseph

    Kenny Joseph - 2008-08-06

    Logged In: YES
    user_id=2171295
    Originator: NO

    Is there any confirmation on a work-around to avoid this bug?

     
  • Kenny Joseph

    Kenny Joseph - 2008-08-06

    Logged In: YES
    user_id=2171295
    Originator: NO

    please disregard the previous post

     

Log in to post a comment.

MongoDB Logo MongoDB