8233091: Backout JDK-8212117: Class.forName loads a class but not linked if class is not initialized

Reviewed-by: alanb, dholmes, mchung
This commit is contained in:
Brent Christian 2019-11-04 11:42:24 -08:00
parent 691e75e223
commit 3561b4ed50
13 changed files with 14 additions and 340 deletions

View file

@ -1933,17 +1933,12 @@ assertEquals("[x, y, z]", pb.command().toString());
}
/**
* Looks up a class by name from the lookup context defined by this {@code Lookup} object.
* This method attempts to locate, load, and link the class, and then determines whether
* the class is accessible to this {@code Lookup} object. The static
* Looks up a class by name from the lookup context defined by this {@code Lookup} object. The static
* initializer of the class is not run.
* <p>
* The lookup context here is determined by the {@linkplain #lookupClass() lookup class}, its class
* loader, and the {@linkplain #lookupModes() lookup modes}.
* <p>
* Note that this method throws errors related to loading and linking as
* specified in Sections 12.2 and 12.3 of <em>The Java Language
* Specification</em>.
* loader, and the {@linkplain #lookupModes() lookup modes}. In particular, the method first attempts to
* load the requested class, and then determines whether the class is accessible to this lookup object.
*
* @param targetName the fully qualified name of the class to be looked up.
* @return the requested class.
@ -1955,9 +1950,6 @@ assertEquals("[x, y, z]", pb.command().toString());
* modes.
* @throws SecurityException if a security manager is present and it
* <a href="MethodHandles.Lookup.html#secmgr">refuses access</a>
*
* @jls 12.2 Loading of Classes and Interfaces
* @jls 12.3 Linking of Classes and Interfaces
* @since 9
*/
public Class<?> findClass(String targetName) throws ClassNotFoundException, IllegalAccessException {