Details
-
Bug
-
Resolution: Fixed
-
P3
-
11, 13, 14
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8231771 | 13.0.2 | Laurent Bourgès | P3 | Resolved | Fixed | b02 |
JDK-8232669 | 11.0.6-oracle | Laurent Bourgès | P3 | Resolved | Fixed | b02 |
JDK-8231621 | 11.0.6 | Christoph Langer | P3 | Resolved | Fixed | b01 |
JDK-8269509 | 8u311 | Dmitry Markov | P3 | Resolved | Fixed | b01 |
Description
ICEpdf team reported a rendering issue in Marlin renderer (the bug comes from Pisces code) due to at.getDeterminant() is negative in userSpaceLineWidth() that leads to a NaN stroke width:
https://github.com/bourgesl/marlin-renderer/issues/36
"Debugging MarlinRenderingEngine, execution steps into line 208:
widthScale = (float)Math.sqrt(at.getDeterminant());
In our scenario, at.getDeterminant() returns the value -0.47389273965262657 and widthScale and thus the value returned by userSpaceLineWidth(AffineTransform, float) is NaN.
Using the absolute value of at.getDeterminant(), the lines seem to get rendered correctly, the value returned by userSpaceLineWidth(AffineTransform, float) then is 0.18158083"
After investigation, using the absolute value (before sqrt) is the right solution.
https://github.com/bourgesl/marlin-renderer/issues/36
"Debugging MarlinRenderingEngine, execution steps into line 208:
widthScale = (float)Math.sqrt(at.getDeterminant());
In our scenario, at.getDeterminant() returns the value -0.47389273965262657 and widthScale and thus the value returned by userSpaceLineWidth(AffineTransform, float) is NaN.
Using the absolute value of at.getDeterminant(), the lines seem to get rendered correctly, the value returned by userSpaceLineWidth(AffineTransform, float) then is 0.18158083"
After investigation, using the absolute value (before sqrt) is the right solution.
Attachments
Issue Links
- backported by
-
JDK-8231621 Thin stroked shapes are not rendered if affine transform has flip bit
- Resolved
-
JDK-8231771 Thin stroked shapes are not rendered if affine transform has flip bit
- Resolved
-
JDK-8232669 Thin stroked shapes are not rendered if affine transform has flip bit
- Resolved
-
JDK-8269509 Thin stroked shapes are not rendered if affine transform has flip bit
- Resolved