-
Bug
-
Resolution: Fixed
-
P2
-
1.3.1_07, 1.4.0, 1.4.1_02, 1.4.2, 5.0
-
09
-
generic, sparc
-
generic, solaris_7, solaris_8, solaris_9, windows_2000
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2066994 | 5.0 | Sergei Pikalev | P2 | Resolved | Fixed | tiger |
JDK-2066993 | 1.4.2 | Sergei Pikalev | P2 | Closed | Fixed | b20 |
JDK-2066992 | 1.4.1_05 | Sergei Pikalev | P2 | Resolved | Fixed | 05 |
JVM crashes trying to draw very small Arc2D pie fraction when antialiasing
is on. The problem is easily reproducible.
1. Testcase
-----------
% more CrashVM.java
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.util.Date;
public class CrashVM {
public static void main(String[] args) {
BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Rectangle2D bounds = new Rectangle2D.Double(168.83125, 54.60624999999999, 162.33749999999998, 162.33749999999998
);
Arc2D arc = new Arc2D.Double(bounds, 90.0, -4.2154566415320005E-7, Arc2D.PIE);
System.out.println("About to draw...");
g2.draw(arc);
System.out.println("Done --> " + new Date().toString());
}
}
%
2. Compile
----------
% /j2sdk1_3_1_07/bin/java -version
java version "1.3.1_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_07-b02)
Java HotSpot(TM) Client VM (build 1.3.1_07-b02, mixed mode)
% /j2sdk1_3_1_07/bin/javac CrashVM.java
%
3. Run
------
% /j2sdk1_3_1_07/bin/java CrashVM
About to draw...
Segmentation Fault (core dumped)
%
4. Core file
------------
% dbx -V /net/cores/tsc/Applix/java/JDK/j2sdk1_3_1_07/bin/sparc/native_threads/java ./core
Sun WorkShop 6 update 2 Dbx Debugger 6.2 2001/05/16
Reading java
core file header read successfully
Reading ld.so.1
Reading libthread.so.1
Reading libdl.so.1
Reading libc.so.1
Reading libc_psr.so.1
Reading libjvm.so
Reading libCrun.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libm.so.1
Reading libw.so.1
Reading libmp.so.2
Reading libhpi.so
Reading libverify.so
Reading libjava.so
Reading libzip.so
Reading libawt.so
Reading libmawt.so
Reading libmlib_image.so
Reading libXm.so.4
Reading libXt.so.4
Reading libXext.so.0
Reading libXtst.so.1
Reading libX11.so.4
Reading libSM.so.6
Reading libICE.so.6
Reading libfontmanager.so
Reading libdps.so.5
Reading libdcpr.so
detected a multithreaded program
t@1 (l@4) terminated by signal SEGV (Segmentation Fault)
0xfaecb888: processToRunsArc3+0x0070: st %f0, [%sp + 0x80]
dbx: core file read error: address 0xffb75f40 not in data space
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@1
=>[1] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecb888
[2] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[3] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[4] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[5] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[6] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[7] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[8] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[9] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[ ... ]
[100] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where -f 2000
current thread: t@1
[2000] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[ ... ]
[2045] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[2046] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[2047] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[2048] processToRunsArc3(0xfaef93a0, 0x10de84, 0xfaee66f8, 0x3d800000, 0x7fffffff, 0x7fffffff), at 0xfaecbcc4
[2049] RunsBuilder_appendCubic(0x27a58, 0x27a84, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff), at 0xfaeca97c
[2050] appendCubic_describeTo(0x27a58, 0x1c3cf0, 0x27a84, 0x34, 0x1c3d48, 0x0), at 0xfaec449c
[2051] sendTo(0x1c3cf0, 0x27a84, 0x27a84, 0x27a58, 0x2, 0x2), at 0xfaec489c
[2052] setOutputArea(0x10dbfc, 0x10de84, 0x3, 0x27a58, 0x1, 0x53), at 0xfaecd7c8
[2053] Java_sun_dc_pr_PathFiller_setOutputArea(0x27a58, 0xffbee21c, 0x437a0000, 0x42540000, 0x2, 0x53), at 0xfaec5c0c
[2054] 0x7e1c8(0xf4c13a20, 0xffbee620, 0x29810, 0xfe73c000, 0xb6, 0xf8d848e8), at 0x7e1c7
[2055] 0x7b58c(0xf4c13a00, 0xffbee620, 0x29810, 0x83c7c, 0xb6, 0xf8d80bf0), at 0x7b58b
[2056] 0x7b58c(0xf4c135b8, 0xffbee620, 0x29810, 0x83c7c, 0xb6, 0xf8d80b10), at 0x7b58b
[2057] 0x7b58c(0xf4c135b8, 0x7d5d8, 0x29810, 0x83c7c, 0xf8d3a0c0, 0x6), at 0x7b58b
[2058] 0x7b834(0xf4c07530, 0x7d5d8, 0x29810, 0x83f04, 0xf8d320f8, 0x0), at 0x7b833
[2059] 0x7b834(0xf4c07558, 0xffbee620, 0x29810, 0x83f04, 0xb6, 0xf8ca0690), at 0x7b833
[2060] 0x7b58c(0x0, 0x1, 0xfe749698, 0x83c7c, 0x1e, 0xe), at 0x7b58b
[2061] 0xfe772bb4(0xffbee640, 0xffbee840, 0xa, 0xf8c9cf10, 0x7d5d8, 0xffbee774), at 0xfe772bb3
[2062] JavaCalls::call_helper(0xffbee838, 0xfe73c000, 0xffbee76c, 0x29810, 0x7d5d8, 0xffbee840), at 0xfe5032c0
[2063] JavaCalls::call(0xffbee838, 0xffbee74c, 0xffbee76c, 0x29810, 0xfe73c000, 0xffbee6e4), at 0xfe502f50
[2064] jni_invoke(0x1, 0x29810, 0x0, 0x0, 0xa53b0, 0xffbee81c), at 0xfe516a60
[2065] jni_CallStaticVoidMethod(0xfe73c000, 0x29810, 0xa53b0, 0x2989c, 0xffbee8a0, 0x29810), at 0xfe56b1cc
[2066] main(0x2989c, 0x0, 0x2989c, 0xffbef30c, 0x0, 0x2503c), at 0x11ca4
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx)
- backported by
-
JDK-2066992 JVM crashes trying to draw very small Arc2D pie fraction when antialiasing is on
- Resolved
-
JDK-2066994 JVM crashes trying to draw very small Arc2D pie fraction when antialiasing is on
- Resolved
-
JDK-2066993 JVM crashes trying to draw very small Arc2D pie fraction when antialiasing is on
- Closed
- duplicates
-
JDK-4486670 Arc2D.Double may not draw correctly for tiny angular extents
- Closed
- relates to
-
JDK-4896773 Rendering CubicCurve2D with NaN as control points causes crash in ductus code
- Resolved
-
JDK-4145700 Solaris-x86: Java2D demo SEGV filling a cubic curve path.
- Closed
-
JDK-4617206 j2sdk1.3,1 .3.1, 1.4-beta3 crashed in java2D at sun.dc.pr.PathFiller.setOutputAr
- Closed