in java/org/apache/tomcat/jni/Library.java [32:93]
private Library() throws Exception {
boolean loaded = false;
StringBuilder err = new StringBuilder();
File binLib = new File(System.getProperty(CATALINA_HOME_PROP), "bin");
for (int i = 0; i < NAMES.length; i++) {
File library = new File(binLib, System.mapLibraryName(NAMES[i]));
try {
System.load(library.getAbsolutePath());
loaded = true;
} catch (VirtualMachineError t) {
throw t;
} catch (Throwable t) {
if (library.exists()) {
// File exists but failed to load
throw t;
}
if (i > 0) {
err.append(", ");
}
err.append(t.getMessage());
}
if (loaded) {
break;
}
}
if (!loaded) {
String path = System.getProperty("java.library.path");
String [] paths = path.split(File.pathSeparator);
for (String value : NAMES) {
try {
System.loadLibrary(value);
loaded = true;
} catch (VirtualMachineError t) {
throw t;
} catch (Throwable t) {
String name = System.mapLibraryName(value);
for (String s : paths) {
File fd = new File(s, name);
if (fd.exists()) {
// File exists but failed to load
throw t;
}
}
if (err.length() > 0) {
err.append(", ");
}
err.append(t.getMessage());
}
if (loaded) {
break;
}
}
}
if (!loaded) {
StringBuilder names = new StringBuilder();
for (String name : NAMES) {
names.append(name);
names.append(", ");
}
throw new LibraryNotFoundError(names.substring(0, names.length() -2), err.toString());
}
}