
For a more complete list of the bug fixes included in this release, see the JDK 10.0.2 Bug Fixes page.Java SE Development Kit is a special collection for programmers Java programming language (Java) is a wonderful tool for the development of software is! Java programming language is one of the top programming languages in the world that competes with other programming languages such as C and C #. Java programming language is usually used for software development and games for various operating systems such as Android, Windows, Linux, and Mac and!! This powerful collection of Java programming language, with its new update, has added other special and widely used features to its collection that can be of great help to the developers of Java language programmers. This large collection can also fully test and run your developed software. This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update. This fix for JDK-8187577 informs G1's SATB that a klass has been resurrected and it should not be unloaded. This release contains improvements like Local-Variable Type Inference, Parallel Full GC, Application Class-Data Sharing. When these JNIHandles were later scanned, it lead to a crash. Java SE 10.0.1 is the latest release of Java SE Platform. G1 did not have knowledge of these thread-local JNIHandles, and in the remark phase, it unloaded the classes per its prior knowledge of unreachable classes. In this particular crash, while G1 was doing concurrent marking and had prepared its list of unreachable classes, JVMTI on a Java thread could traverse classes in the CLD and store thread-local JNIHandles for the java_mirror of the loaded classes.

Whenever a klass is resurrected in this manner, the SATB part of G1 needs to be notified about this, otherwise, the concurrent marking remark phase will erroneously unload that klass.


A klass that has been considered unreachable by the concurrent marking of G1, can be looked up in the ClassLoaderData/SystemDictionary, and its _java_mirror or _class_loader fields can be stored in a root or any other reachable object making it alive again.
