harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "George Harley (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-436) [classlib][luni] lang: Harmony should throw exceptions in a way similar to RI's one.
Date Tue, 09 May 2006 09:06:22 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-436?page=comments#action_12378590 ] 

George Harley commented on HARMONY-436:
---------------------------------------

Hi Nathan, 

The RI Javadoc for StringBuilder#insert(int, char) is somewhat different than for the other
versions of insert(..). You're right that almost all of the others are spec'd to throw a SIOOBE
but insert(int, char) actually specifies an IOOBE. The behaviour of the RI is to throw an
AIOOBE. Of course, AIOOBE and SIOOBE are both types of IOOBE so, in a way, they are both right
but the fact remains that currently Harmony is throwing a different runtime type of IOOBE
than that of the RI.

Here is what the compatibility guideleines [1] says on exception throwing ...

"The Harmony class libary code aims to be fully compatible with the Reference Implementation
(RI) of the Java Specification by matching the exception characteristics of each method...
Harmony class library code should throw exceptions of the same type as the RI, other than
in cases 
where the RI throws non-public types whereupon Harmony will throw an exception with the same
public supertype."

In summary, these methods are exhibiting exception throwing behaviour contrary to the existing
class library compatibility guidelines. That's why I welcome Dmitry opening the issue but
not all of the solution.

Best regards, 
George

[1] http://incubator.apache.org/harmony/subcomponents/classlibrary/compat.html


> [classlib][luni] lang: Harmony should throw exceptions in a way similar to RI's one.
> ------------------------------------------------------------------------------------
>
>          Key: HARMONY-436
>          URL: http://issues.apache.org/jira/browse/HARMONY-436
>      Project: Harmony
>         Type: Bug

>   Components: Classlib
>     Reporter: Dmitry M. Kononov
>     Assignee: George Harley
>     Priority: Minor
>  Attachments: lang.cumulative.diff
>
> 1) java.lang.StringBuilder.insert(int offset, char c):
> Harmony throws StringIndexOutOfBoundsException when offset <0,
> while RI throws ArrayIndexOutOfBoundsException. 
> Specification mentions neither StringIndexOutOfBoundsException
> nor ArrayIndexOutOfBoundsException throwing, but says: 
> "Throws:
> IndexOutOfBoundsException - if the offset is invalid".
> 2) java.lang.StringBuffer.append(char[] str, int offset, int len):
> Harmony throws StringIndexOutOfBoundsException when str is not
> null, offset or/and len <0, while RI throws
> ArrayIndexOutOfBoundsException. Specification mentions neither
> StringIndexOutOfBoundsException nor
> ArrayIndexOutOfBoundsException throwing.
> 3) java.lang.StringBuffer.append(char[] str, int offset, int len):
> Harmony throws StringIndexOutOfBoundsException when str = null,
> offset or/and len <0, while RI throws NullPointerException.
> Specification mentions neither StringIndexOutOfBoundsException
> nor NullPointerException throwing.
> 4) java.lang.StringBuffer.getChars(int srcBegin,int srcEnd,char[] dst, int dstBegin):
> Harmony throws StringIndexOutOfBoundsException when dstBegin <0,
> while RI throws ArrayIndexOutOfBoundsException.
> Specification says:
> "Throws: 
> IndexOutOfBoundsException - if any of the following is true: 
> ...
> dstBegin is negative". 
> So RI does not comply with spec as well as Harmony does not comply with it.
> 5) java.lang.StringBuffer.insert(int offset, char c):
> Harmony throws StringIndexOutOfBoundsException when offset <0,
> while RI throws ArrayIndexOutOfBoundsException.
> Specification says:
> "The offset argument must be greater than or equal to 0 ... 
> Throws: 
> IndexOutOfBoundsException - if the offset is invalid."
> So RI does not comply with spec as well as Harmony does not comply with it.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message