JDK-8191815 : Infinite loop in Marlin Dasher for huge stroked line
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 9,10
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2017-11-23
  • Updated: 2018-04-10
  • Resolved: 2018-03-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11
11Resolved
Related Reports
Relates :  
Relates :  
Description
In Marlin Dasher (float), the dash generation is hanging (while loop) if the shape is too large (0 to 2E9 line) due to floating-point precision.
This problem exists also in either Ductus or Pisces in JDK8 (no clipping).

The Marlin double variant does not have this problem (DMarlinRenderingEngine enabled in JDK10).

Ideally the Dasher should handle the clip properly to only emit dashes for the visible part (clipping issue) and improve largely the performance
Comments
Fixed by Marlin 0.9.1: JDK-8198885
30-03-2018

This problem is fixed in Marlin 0.9.1 (numeric precision issue in the float variant)
23-03-2018

I will provide a test to reproduce the problem. FYI it is definitively fixed by Marlin 0.9.1 (patch submitted for jdk11 review).
01-03-2018

Marlin 0.9 provides path clipping in Dasher stage. It is the right solution to this issue. Will upgrade both Java2D & JavaFX Marlin renderers soon for OpenJDK & JFX 11
12-02-2018

I changed the priority to P3 as the jvm is hanging (while 1) in case of a huge dashed line + float marlin variant (len > 1e8). I have a bug fix ready in Marlin 0.8.3 but I can easily backport on either 0.7.4 (jdk9) or 0.7.5 (jdk10) if the marlin 0.8.2 upgrade can not be integrated in jdk10 before RDP1. Anyway I can propose a patch for jdk9 but is it critical enough as its lifetime is short (6 months) ?
06-12-2017