Index: modules/luni/src/main/java/java/lang/StringBuilder.java =================================================================== --- modules/luni/src/main/java/java/lang/StringBuilder.java (revision 398842) +++ modules/luni/src/main/java/java/lang/StringBuilder.java (working copy) @@ -1030,7 +1030,9 @@ if (start == length) { return append(str); } - + if(end > length) { + end = length; + } int sbLen = end - start; int strLen = str.length(); if (strLen > sbLen) { @@ -1038,6 +1040,9 @@ // this will handle capacity and length management insert(start, new char[strLen - sbLen]); } + if(strLen < sbLen) { + delete(start, start + sbLen-strLen); + } // copy in new chars for (int i = 0, j = start; i < strLen; i++, j++) buffer[j] = str.charAt(i);