# HG changeset patch # User shade # Date 1415832921 -10800 # Thu Nov 13 01:55:21 2014 +0300 # Node ID 5429cda85b70ac816cdf3c8b0b572567d117f1f2 # Parent 23e10e5df0b3e526c295130e075769b15e8d01c6 8059677: Thread.getName() instantiates Strings Reviewed-by: chegar, dholmes, sla, rriggs diff -r 23e10e5df0b3 -r 5429cda85b70 src/java.base/share/classes/java/lang/Thread.java --- a/src/java.base/share/classes/java/lang/Thread.java Mon Nov 10 11:23:23 2014 -0500 +++ b/src/java.base/share/classes/java/lang/Thread.java Thu Nov 13 01:55:21 2014 +0300 @@ -145,7 +145,7 @@ registerNatives(); } - private volatile char name[]; + private volatile String name; private int priority; private Thread threadQ; private long eetop; @@ -366,7 +366,7 @@ throw new NullPointerException("name cannot be null"); } - this.name = name.toCharArray(); + this.name = name; Thread parent = currentThread(); SecurityManager security = System.getSecurityManager(); @@ -1119,7 +1119,11 @@ */ public final synchronized void setName(String name) { checkAccess(); - this.name = name.toCharArray(); + if (name == null) { + throw new NullPointerException("name cannot be null"); + } + + this.name = name; if (threadStatus != 0) { setNativeName(name); } @@ -1132,7 +1136,7 @@ * @see #setName(String) */ public final String getName() { - return new String(name, true); + return name; } /**