8014814: (str) StringBuffer "null" is not appended

Reviewed-by: alanb
This commit is contained in:
David Holmes 2013-05-22 20:21:13 -04:00
parent c9d407ad39
commit 4ef977fec3
2 changed files with 25 additions and 5 deletions

View File

@ -335,10 +335,8 @@ import java.util.Arrays;
* @since 1.5
*/
@Override
public StringBuffer append(CharSequence s) {
// Note, synchronization achieved via invocations of other StringBuffer methods after
// narrowing of s to specific type
// Ditto for toStringCache clearing
public synchronized StringBuffer append(CharSequence s) {
toStringCache = null;
super.append(s);
return this;
}

View File

@ -22,7 +22,7 @@
*/
/* @test
* @bug 8013395
* @bug 8013395 8014814
* @summary Test StringBuffer.toString caching
*/
@ -199,6 +199,28 @@ public class ToStringCache {
b = sb.toString();
checkUnequal(a, b);
// Extra checks that append(null) works correctly
sb.append((String)null);
b = sb.toString();
checkUnequal(a, b);
a = b;
sb.append((StringBuffer)null);
b = sb.toString();
checkUnequal(a, b);
a = b;
sb.append((StringBuilder)null);
b = sb.toString();
checkUnequal(a, b);
a = b;
sb.append((CharSequence)null);
b = sb.toString();
checkUnequal(a, b);
a = b;
// non-mutating methods
// Reset to known value