i have a problem with java swing. i sometimes get this NullPointerException at random times(perhaps at some painting methode?): (the project has over 100 classes, so it makes no sense to post code here, furthermore i am interested on the right approach to find this kind of excp. that is not in my source code)

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTextUI$RootView.paint(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.paintSafely(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.paint(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(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._paintImmediately(Unknown Source) at javax.swing.JComponent.paintImmediately(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$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.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

now my question is, how/where should i start to search? i have no idea why this excp. appears. the excp. comes at random times, what makes it difficulter to locate, also.

so, has somebody an idea where to start (or it is perhaps a swing problem not caused by myself)?

有帮助吗?

解决方案

If the error happens occasionally and it is Swing related my first guess is always a Swing threading issue, e.g. modification or access of Swing components on another thread then the EDT. This might cause an exception in the EDT, as Swing is not thread safe (more info in the Concurrency in Swing tutorial).

A good start to check for Swing threading violations is to install a custom RepaintManager, as explained in this article

I outlined more approaches in my answer on a related question.

其他提示

When I have problems in determine which component raises an Exception, I put an ExceptionBreakpoint in eclipse and, when the exception appears I analyse the calls stack.

This helps me in problem determination but I use this technique in a Java EE context, I don't know if could be applied in a Swing one.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top