RFR: 8377568: DataBuffer constructors and methods do not specify required exceptions [v4]
Sergey Bylokhov
serb at openjdk.org
Wed Feb 18 05:10:16 UTC 2026
On Tue, 17 Feb 2026 22:39:42 GMT, Phil Race <prr at openjdk.org> wrote:
>> This fix updates DataBuffer subclasses to actually adhere to their stated specifications by rejecting certain invalid parameters for constructors and getters and setters.
>> A new egression test for each of the constructor and getter/setter cases is supplied.
>>
>> No existing regression tests fail with this change, and standard demos work.
>>
>> Problems caused by these changes are most likely to occur if the client has a bug such that
>> - a client uses the constructors that accept an array and then supplies a "size" that is greater than the array.
>> - a client uses the constructors that accept an array and then supplies a "size" that is less than the array and then uses getter/setters that are within the array but outside the range specified by size.
>>
>> Since very few clients (and just one case in the JDK that I found) even use these array constructors the changes are unlikely to make a difference to clients.
>>
>> The CSR is ready for review https://bugs.openjdk.org/browse/JDK-8378116
>
> Phil Race has updated the pull request incrementally with one additional commit since the last revision:
>
> 8377568
src/java.desktop/share/classes/java/awt/image/DataBufferByte.java line 167:
> 165: }
> 166: if (size < 0 || (size + offset) > dataArray.length) {
> 167: throw new IllegalArgumentException("Bad size/offset. Size = " + size +
how it is supposed to work if the size is zero and the dataArray is empty? is it a valid config?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29766#discussion_r2820378530
More information about the client-libs-dev
mailing list