--- old/src/java.desktop/share/classes/java/awt/image/BufferedImage.java 2020-04-01 19:12:39.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/image/BufferedImage.java 2020-04-01 19:12:39.000000000 -0700 @@ -1367,7 +1367,28 @@ * @return the x offset of the tile grid. */ public int getTileGridXOffset() { - return raster.getSampleModelTranslateX(); + /* + * Given (source: javax.media.jai.PlanarImage.tileXToX(int)): + * + * x = (tileX * tileWidth) + tileGridXOffset + * + * We get: + * + * tileGridXOffset = x - (tileX * tileWidth) + * + * Substituting x = minX and tileX = minTileX: + * + * tileGridXOffset = minX - (minTileX * tileWidth) + * + * Substituting default BufferedImage method implementations: + * + * tileGridXOffset = raster.getMinX() - (0 * raster.getWidth()) + * + * Result should always be zero, but we nevertheless delegate to + * raster.getMinX() for consistency with default implementation + * of related methods in BufferedImage. + */ + return raster.getMinX(); } /** @@ -1377,7 +1398,7 @@ * @return the y offset of the tile grid. */ public int getTileGridYOffset() { - return raster.getSampleModelTranslateY(); + return raster.getMinY(); } /**