Review request for JDK-8090035 : JavaFX browser can get stuck in an infinite loop when calling path.getTotalLength()

Guru Hb guru.hb at
Thu Sep 17 11:11:50 UTC 2015

Dear Vadim / Kevin, 


Please review the fix merged from Chromium webkit to our(JFXwebkit) branch which address the defect logged for JDK-8090035. 


Tested on Linux(32 and 64 bit) with a test application (attached in JIRA) 


Origin of the fix taken from 


Courtesy : fixed by HYPERLINK "mailto:schenney at"schenney at in chromium and the comments 


Improve the reliability and accuracy of SVG getTotalLength


The existing code for SVG path.getTotalLength had two problems when

subdividing curves to estimate length. The subdivision terminated when

the straight-line vs curved length was within a fixed limit, regardless

of the scale of the curve. The termination condition for infinite loops

also failed to stop on infinite loops.


This patch fixes both issues. The subdivision threshold now accounts for

the magnitude of the values, so that we give more resolution on very small

curves and less on very large curves. This is consistent with the actual

precision we have in floating point numbers. The infinite loop termination

tracks and examines the total number of subdivisions thus far, terminating

after 20 (which is more than enough - most curves do no more than 10



We also remove two unused variables and a FIXME that makes little sense and that we won't ever fix.




More information about the openjfx-dev mailing list