Hi, I think I found a bug in the dashed line rendering (i.e., an incompatibility with Sun JDK) and a fix with a test. The problem was the difference in the interpretation of the float array which defines the pattern of dashed lines. I confirmed that this bug exists in openjdk6 b11 and openjdk7 b47.
Thanks, Hiroshi ---- fix ---- +++ jdk/src/share/classes/sun/java2d/pisces/Dasher.java 2009-02-17 15:05:18.000000000 -0800 @@ -120,7 +120,7 @@ // Normalize so 0 <= phase < dash[0] int idx = 0; - dashOn = false; + dashOn = true; int d; while (phase >= (d = dash[idx])) { phase -= d; ---- test ---- import java.awt.*; import java.awt.image.*; import javax.imageio.*; import java.io.*; public class DashTest { public static void main(String[] argv) throws Exception { BufferedImage image =new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = image.createGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, 100, 100); graphics.setColor(Color.BLACK); graphics.setStroke(new BasicStroke(2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10f, new float[] {1f, 4f}, 0f)); graphics.drawRect(10, 10, 80, 80); ImageIO.write(image, "PNG", new File(argv[0])); } }