On Fri, 3 Oct 2025 19:35:21 GMT, Phil Race <[email protected]> wrote: >> Updates the specification of Raster.createPackedRaster(..) methods and also >> the implementation of these to explicitly check the specified conditions >> rather than relying on them being passed up from some other API. >> >> Also one each of the createInterleavedRaster(..) and createBandedRaster(..) >> methods have an update >> >> createInterleavedRaster(...) to address that even if WxH does not exceed >> Integer.MAX_VALUE, the storage needed still might. >> >> createBandedRaster(..) to address >> - a not explicitly specified or tested case that WxH must not overflow >> - a not explicitly tested NPE case if bandMasks is null. This was relying on >> a de-reference and the actual check for it being null would have thrown the >> wrong exception type (AIOBE) - meaning not the one NPE actually specified >> and thrown. >> There's an unfortunate oddity with this that of bankIndices is null it >> specifies and throws AIOBE, but I didn't think it worth changing either of >> these to make them consistent. >> >> The existing CreateRasterExceptionTest.java is updated to verify all these >> assertions. >> In almost all cases the behaviour is unchanged, it is just now properly >> specified and verified up front. >> >> There are only 2 sub-tests which would fail on JDK 25 >> The test can also be run (and pass) there without this fix because it >> explicitly handles those 2 cases which are reasonable behavioral changes >> - One for the createInterleavedRaster() update where the unchecked case >> could end up causing a NegativeArraySizeException. This seems like a merited >> change. >> - One for an unlikely case where if an app specified 0 app to >> createPackedRaster, divide by zero would happen. >> >> The CSR is now ready for review https://bugs.openjdk.org/browse/JDK-8369131 > > Phil Race has updated the pull request incrementally with one additional > commit since the last revision: > > 8369129
I have gone through most of the code paths and its good that now the API clearly states exceptions that can be thrown by lower level code. Since we have difference in expected exception at some places, please make sure there are no JCK/jtreg failures with this update. test/jdk/java/awt/image/Raster/CreateRasterExceptionTest.java line 56: > 54: /** > 55: * If running on a JDK of the targetVersion or later, throw > 56: * a RuntimeException becuase the exception argument "because" ------------- Marked as reviewed by jdv (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/27627#pullrequestreview-3348809355 PR Review Comment: https://git.openjdk.org/jdk/pull/27627#discussion_r2438790445
