JDK-6741392 : libmawt.so crash at Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting+0x4f
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: x86
  • Submitted: 2008-08-26
  • Updated: 2011-01-19
  • Resolved: 2009-05-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u14 b02Fixed 7Fixed
Description
Steps to reproduce crash on my machine (Ubuntu Hardy 8.04, JDK both 1.6.0_10 and JDK 1.7.0 build 33)

1) Start NetBeans IDE 6.5 Beta with main window narrow, so that initially memory toolbar (showing heap image graph) is partly hidden by quick search box (text box on the right side of toolbar area)

2) Drag the handle of memory toolbar more behind quick search (and back and repeat if crash didn't appear for the first time)

No matter if JDK 1.6 or 1.7, crash always points to:
C  [libmawt.so+0x3b70f]  Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting+0x4f

------
Stack: [0xb11b6000,0xb13b7000],  sp=0xb13b52f0,  free space=2044k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libmawt.so+0x38560]
C  [libmawt.so+0x3b70f]  Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting+0x4f
j  com.sun.java.swing.plaf.gtk.GTKEngine.nativeFinishPainting([III)I+0
j  com.sun.java.swing.plaf.gtk.GTKEngine.finishPainting(Z)V+31
J 
com.sun.java.swing.plaf.gtk.GTKPainter.paintToolBarBackground(Ljavax/swing/plaf/synth/SynthContext;Ljava/awt/Graphics;IIII)V
J  javax.swing.plaf.synth.SynthToolBarUI.update(Ljava/awt/Graphics;Ljavax/swing/JComponent;)V
J  javax.swing.JComponent.paintComponent(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
J  org.openide.awt.Toolbar.paint(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
j  javax.swing.JComponent.paintToOffscreen(Ljava/awt/Graphics;IIIIII)V+41
j 
javax.swing.BufferStrategyPaintManager.paint(Ljavax/swing/JComponent;Ljavax/swing/JComponent;Ljava/awt/Graphics;IIII)Z+157
j  javax.swing.RepaintManager.paint(Ljavax/swing/JComponent;Ljavax/swing/JComponent;Ljava/awt/Graphics;IIII)V+52
J  javax.swing.JComponent._paintImmediately(IIII)V
j  javax.swing.JComponent.paintImmediately(IIII)V+83
J  javax.swing.RepaintManager.paintDirtyRegions(Ljava/util/Map;)V
J  javax.swing.RepaintManager.paintDirtyRegions()V
J  javax.swing.RepaintManager.prePaintDirtyRegions()V
J  javax.swing.RepaintManager$ProcessingRunnable.run()V
J  java.awt.event.InvocationEvent.dispatch()V
J  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
J  org.netbeans.core.TimableEventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
J  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stub
V  [libjvm.so+0x1c73b0]
V  [libjvm.so+0x2d6988]
V  [libjvm.so+0x1c6bc7]
V  [libjvm.so+0x1c6c7a]
V  [libjvm.so+0x243f35]
V  [libjvm.so+0x373a8e]
V  [libjvm.so+0x2d7e2e]
C  [libpthread.so.0+0x54fb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.java.swing.plaf.gtk.GTKEngine.nativeFinishPainting([III)I+0
j  com.sun.java.swing.plaf.gtk.GTKEngine.finishPainting(Z)V+31
J 
com.sun.java.swing.plaf.gtk.GTKPainter.paintToolBarBackground(Ljavax/swing/plaf/synth/SynthContext;Ljava/awt/Graphics;IIII)V
J  javax.swing.plaf.synth.SynthToolBarUI.update(Ljava/awt/Graphics;Ljavax/swing/JComponent;)V
J  javax.swing.JComponent.paintComponent(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
J  org.openide.awt.Toolbar.paint(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V
J  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V
j  javax.swing.JComponent.paintToOffscreen(Ljava/awt/Graphics;IIIIII)V+41
j 
javax.swing.BufferStrategyPaintManager.paint(Ljavax/swing/JComponent;Ljavax/swing/JComponent;Ljava/awt/Graphics;IIII)Z+157
j  javax.swing.RepaintManager.paint(Ljavax/swing/JComponent;Ljavax/swing/JComponent;Ljava/awt/Graphics;IIII)V+52
J  javax.swing.JComponent._paintImmediately(IIII)V
j  javax.swing.JComponent.paintImmediately(IIII)V+83
J  javax.swing.RepaintManager.paintDirtyRegions(Ljava/util/Map;)V
J  javax.swing.RepaintManager.paintDirtyRegions()V
J  javax.swing.RepaintManager.prePaintDirtyRegions()V
J  javax.swing.RepaintManager$ProcessingRunnable.run()V
J  java.awt.event.InvocationEvent.dispatch()V
J  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
J  org.netbeans.core.TimableEventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
J  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stub

For full information containing JVM crash logs please see

http://www.netbeans.org/issues/show_bug.cgi?id=144931
I don't know if I specified product category and subcategory correctly, please reassign if needed.

Also note that java GTK L&F must be active (which is evident from stack trace, but anyway)

Comments
EVALUATION There are requests of creating pix buffers of size MAX_INTx44 pixels. System can't create them and returns NULL. There is a fix to guard against crashes. Now it throws up an NPE to the java code. Needs more ivestigation why such requests come. Looks like a error in the layout code.
26-01-2009