-
Bug
-
Resolution: Fixed
-
P2
-
5.0
-
b81
-
x86
-
linux
FULL PRODUCT VERSION :
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
FULL OS VERSION :
Linux meliboea 2.6.11.12 #1 SMP Thu Jun 16 19:33:00 CEST 2005 i686 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
VM segfaults on call to drawString of a Graphics previously rotated by NaN.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Yes
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run attached Java class.
EXPECTED VERSUS ACTUAL BEHAVIOR :
An empty frame with no display should open.
On Linux, the attached code causes a SIGSEGV.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xb1e202c4, pid=23011, tid=2982325168
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode, sharing)
# Problematic frame:
# C [libfontmanager.so+0x462c4] Java_sun_font_FileFont_getGlyphImage+0x174
#
--------------- T H R E A D ---------------
Current thread (0x08164890): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=23022]
siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000014
Registers:
EAX=0x00000000, EBX=0xb1e565a8, ECX=0xffffffe0, EDX=0xb23005f0
ESP=0xb1c29ebc, EBP=0xb1c29f44, ESI=0x90bf5018, EDI=0x08164890
EIP=0xb1e202c4, CR2=0x00000014, EFLAGS=0x00010246
Top of Stack: (sp=0xb1c29ebc)
0xb1c29ebc: 3b2d2fd5 00000025 00000000 00000000
0xb1c29ecc: 00000000 0000000b b1c29f10 9145ea40
0xb1c29edc: b1c29f3c b78933fa 08164e24 b1c29efc
0xb1c29eec: 08164890 01000000 08164e2c 08164e30
0xb1c29efc: 00000000 08164e24 08164890 b1c29f94
0xb1c29f0c: b27a8bc8 00000000 08164890 3b2d2fb9
0xb1c29f1c: 84eb4e48 010b84eb 0817c7e0 0816a2f8
0xb1c29f2c: 0817d060 00000000 0817d060 00000000
Instructions: (pc=0xb1e202c4)
0xb1e202b4: c0 1c 89 04 24 e8 6a f8 fb ff 89 45 ec 8b 45 ec
0xb1e202c4: c7 40 14 00 00 00 00 8b 55 ec 8b 45 dc 66 89 42
Stack: [0xb1bab000,0xb1c2b000), sp=0xb1c29ebc, free space=507k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libfontmanager.so+0x462c4] Java_sun_font_FileFont_getGlyphImage+0x174
j sun.font.FileFont.getGlyphImage(JI)J+0
j sun.font.FileFontStrike.getSlot0GlyphImagePtrs([I[JI)I+108
j sun.font.CompositeStrike.getGlyphImagePtrs([I[JI)V+12
j sun.font.GlyphList.mapChars(Lsun/java2d/loops/FontInfo;I)Z+37
j sun.font.GlyphList.setFromString(Lsun/java2d/loops/FontInfo;Ljava/lang/String;FF)Z+47
j sun.java2d.pipe.GlyphListPipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+148
j sun.java2d.pipe.ValidatePipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+17
j sun.java2d.SunGraphics2D.drawString(Ljava/lang/String;II)V+25
j Segfault.paint(Ljava/awt/Graphics;)V+17
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V+174
j javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z+131
j javax.swing.JComponent._paintImmediately(IIII)V+739
j javax.swing.JComponent.paintImmediately(IIII)V+83
j javax.swing.RepaintManager.paintDirtyRegions()V+314
j javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V+32
j java.awt.event.InvocationEvent.dispatch()V+47
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26
j java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z+200
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
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+0x1688ec]
V [libjvm.so+0x257378]
V [libjvm.so+0x168145]
V [libjvm.so+0x1681de]
V [libjvm.so+0x1d5495]
V [libjvm.so+0x2b030d]
V [libjvm.so+0x257e88]
C [libpthread.so.0+0x4b63]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.font.FileFont.getGlyphImage(JI)J+0
j sun.font.FileFontStrike.getSlot0GlyphImagePtrs([I[JI)I+108
j sun.font.CompositeStrike.getGlyphImagePtrs([I[JI)V+12
j sun.font.GlyphList.mapChars(Lsun/java2d/loops/FontInfo;I)Z+37
j sun.font.GlyphList.setFromString(Lsun/java2d/loops/FontInfo;Ljava/lang/String;FF)Z+47
j sun.java2d.pipe.GlyphListPipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+148
j sun.java2d.pipe.ValidatePipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+17
j sun.java2d.SunGraphics2D.drawString(Ljava/lang/String;II)V+25
j Segfault.paint(Ljava/awt/Graphics;)V+17
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V+174
j javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z+131
j javax.swing.JComponent._paintImmediately(IIII)V+739
j javax.swing.JComponent.paintImmediately(IIII)V+83
j javax.swing.RepaintManager.paintDirtyRegions()V+314
j javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V+32
j java.awt.event.InvocationEvent.dispatch()V+47
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26
j java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z+200
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
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
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0805b600 JavaThread "DestroyJavaVM" [_thread_blocked, id=23011]
=>0x08164890 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=23022]
0x08164298 JavaThread "AWT-Shutdown" [_thread_blocked, id=23021]
0x08158f40 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=23020]
0x0814dd88 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=23019]
0x0809f170 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=23017]
0x0809dcb0 JavaThread "CompilerThread0" daemon [_thread_blocked, id=23016]
0x0809cd38 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=23015]
0x080999d8 JavaThread "Finalizer" daemon [_thread_blocked, id=23014]
0x08097b68 JavaThread "Reference Handler" daemon [_thread_blocked, id=23013]
Other Threads:
0x08095090 VMThread [id=23012]
0x080b9ed0 WatcherThread [id=23018]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 576K, used 144K [0x88b20000, 0x88bc0000, 0x89000000)
eden space 512K, 15% used [0x88b20000, 0x88b34278, 0x88ba0000)
from space 64K, 100% used [0x88ba0000, 0x88bb0000, 0x88bb0000)
to space 64K, 0% used [0x88bb0000, 0x88bb0000, 0x88bc0000)
tenured generation total 1408K, used 367K [0x89000000, 0x89160000, 0x8cb20000)
the space 1408K, 26% used [0x89000000, 0x8905be98, 0x8905c000, 0x89160000)
compacting perm gen total 8192K, used 100K [0x8cb20000, 0x8d320000, 0x90b20000)
the space 8192K, 1% used [0x8cb20000, 0x8cb39280, 0x8cb39400, 0x8d320000)
ro space 8192K, 68% used [0x90b20000, 0x91097a00, 0x91097a00, 0x91320000)
rw space 12288K, 47% used [0x91320000, 0x918d5db0, 0x918d5e00, 0x91f20000)
Dynamic libraries:
VM Arguments:
java_command: Segfault
Environment Variables:
PATH=/home/fsc/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/sbin:/usr/sbin:/home/fsc/distcc/bin
LD_LIBRARY_PATH=/home/fsc/jdk1.5.0/jre/lib/i386/client:/home/fsc/jdk1.5.0/jre/lib/i386:/home/fsc/jdk1.5.0/jre/../lib/i386
SHELL=/bin/bash
DISPLAY=:0.0
--------------- S Y S T E M ---------------
OS:3.1
uname:Linux 2.6.11.12 #1 SMP Thu Jun 16 19:33:00 CEST 2005 i686
libc:glibc 2.3.2 NPTL 0.60
rlimit: STACK 8192k, CORE 0k, NPROC infinity, NOFILE 1024, AS infinity
load average:0.01 0.11 0.15
CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
Memory: 4k page, physical 969480k(14704k free), swap 0k(0k free)
vm_info: Java HotSpot(TM) Client VM (1.5.0-b64) for linux-x86, built on Sep 15 2004 03:56:41 by java_re with gcc 3.2.1-7a (J2SE release)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
public class Segfault extends JComponent {
public static void main(String [] args) {
JFrame f = new JFrame("Segfault");
f.setContentPane(new Segfault());
f.pack();
f.setVisible(true);
}
public void paint(Graphics gg) {
Graphics2D g = (Graphics2D)gg;
g.rotate(0f/0f);
g.drawString("BOO!", 0, 0);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Don't rotate Graphics2D objects by NaN ;)
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
FULL OS VERSION :
Linux meliboea 2.6.11.12 #1 SMP Thu Jun 16 19:33:00 CEST 2005 i686 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
VM segfaults on call to drawString of a Graphics previously rotated by NaN.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Yes
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run attached Java class.
EXPECTED VERSUS ACTUAL BEHAVIOR :
An empty frame with no display should open.
On Linux, the attached code causes a SIGSEGV.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xb1e202c4, pid=23011, tid=2982325168
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode, sharing)
# Problematic frame:
# C [libfontmanager.so+0x462c4] Java_sun_font_FileFont_getGlyphImage+0x174
#
--------------- T H R E A D ---------------
Current thread (0x08164890): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=23022]
siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000014
Registers:
EAX=0x00000000, EBX=0xb1e565a8, ECX=0xffffffe0, EDX=0xb23005f0
ESP=0xb1c29ebc, EBP=0xb1c29f44, ESI=0x90bf5018, EDI=0x08164890
EIP=0xb1e202c4, CR2=0x00000014, EFLAGS=0x00010246
Top of Stack: (sp=0xb1c29ebc)
0xb1c29ebc: 3b2d2fd5 00000025 00000000 00000000
0xb1c29ecc: 00000000 0000000b b1c29f10 9145ea40
0xb1c29edc: b1c29f3c b78933fa 08164e24 b1c29efc
0xb1c29eec: 08164890 01000000 08164e2c 08164e30
0xb1c29efc: 00000000 08164e24 08164890 b1c29f94
0xb1c29f0c: b27a8bc8 00000000 08164890 3b2d2fb9
0xb1c29f1c: 84eb4e48 010b84eb 0817c7e0 0816a2f8
0xb1c29f2c: 0817d060 00000000 0817d060 00000000
Instructions: (pc=0xb1e202c4)
0xb1e202b4: c0 1c 89 04 24 e8 6a f8 fb ff 89 45 ec 8b 45 ec
0xb1e202c4: c7 40 14 00 00 00 00 8b 55 ec 8b 45 dc 66 89 42
Stack: [0xb1bab000,0xb1c2b000), sp=0xb1c29ebc, free space=507k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libfontmanager.so+0x462c4] Java_sun_font_FileFont_getGlyphImage+0x174
j sun.font.FileFont.getGlyphImage(JI)J+0
j sun.font.FileFontStrike.getSlot0GlyphImagePtrs([I[JI)I+108
j sun.font.CompositeStrike.getGlyphImagePtrs([I[JI)V+12
j sun.font.GlyphList.mapChars(Lsun/java2d/loops/FontInfo;I)Z+37
j sun.font.GlyphList.setFromString(Lsun/java2d/loops/FontInfo;Ljava/lang/String;FF)Z+47
j sun.java2d.pipe.GlyphListPipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+148
j sun.java2d.pipe.ValidatePipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+17
j sun.java2d.SunGraphics2D.drawString(Ljava/lang/String;II)V+25
j Segfault.paint(Ljava/awt/Graphics;)V+17
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V+174
j javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z+131
j javax.swing.JComponent._paintImmediately(IIII)V+739
j javax.swing.JComponent.paintImmediately(IIII)V+83
j javax.swing.RepaintManager.paintDirtyRegions()V+314
j javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V+32
j java.awt.event.InvocationEvent.dispatch()V+47
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26
j java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z+200
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
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+0x1688ec]
V [libjvm.so+0x257378]
V [libjvm.so+0x168145]
V [libjvm.so+0x1681de]
V [libjvm.so+0x1d5495]
V [libjvm.so+0x2b030d]
V [libjvm.so+0x257e88]
C [libpthread.so.0+0x4b63]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.font.FileFont.getGlyphImage(JI)J+0
j sun.font.FileFontStrike.getSlot0GlyphImagePtrs([I[JI)I+108
j sun.font.CompositeStrike.getGlyphImagePtrs([I[JI)V+12
j sun.font.GlyphList.mapChars(Lsun/java2d/loops/FontInfo;I)Z+37
j sun.font.GlyphList.setFromString(Lsun/java2d/loops/FontInfo;Ljava/lang/String;FF)Z+47
j sun.java2d.pipe.GlyphListPipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+148
j sun.java2d.pipe.ValidatePipe.drawString(Lsun/java2d/SunGraphics2D;Ljava/lang/String;DD)V+17
j sun.java2d.SunGraphics2D.drawString(Ljava/lang/String;II)V+25
j Segfault.paint(Ljava/awt/Graphics;)V+17
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292
j javax.swing.JComponent.paintWithOffscreenBuffer(Ljavax/swing/JComponent;Ljava/awt/Graphics;IIIILjava/awt/Image;)V+174
j javax.swing.JComponent.paintDoubleBuffered(Ljavax/swing/JComponent;Ljava/awt/Component;Ljava/awt/Graphics;IIII)Z+131
j javax.swing.JComponent._paintImmediately(IIII)V+739
j javax.swing.JComponent.paintImmediately(IIII)V+83
j javax.swing.RepaintManager.paintDirtyRegions()V+314
j javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run()V+32
j java.awt.event.InvocationEvent.dispatch()V+47
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26
j java.awt.EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z+200
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26
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
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0805b600 JavaThread "DestroyJavaVM" [_thread_blocked, id=23011]
=>0x08164890 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=23022]
0x08164298 JavaThread "AWT-Shutdown" [_thread_blocked, id=23021]
0x08158f40 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=23020]
0x0814dd88 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=23019]
0x0809f170 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=23017]
0x0809dcb0 JavaThread "CompilerThread0" daemon [_thread_blocked, id=23016]
0x0809cd38 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=23015]
0x080999d8 JavaThread "Finalizer" daemon [_thread_blocked, id=23014]
0x08097b68 JavaThread "Reference Handler" daemon [_thread_blocked, id=23013]
Other Threads:
0x08095090 VMThread [id=23012]
0x080b9ed0 WatcherThread [id=23018]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 576K, used 144K [0x88b20000, 0x88bc0000, 0x89000000)
eden space 512K, 15% used [0x88b20000, 0x88b34278, 0x88ba0000)
from space 64K, 100% used [0x88ba0000, 0x88bb0000, 0x88bb0000)
to space 64K, 0% used [0x88bb0000, 0x88bb0000, 0x88bc0000)
tenured generation total 1408K, used 367K [0x89000000, 0x89160000, 0x8cb20000)
the space 1408K, 26% used [0x89000000, 0x8905be98, 0x8905c000, 0x89160000)
compacting perm gen total 8192K, used 100K [0x8cb20000, 0x8d320000, 0x90b20000)
the space 8192K, 1% used [0x8cb20000, 0x8cb39280, 0x8cb39400, 0x8d320000)
ro space 8192K, 68% used [0x90b20000, 0x91097a00, 0x91097a00, 0x91320000)
rw space 12288K, 47% used [0x91320000, 0x918d5db0, 0x918d5e00, 0x91f20000)
Dynamic libraries:
VM Arguments:
java_command: Segfault
Environment Variables:
PATH=/home/fsc/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/sbin:/usr/sbin:/home/fsc/distcc/bin
LD_LIBRARY_PATH=/home/fsc/jdk1.5.0/jre/lib/i386/client:/home/fsc/jdk1.5.0/jre/lib/i386:/home/fsc/jdk1.5.0/jre/../lib/i386
SHELL=/bin/bash
DISPLAY=:0.0
--------------- S Y S T E M ---------------
OS:3.1
uname:Linux 2.6.11.12 #1 SMP Thu Jun 16 19:33:00 CEST 2005 i686
libc:glibc 2.3.2 NPTL 0.60
rlimit: STACK 8192k, CORE 0k, NPROC infinity, NOFILE 1024, AS infinity
load average:0.01 0.11 0.15
CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
Memory: 4k page, physical 969480k(14704k free), swap 0k(0k free)
vm_info: Java HotSpot(TM) Client VM (1.5.0-b64) for linux-x86, built on Sep 15 2004 03:56:41 by java_re with gcc 3.2.1-7a (J2SE release)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
public class Segfault extends JComponent {
public static void main(String [] args) {
JFrame f = new JFrame("Segfault");
f.setContentPane(new Segfault());
f.pack();
f.setVisible(true);
}
public void paint(Graphics gg) {
Graphics2D g = (Graphics2D)gg;
g.rotate(0f/0f);
g.drawString("BOO!", 0, 0);
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Don't rotate Graphics2D objects by NaN ;)