@Override protected final void runTile(int localRowIndex, int localColumnIndex) throws IOException, IllegalAccessException, InterruptedException { int localTileLeftX = localColumnIndex * getTileWidth(); int localTileTopY = localRowIndex * getTileHeight(); int localTileWidth = getTileWidth(); int localTileHeight = getTileHeight(); if (localTileLeftX + localTileWidth > getImageWidth()) { localTileWidth = getImageWidth() - localTileLeftX; } if (localTileTopY + localTileHeight > getImageHeight()) { localTileHeight = getImageHeight() - localTileTopY; } runTile(localTileLeftX, localTileTopY, localTileWidth, localTileHeight, localRowIndex, localColumnIndex); }