NullPointerException locks up Scythebill

Issue #191 resolved
Adam Winer created an issue

Original issue 191 created by adam_winer on 2014-12-04T17:01:58.000Z:

User reported this stack trace:

java.lang.NullPointerException at com.sun.java.swing.plaf.windows.WindowsTableHeaderUI$XPDefaultRenderer.paint(Unknown Source) at javax.swing.CellRendererPane.paintComponent(Unknown Source) at javax.swing.plaf.basic.BasicTableHeaderUI.paintCell(Unknown Source) at javax.swing.plaf.basic.BasicTableHeaderUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JViewport.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JLayeredPane.paint(Unknown Source) at javax.swing.JComponent.paintChildren(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source) at javax.swing.RepaintManager$PaintManager.paint(Unknown Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source) at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source) at sun.awt.SunGraphicsCallback.runComponents(Unknown Source) at java.awt.Container.paint(Unknown Source) at java.awt.Window.paint(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at javax.swing.RepaintManager$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.access$1100(Unknown Source) at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at javax.swing.JOptionPane.showOptionDialog(Unknown Source) at javax.swing.JOptionPane.showMessageDialog(Unknown Source) at .ui.util.Alerts.reportError(Alerts.java:198) at .app.App$1$1.uncaughtException(App.java:75) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.lang.ThreadGroup.uncaughtException(Unknown Source) at java.awt.EventDispatchThread.processException(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

... and had to use Task Manager to kill the app, losing data entered.

The specific scenario was that she'd left the computer for awhile, so I think what had happened is that the code to protect a user from not having an Alert more than once every 30 seconds didn't help - the alert was still up, so it kept firing, getting the app into a very unpleasant state.

Fix should be making sure that an error alert also won't show if the alert is already visible.

Comments (3)

  1. Log in to comment