diff --git a/src/java/org/apache/commons/lang/text/StrBuilder.java b/src/java/org/apache/commons/lang/text/StrBuilder.java index c7cbfb3e1..886d424ea 100644 --- a/src/java/org/apache/commons/lang/text/StrBuilder.java +++ b/src/java/org/apache/commons/lang/text/StrBuilder.java @@ -1670,7 +1670,7 @@ public String midString(int index, int length) { */ public boolean contains(char ch) { char[] thisBuf = buffer; - for (int i = 0; i < thisBuf.length; i++) { + for (int i = 0; i < this.size; i++) { if (thisBuf[i] == ch) { return true; } @@ -1727,7 +1727,7 @@ public int indexOf(char ch, int startIndex) { return -1; } char[] thisBuf = buffer; - for (int i = startIndex; i < thisBuf.length; i++) { + for (int i = startIndex; i < size; i++) { if (thisBuf[i] == ch) { return i; } diff --git a/src/test/org/apache/commons/lang/text/StrBuilderTest.java b/src/test/org/apache/commons/lang/text/StrBuilderTest.java index 900b92249..67e1ce1df 100644 --- a/src/test/org/apache/commons/lang/text/StrBuilderTest.java +++ b/src/test/org/apache/commons/lang/text/StrBuilderTest.java @@ -1741,4 +1741,12 @@ public void testIndexOfLang294() { assertEquals(-1, sb.indexOf("three")); } + //----------------------------------------------------------------------- + public void testLang295() { + StrBuilder sb = new StrBuilder("onetwothree"); + sb.deleteFirst("three"); + assertFalse( "The contains(char) method is looking beyond the end of the string", sb.contains('h')); + assertEquals( "The indexOf(char) method is looking beyond the end of the string", -1, sb.indexOf('h')); + } + }