The method in which the assertion fails called from the different places, sometimes bounds are passed(dx/dy) and the transform only once here: https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java#L3571
For the case when the transform is passed we have an assertion that checks some assumptions about the(dx/dy): - The dx1/dy1 should be equal to 0, which means both values are not changed by the method. - The dx2/dy2 should be equal to the image size(MRI) -> are not changed by the method as well. The second assertion is wrong. The dx2/dy2 passed to the method contains the size of the initial image(MRI), and an assertion checks it against the size of the "resolution variant" which may have a different DPI/resolution/size. ------------- Commit messages: - Initial fix Changes: https://git.openjdk.java.net/jdk/pull/1333/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1333&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8198390 Stats: 6 lines in 3 files changed: 0 ins; 4 del; 2 mod Patch: https://git.openjdk.java.net/jdk/pull/1333.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/1333/head:pull/1333 PR: https://git.openjdk.java.net/jdk/pull/1333