> * The bug is related to sun.java2d.pisces.PiscesCache constructor > * that accepts '(int minx,int miny,int maxx,int maxy)' arguments: > * the internal 'bboxX1' and 'bboxY1' are set to values one greater > * than given maximum X and Y values.
This code was added in fixing https://bugs.openjdk.java.net/browse/JDK-6967434
It appears this will affect OpenJDK 7, 8 and 9 I have filed https://bugs.openjdk.java.net/browse/JDK-8048782 so any interested party can pick up that bug and propose a fix .. -phil. On 6/27/2014 1:39 AM, Rami Hänninen wrote:
Dear OpenJDK 2D developers community. I have found a nasty 2D rendering bug in the latest OpenJDK 1.7.60 version. It probably affects all other OpenJDK versions, too. The bug does not appear in OracleJDK 1.7.0.60, so this is purely an OpenJDK issue. I do not know of any other place where to report this issue, so I'm now submitting my small test program to this mailing list (attached). The test program demonstrates the bug, and also documents my findings in detail. I have tracked the bug into 'sun.java2d.pisces.PiscesCache' and 'sun.java2d.pipe.AAShapePipe' classes, but I do not understand the theory behind the Java rendering pipelines well enough to suggest a patch. I think that the problem should be easy to fix for anyone familiar with the rendering pipelines and corresponding "tiling" technique. I think so because this is a Pure Java issue, it seems to be a simple "off by one pixel" kind of error, and because all the other pipe implementations except 'AAShapePipe' seem to work, and also because corresponding OracleJDK implementation works. I also think this is a very relevant bug in general, because in its' current state, OpenJDK can't be reliably used for anti-aliased rendering that also uses custom Composite implementations. Both of these features are absolutely required for any high-quality graphical applications, including the one I'm developing. That application is also already in widespread international use, and it's a real shame that users now have to choose between perfect OracleJDK and crappy OpenJDK results. I'm happy to answer questions and provide addition information if necessary. I also just joined this mailing list, so I will be monitoring any discussion this message may spur. Best regards Rami Hänninen