Hello Roman, here are two more NPEs resulting from JTree repainting. I got these while running a slide-show in Niffler under rather high system load (heap memory almost exhausted, nominal 30 msec pause between images, both tree and image canvas visible). Classpath cvs 2006.10.20 with jamvm on Linux x86. This might well be a result of the high system load with lots of garbage-collection. Still, it shouldn't happen, and might be worth checking: Exception during event dispatch: java.lang.NullPointerException at javax.swing.plaf.basic.BasicTreeUI.isLastChild(BasicTreeUI.java:1623) at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1572) at javax.swing.plaf.metal.MetalTreeUI.paint(MetalTreeUI.java:248) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:193) at javax.swing.JComponent.paintComponent(JComponent.java:2069) at javax.swing.JComponent.paint(JComponent.java:1834) at javax.swing.JViewport.paintSimple(JViewport.java:794) at javax.swing.JViewport.paintBackingStore(JViewport.java:850) at javax.swing.JViewport.paint(JViewport.java:495) at javax.swing.JComponent.paintChildren(JComponent.java:1969) at javax.swing.JComponent.paint(JComponent.java:1837) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2349) at javax.swing.JComponent.paintImmediately2(JComponent.java:2266) at javax.swing.JComponent.paintImmediately(JComponent.java:2105) at javax.swing.JComponent.paintImmediately(JComponent.java:2131) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:594) at javax.swing.RepaintManager$RepaintWorker.run(RepaintManager.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:200) at javax.swing.RepaintManager$RepaintWorkerEvent.dispatch(RepaintManager.java:114) at java.awt.EventQueue.dispatchEvent(EventQueue.java:609) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85) Exception during event dispatch: java.lang.NullPointerException at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2332) at javax.swing.JComponent.paint(JComponent.java:1794) at javax.swing.tree.DefaultTreeCellRenderer.paint(DefaultTreeCellRenderer.java:532) at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:189) at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:219) at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:237) at javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:3892) at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1603) at javax.swing.plaf.metal.MetalTreeUI.paint(MetalTreeUI.java:248) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:193) at javax.swing.JComponent.paintComponent(JComponent.java:2069) at javax.swing.JComponent.paint(JComponent.java:1834) at javax.swing.JViewport.paintSimple(JViewport.java:794) at javax.swing.JViewport.paintBackingStore(JViewport.java:861) at javax.swing.JViewport.paint(JViewport.java:495) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2349) at javax.swing.JComponent.paintImmediately2(JComponent.java:2266) at javax.swing.JComponent.paintImmediately(JComponent.java:2105) at javax.swing.JComponent.paintImmediately(JComponent.java:2131) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:594) at javax.swing.RepaintManager$RepaintWorker.run(RepaintManager.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:200) at javax.swing.RepaintManager$RepaintWorkerEvent.dispatch(RepaintManager.java:114) at java.awt.EventQueue.dispatchEvent(EventQueue.java:609) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
Yeah, these are similar to the NPEs that we have seen in JTree lately. I'll look at those and fix them.