Martin Buchholz wrote:
This is a bug report with fix.

StringBuilder, AbstractStringBuilder, and StringBuffer
fail to specify IndexOutOfBoundsException for
append(char str[], int offset, int len)
although other methods in these classes are careful to do so.
I've added these to 6728229 as it seems sensible to fix these when removing the bogus exception from StringBuilder.append(CharSequence). I hope that is okay with you.

-Alan.


Here's the fix:

diff --git a/src/share/classes/java/lang/AbstractStringBuilder.java
b/src/share/classes/java/lang/AbstractStringBuilder.java
--- a/src/share/classes/java/lang/AbstractStringBuilder.java
+++ b/src/share/classes/java/lang/AbstractStringBuilder.java
@@ -525,6 +525,9 @@
      * @param   offset   the index of the first <code>char</code> to append.
      * @param   len      the number of <code>char</code>s to append.
      * @return  a reference to this object.
+     * @throws IndexOutOfBoundsException
+     *         if [EMAIL PROTECTED] offset < 0} or [EMAIL PROTECTED] len < 0}
+     *         or [EMAIL PROTECTED] offset+len > str.length}
      */
     public AbstractStringBuilder append(char str[], int offset, int len) {
         int newCount = count + len;
diff --git a/src/share/classes/java/lang/StringBuffer.java
b/src/share/classes/java/lang/StringBuffer.java
--- a/src/share/classes/java/lang/StringBuffer.java
+++ b/src/share/classes/java/lang/StringBuffer.java
@@ -319,6 +319,9 @@
         return this;
     }

+    /**
+     * @throws IndexOutOfBoundsException [EMAIL PROTECTED]
+     */
     public synchronized StringBuffer append(char str[], int offset, int len) {
         super.append(str, offset, len);
         return this;
diff --git a/src/share/classes/java/lang/StringBuilder.java
b/src/share/classes/java/lang/StringBuilder.java
--- a/src/share/classes/java/lang/StringBuilder.java
+++ b/src/share/classes/java/lang/StringBuilder.java
@@ -201,6 +201,9 @@
         return this;
     }

+    /**
+     * @throws IndexOutOfBoundsException [EMAIL PROTECTED]
+     */
     public StringBuilder append(char str[], int offset, int len) {
         super.append(str, offset, len);
         return this;

More changes to these classes to come.

Martin

Reply via email to