--- old/src/java.base/share/classes/java/lang/Thread.java 2016-04-19 22:33:52.355429544 +0900 +++ new/src/java.base/share/classes/java/lang/Thread.java 2016-04-19 22:33:52.156426631 +0900 @@ -1185,7 +1185,8 @@ this.name = name; if (threadStatus != 0) { - setNativeName(name); + // Don't modify JNI-attached threads + setNativeName(name, false); } } @@ -2099,5 +2100,8 @@ private native void suspend0(); private native void resume0(); private native void interrupt0(); - private native void setNativeName(String name); + + // May be called directly via JNI or reflection (when permitted) to + // allow JNI-attached threads to set their native name + private native void setNativeName(String name, boolean allowAttachedThread); }