protected void paintComponent(Graphics g) {
        if (ui != null) {
            Graphics scratchGraphics = (g == null) ? null : g.create();
            try {
                ui.update(scratchGraphics, this);
            }
            finally {
                scratchGraphics.dispose();                  // here is NPE when 
input 'g' is null
            }
        }
    }

uname -a
Linux linux-tp9a 2.6.25.20-0.4-default #1 SMP 2009-06-01 09:57:12 +0200 x86_64 
x86_64 x86_64 GNU/Linux

java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) Server VM (build 20.0-b11, mixed mode)

Stack trace

AWT-EventQueue-0@2851, priority=6, in group 'main', status: 'RUNNING'
          at javax.swing.JComponent.paintComponent(JComponent.java:755)
          at javax.swing.JComponent.paint(JComponent.java:1,029)
          at javax.swing.JComponent.paintChildren(JComponent.java:862)
          at javax.swing.JComponent.paint(JComponent.java:1,038)
          at javax.swing.JComponent.paintChildren(JComponent.java:862)
          at javax.swing.JComponent.paint(JComponent.java:1,038)
          at javax.swing.JComponent.paintChildren(JComponent.java:862)
          at javax.swing.JComponent.paint(JComponent.java:1,038)
          at javax.swing.JComponent.paintToOffscreen(JComponent.java:5,124)
          at 
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
          at javax.swing.RepaintManager.paint(RepaintManager.java:1,224)
          at javax.swing.JComponent._paintImmediately(JComponent.java:5,072)
          at javax.swing.JComponent.paintImmediately(JComponent.java:4,882)
          at 
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
          at 
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
          at 
javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
          at 
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
          at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
          at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
          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(AccessController.java:-1)
          at 
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
          at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
          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)

Reply via email to