--- old/src/share/classes/java/lang/Thread.java Tue May 21 15:27:13 2013 +++ new/src/share/classes/java/lang/Thread.java Tue May 21 15:27:12 2013 @@ -145,10 +145,10 @@ registerNatives(); } - private char name[]; - private int priority; - private Thread threadQ; - private long eetop; + private volatile char name[]; + private int priority; + private Thread threadQ; + private long eetop; /* Whether or not to single_step this thread. */ private boolean single_step; @@ -1135,7 +1135,7 @@ * @see #getName * @see #checkAccess() */ - public final void setName(String name) { + public final synchronized void setName(String name) { checkAccess(); this.name = name.toCharArray(); if (threadStatus != 0) { @@ -1150,7 +1150,7 @@ * @see #setName(String) */ public final String getName() { - return String.valueOf(name); + return new String(name, true); } /**