PlatformDependent#getClassLoader fails in restrictive classloader environment
Motivation: https://github.com/netty/netty/pull/6042 only addressed PlatformDependent#getSystemClassLoader but getClassLoader is also called in an optional manner in some common code paths but fails to catch a general enough exception to continue working. Modifications: - Calls to getClassLoader which can continue if results fail should catch Throwable Result: More resilient code in the presense of restrictive class loaders. Fixes https://github.com/netty/netty/issues/6246.
This commit is contained in:
parent
afd493362d
commit
7528f1188e
@ -135,7 +135,7 @@ public class ReferenceCountedOpenSslEngine extends SSLEngine implements Referenc
|
|||||||
@SuppressWarnings({ "rawtypes", "unused" })
|
@SuppressWarnings({ "rawtypes", "unused" })
|
||||||
List serverNames = (List) getServerNamesMethod.invoke(parameters);
|
List serverNames = (List) getServerNamesMethod.invoke(parameters);
|
||||||
setServerNamesMethod.invoke(parameters, Collections.emptyList());
|
setServerNamesMethod.invoke(parameters, Collections.emptyList());
|
||||||
} catch (Throwable ingore) {
|
} catch (Throwable ignore) {
|
||||||
sniHostNameClass = null;
|
sniHostNameClass = null;
|
||||||
getAsciiNameMethod = null;
|
getAsciiNameMethod = null;
|
||||||
getServerNamesMethod = null;
|
getServerNamesMethod = null;
|
||||||
|
@ -854,8 +854,9 @@ public class SslHandler extends ByteToMessageDecoder implements ChannelOutboundH
|
|||||||
&& "com.sun.nio.sctp.SctpChannel".equals(clazz.getSuperclass().getName())) {
|
&& "com.sun.nio.sctp.SctpChannel".equals(clazz.getSuperclass().getName())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (Throwable cause) {
|
||||||
// This should not happen just ignore
|
logger.debug("Unexpected exception while loading class {} classname {}",
|
||||||
|
getClass(), classname, cause);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user