StringBuXXXXX.append(char str[], int offset, int len)
Martin Buchholz
martinrb at google.com
Wed Jul 23 01:56:22 UTC 2008
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.
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 {@code offset < 0} or {@code len < 0}
+ * or {@code 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 {@inheritDoc}
+ */
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 {@inheritDoc}
+ */
public StringBuilder append(char str[], int offset, int len) {
super.append(str, offset, len);
return this;
More changes to these classes to come.
Martin
More information about the core-libs-dev
mailing list