> 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.
Phil Race has updated the pull request incrementally with one additional commit since the last revision: 8369129 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/27627/files - new: https://git.openjdk.org/jdk/pull/27627/files/3408acfa..7ba88492 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=27627&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=27627&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/27627.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/27627/head:pull/27627 PR: https://git.openjdk.org/jdk/pull/27627
