--- a/src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java Sat Sep 07 11:38:36 2019 -0700
+++ b/src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java Tue Sep 10 21:20:51 2019 +0200
@@ -245,7 +245,8 @@
widthScale = 1.0f;
} else if ((at.getType() & (AffineTransform.TYPE_GENERAL_TRANSFORM |
AffineTransform.TYPE_GENERAL_SCALE)) != 0) {
- widthScale = (float)Math.sqrt(at.getDeterminant());
+ // Determinant may be negative (flip), use its absolute value:
+ widthScale = (float)Math.sqrt(Math.abs(at.getDeterminant()));
} else {
// First calculate the "maximum scale" of this transform.
double A = at.getScaleX(); // m00