RFR: 6185110: Undefined behaviour of SampleModel for width, height < 0 [v4]

Prasanta Sadhukhan psadhukhan at openjdk.org
Tue Nov 25 03:38:20 UTC 2025


On Mon, 24 Nov 2025 20:58:15 GMT, Phil Race <prr at openjdk.org> wrote:

>> The only significant change here is to ensure that all SampleModel types throw a specified exception if a client
>> calls any of the following methods with a negative width or height.
>> getPixels(..)
>> setPixels(..)
>> getSamples(..)
>> setSamples(..)
>> 
>> The rest is fixing the javadoc to properly describe what happens and some minor cleanup.
>> I use {@inheritDoc} to avoid repeating the super-class doc. And no one now has to tediously compare them.
>> I could just delete the javadoc but that would cause no javadoc to be generated for an overridden method.
>> There were a couple of surprises with {@inheritDoc} and the one I had to deal with is that declared RuntimeExceptions
>> are not inherited. You need to explicitly re-add them. This because if it isn't an exception in the method signature (as in  foo() throws BarException), and instead you only have "@throws BarException" it will not be inherited.
>> 
>> I added a test which verifies the behaviour for illegal arguments.
>> 
>> CSR is here https://bugs.openjdk.org/browse/JDK-8369623
>
> Phil Race has updated the pull request incrementally with one additional commit since the last revision:
> 
>   6185110

src/java.desktop/share/classes/java/awt/image/MultiPixelPackedSampleModel.java line 451:

> 449:      * not large enough to hold the pixel data
> 450:      * @see #setDataElements(int, int, Object, DataBuffer)
> 451:      * @throws NullPointerException if {@code data} is null.

what about {@code obj}, guess it will throw NPE too?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27754#discussion_r2558437724


More information about the client-libs-dev mailing list