< prev index next >
src/java.base/share/classes/java/lang/ClassLoader.java
Print this page
rev 12161 : 8081674: EmptyStackException at startup if running with extended or unsupported charset
Reviewed-by: mchung
*** 1666,1675 ****
--- 1666,1677 ----
*/
protected String findLibrary(String libname) {
return null;
}
+ static native String findBuiltinLib(String name);
+
/**
* The inner class NativeLibrary denotes a loaded native library instance.
* Every classloader contains a vector of loaded native libraries in the
* private field <tt>nativeLibraries</tt>. The native libraries loaded
* into the system are entered into the <tt>systemNativeLibraries</tt>
*** 1700,1710 ****
boolean loaded;
native void load(String name, boolean isBuiltin);
native long find(String name);
native void unload(String name, boolean isBuiltin);
- static native String findBuiltinLib(String name);
public NativeLibrary(Class<?> fromClass, String name, boolean isBuiltin) {
this.name = name;
this.fromClass = fromClass;
this.isBuiltin = isBuiltin;
--- 1702,1711 ----
*** 1861,1871 ****
throw new UnsatisfiedLinkError("no " + name + " in java.library.path");
}
private static boolean loadLibrary0(Class<?> fromClass, final File file) {
// Check to see if we're attempting to access a static library
! String name = NativeLibrary.findBuiltinLib(file.getName());
boolean isBuiltin = (name != null);
if (!isBuiltin) {
name = AccessController.doPrivileged(
new PrivilegedAction<>() {
public String run() {
--- 1862,1872 ----
throw new UnsatisfiedLinkError("no " + name + " in java.library.path");
}
private static boolean loadLibrary0(Class<?> fromClass, final File file) {
// Check to see if we're attempting to access a static library
! String name = findBuiltinLib(file.getName());
boolean isBuiltin = (name != null);
if (!isBuiltin) {
name = AccessController.doPrivileged(
new PrivilegedAction<>() {
public String run() {
< prev index next >