> 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

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/27627/files
  - new: https://git.openjdk.org/jdk/pull/27627/files/b95c4ad0..62b6edd8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=27627&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=27627&range=03-04

  Stats: 88 lines in 2 files changed: 75 ins; 1 del; 12 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

Reply via email to