[OpenJDK 2D-Dev] RFR [11] JDK-8202580: Dashed BasicStroke randomly painted incorrectly, may freeze application

Laurent Bourgès bourges.laurent at gmail.com
Fri May 4 12:30:48 UTC 2018


Sergey,

Please review this simple fix to the Dasher problem:
JBS: https://bugs.openjdk.java.net/browse/JDK-8202580
webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin-8202580.0/

Changes:
- (D)Dasher.init: the given dash array is dirty as MarlinRenderingEngine
got it from XxxArrayCache (Unsafe.allocateUninitializedArray) when calling
copyDashArray(). The fix consists in using the correct part [0; dashLen[ as
it was the case in jdk9
- added test that detects wrong dashed rectangle: jtreg fails on jdk10/11
without patch

Notes:
- the thread may hang in init() if the dirty part contains negative values
(normalization loop never exits), but it is very difficult to reproduce and
test.
- My Apologies: I introduced the bug in dec 2016 when I merged MarlinFX /
Marlin2D.


Finally, the proposed fix should be backported to JDK10 and also to OpenJFX
10/11. I can propose a patch to OpenJFX11 soon.

Could somebody else manage the backport process (JDK-update 10, OpenJFX10) ?

Regards,
Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20180504/9d265dca/attachment.html>


More information about the 2d-dev mailing list