8059677: Thread.getName() instantiates Strings

Reviewed-by: chegar, dholmes, sla, rriggs
This commit is contained in:
Aleksey Shipilev 2014-11-13 01:55:21 +03:00
parent cc2452b769
commit 4a8e05977e

@ -145,7 +145,7 @@ class Thread implements Runnable {
registerNatives();
}
private volatile char name[];
private volatile String name;
private int priority;
private Thread threadQ;
private long eetop;
@ -366,7 +366,7 @@ class Thread implements Runnable {
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 @@ class Thread implements Runnable {
*/
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 @@ class Thread implements Runnable {
* @see #setName(String)
*/
public final String getName() {
return new String(name, true);
return name;
}
/**