On Fri, 26 Mar 2021 20:48:19 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> https://bugs.openjdk.java.net/browse/JDK-8255800 could have been a one line 
>> spec clean up but
>> it didn't take a lot of looking to realize there were many more 
>> inconsistencies between spec and implementation.
>> I've spent a lot of time on what is just small number of factory methods in 
>> Raster because there are so
>> many possible exceptions and in some cases they rely on other API they call 
>> to generate exceptions and
>> these may have not been documented or documented acc. to some long lost 
>> behavior.
>> I've mostly tried to ONLY change spec. But I couldn't help myself when some 
>> checks were missed that
>> ended up with bizarre and dubious behavior - throwing 
>> NegativeArrayIndexException which just about
>> always has to be an internal bug !
>> 
>> The supplied test passes on JDK 16 as well as this code, because the 
>> (relatively) small number of
>> cases where JDK 16 threw NegativeArrayIndexException are caught and allowed 
>> only for releases < 17
>> So where you see those in the test it corresponds to the behavioral changes 
>> from NegativeArrayIndexException
>> to IllegalArgumentException.
>> JCK conformance tests still pass so they must not test those conditions.
>
> src/java.desktop/share/classes/java/awt/image/ComponentSampleModel.java line 
> 127:
> 
>> 125:      * @throws IllegalArgumentException if {@code pixelStride} is less 
>> than 0
>> 126:      * @throws IllegalArgumentException if {@code scanlineStride} is 
>> less than 0
>> 127:      * @throws NullPointerException if {@code bandOffsets} is {@code 
>> null}
> 
> I like the NPE here, but probably it makes sense to use the same exception 
> for all errors? "IllegalArgumentException "

Meaning even though you like the NPE you would change it to IAE like the rest ?

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

PR: https://git.openjdk.java.net/jdk/pull/3223

Reply via email to