Here's the latest update:

        http://cr.openjdk.java.net/~prappo/8029689/webrev.01/ 

-Pavel

> On 21 Apr 2015, at 09:08, Chris Hegarty <chris.hega...@oracle.com> wrote:
> 
> On 21 Apr 2015, at 03:00, David Holmes <david.hol...@oracle.com> wrote:
> 
>> On 21/04/2015 1:24 AM, Chris Hegarty wrote:
>>> 
>>> On 20/04/15 16:17, Lance Andersen wrote:
>>>> Hi Pavel,
>>>> 
>>>> So we are just documenting/clarifying the current behavior from what I
>>>> can tell from the change?
>>> 
>>> Looking at the testcase, it passes with the current JDK 9 ( and 8 ), so
>>> this is just documenting existing behavior.
>> 
>> Right. The assumption is that original authors overlooked the fact that the 
>> @exception/@throws for unchecked exceptions would not automatically be 
>> inherited by subclasses, and that in fact those subclasses (in this case) 
>> should indeed have inherited the same preconditions from the parent.
> 
> All subclasses of java.io.Reader are documenting existing behaviour ( such 
> documentation of uncheck exceptions was not the norm when these classes were 
> originally written, but seems reasonable in this case ). But 
> java.io.Reader.read(String,int,int) is abstract, and as such is having 
> additional specification added ( which should be fine ).
> 
> The only question is about third party implementations of Reader ( or other 
> non Java SE implementations in the JDK), which may need to be amended to 
> confirm to this “new” bounds check. Again, I think this should be fine, and 
> seems in line with the evolution policy of core libraries.
> 
> -Chris.
> 
>> David
>> 
>>>> If so, this looks OK assuming you have an approved CCC?  The test
>>> seems fine.
>>> 
>>> A CCC will be needed, and should be submitted after successful review.
>>> 
>>>> I am assuming there should not be any issues here but would be good to
>>>> hear from others on this change as well
>>> 
>>> Right. We do this ( clarify spec from existing behavior) in other areas
>>> too.
>>> 
>>> Given that this is the current behavior of existing platform subtypes,
>>> then this change is only specifying existing behavior. Since there are
>>> no implementation changes, then Third party Reader subtypes will
>>> continue to function as before, but they may need to be updated at some
>>> point in the future.
>>> 
>>> -Chris.
>>> 
>>>> Best
>>>> Lance
>>>> On Apr 20, 2015, at 11:10 AM, Pavel Rappo <pavel.ra...@oracle.com> wrote:
>>>> 
>>>>> 
>>>>> Hi everyone,
>>>>> 
>>>>> Could you please review my change for JDK-8029689
>>>>> 
>>>>> http://cr.openjdk.java.net/~prappo/8029689/webrev.00/
>>>>> 
>>>>> -------------------------------------------------------------------------------
>>>>> 
>>>>> There is a long-standing issue when platform implementations of
>>>>> java.io.Reader
>>>>> throw IndexOutOfBoundsException for bounds checks from inherited
>>>>> java.io.Reader.read(char[], int, int) method though java.io.Reader
>>>>> itself does
>>>>> not specify this situation.
>>>>> 
>>>>> Suggested solution is to update the contract of
>>>>> java.io.Reader.read(char[], int,
>>>>> int) and its publicly exported descendants to capture the implied
>>>>> preconditions
>>>>> for reading range and the array size.
>>>>> 
>>>>> Given that throwing IOBE in this situation is a de facto standard,
>>>>> this change
>>>>> won't bring any kind of incompatibility, though to stay compliant 3rd
>>>>> party
>>>>> implementations may need to be updated.
>>>>> 
>>>>> -Pavel
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
>>>> Oracle Java Engineering
>>>> 1 Network Drive
>>>> Burlington, MA 01803
>>>> lance.ander...@oracle.com
>>>> 
>>>> 
>>>> 
> 

Reply via email to