JDK-8056152 added a new constructor to java.lang.Thread to constructing Threads that do not inherit inheritable thread-local initial values. All usages of sun.misc.ManagedLocalsThread in the base module were also replaced with this new constructor. Given there is now a supported API for creating such threads, other areas of the JDK should be updated to use it, where applicable. If all usages are replaced, then sun.misc.ManagedLocalsThread can be removed. jdk/src/java.management$ find . -name "*.java" -exec grep ManagedLocalsThread {} \; -print import sun.misc.ManagedLocalsThread; Thread t = new ManagedLocalsThread( ./share/classes/javax/management/monitor/Monitor.java import sun.misc.ManagedLocalsThread; Thread t = new ManagedLocalsThread(controller, "JDP broadcaster"); ./share/classes/sun/management/jdp/JdpController.java import sun.misc.ManagedLocalsThread; thread = new ManagedLocalsThread( ./share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java import sun.misc.ManagedLocalsThread; final Thread t = new ManagedLocalsThread(timeoutTask); ./share/classes/com/sun/jmx/remote/internal/ServerCommunicatorAdmin.java import sun.misc.ManagedLocalsThread; Thread t = new ManagedLocalsThread( ./share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java