Do not log CNFE when tcnative is not in classpath
Motivation: When a user deliberatively omitted netty-tcnative from classpath, he or she will see an ugly stack trace of ClassNotFoundException. Modifications: Log more briefly when netty-tcnative is not in classpath. Result: Better-looking log at DEBUG level
This commit is contained in:
parent
85fecba770
commit
2c3f4a374a
@ -41,16 +41,31 @@ public final class OpenSsl {
|
||||
|
||||
static {
|
||||
Throwable cause = null;
|
||||
|
||||
// Test if netty-tcnative is in the classpath first.
|
||||
try {
|
||||
NativeLibraryLoader.load("netty-tcnative", SSL.class.getClassLoader());
|
||||
Library.initialize("provided");
|
||||
SSL.initialize(null);
|
||||
} catch (Throwable t) {
|
||||
Class.forName("org.apache.tomcat.jni.SSL", false, OpenSsl.class.getClassLoader());
|
||||
} catch (ClassNotFoundException t) {
|
||||
cause = t;
|
||||
logger.debug(
|
||||
"Failed to load netty-tcnative; " +
|
||||
OpenSslEngine.class.getSimpleName() + " will be unavailable.", t);
|
||||
"netty-tcnative not in the classpath; " +
|
||||
OpenSslEngine.class.getSimpleName() + " will be unavailable.");
|
||||
}
|
||||
|
||||
// If in the classpath, try to load the native library and initialize netty-tcnative.
|
||||
if (cause == null) {
|
||||
try {
|
||||
NativeLibraryLoader.load("netty-tcnative", SSL.class.getClassLoader());
|
||||
Library.initialize("provided");
|
||||
SSL.initialize(null);
|
||||
} catch (Throwable t) {
|
||||
cause = t;
|
||||
logger.debug(
|
||||
"Failed to load netty-tcnative; " +
|
||||
OpenSslEngine.class.getSimpleName() + " will be unavailable.", t);
|
||||
}
|
||||
}
|
||||
|
||||
UNAVAILABILITY_CAUSE = cause;
|
||||
|
||||
if (cause == null) {
|
||||
|
Loading…
Reference in New Issue
Block a user