Details
-
Bug
-
Resolution: Fixed
-
P4
-
7
-
b109
-
x86
-
linux
-
Verified
Description
FULL PRODUCT VERSION :
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (fedora-41.b18.fc13-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
2.6.33.5-124.fc13.x86_64 #1 SMP Fri Jun 11 09:38:12 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
When dashed lines are drawn with a transform of the form [[n,0],[0,n]] in effect, dashed lines are not drawn properly. The dashes are much longer than they should be.
The problem is caused by the "symmetric" variable in pisces/Dasher.java, and how it is used when computing dash lengths in lineTo in that same file.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run provided source.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
White dashed line is drawn on black background where the dashes are about 4 pixels long.
ACTUAL -
The dashes are much longer.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class TestDBZ extends Frame {
public static void main(String[] args) {
BufferedImage bImg = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D) bImg.getGraphics();
g2d.setStroke(new BasicStroke(0.1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 10.0f, new float[] {0.2f, 0.2f}, 0));
g2d.scale(20, 20);
g2d.drawLine(1, 1, 10, 10);
try { ImageIO.write(bImg, "png", new java.io.File("test.png")); } catch (Exception e) {}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
This isn't very feasible, but it's the only possibility: don't use transforms.
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (fedora-41.b18.fc13-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
2.6.33.5-124.fc13.x86_64 #1 SMP Fri Jun 11 09:38:12 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
A DESCRIPTION OF THE PROBLEM :
When dashed lines are drawn with a transform of the form [[n,0],[0,n]] in effect, dashed lines are not drawn properly. The dashes are much longer than they should be.
The problem is caused by the "symmetric" variable in pisces/Dasher.java, and how it is used when computing dash lengths in lineTo in that same file.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run provided source.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
White dashed line is drawn on black background where the dashes are about 4 pixels long.
ACTUAL -
The dashes are much longer.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class TestDBZ extends Frame {
public static void main(String[] args) {
BufferedImage bImg = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D) bImg.getGraphics();
g2d.setStroke(new BasicStroke(0.1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 10.0f, new float[] {0.2f, 0.2f}, 0));
g2d.scale(20, 20);
g2d.drawLine(1, 1, 10, 10);
try { ImageIO.write(bImg, "png", new java.io.File("test.png")); } catch (Exception e) {}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
This isn't very feasible, but it's the only possibility: don't use transforms.
Attachments
Issue Links
- duplicates
-
JDK-6966746 Dashed lines are broken with certain scaling transforms
-
- Closed
-
- relates to
-
JDK-6782344 jfreechart_and_jxlayer applet throws NPE on OpenJDK
-
- Closed
-