tryLoading() — netty Function Reference
Architecture documentation for the tryLoading() function in BouncyCastleUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD c933e0ba_9455_436a_b4a5_ee5470ce92d5["tryLoading()"] 3d807587_1576_ed5a_5887_67583b16915a["BouncyCastleUtil"] c933e0ba_9455_436a_b4a5_ee5470ce92d5 -->|defined in| 3d807587_1576_ed5a_5887_67583b16915a a940954c_5e1f_29aa_d241_be9913b41a29["ensureLoaded()"] a940954c_5e1f_29aa_d241_be9913b41a29 -->|calls| c933e0ba_9455_436a_b4a5_ee5470ce92d5 style c933e0ba_9455_436a_b4a5_ee5470ce92d5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java lines 165–233
@SuppressWarnings("unchecked")
private static void tryLoading() {
AccessController.doPrivileged((PrivilegedAction<?>) () -> {
try {
// Check for bcprov-jdk18on or bc-fips:
Provider provider = Security.getProvider(BC_PROVIDER_NAME);
if (provider == null) {
provider = Security.getProvider(BC_FIPS_PROVIDER_NAME);
}
if (provider == null) {
ClassLoader classLoader = BouncyCastleUtil.class.getClassLoader();
Class<Provider> bcProviderClass;
try {
bcProviderClass = (Class<Provider>) Class.forName(BC_PROVIDER, true, classLoader);
} catch (ClassNotFoundException e) {
try {
bcProviderClass = (Class<Provider>) Class.forName(BC_FIPS_PROVIDER, true, classLoader);
} catch (ClassNotFoundException ex) {
ThrowableUtil.addSuppressed(e, ex);
throw e;
}
}
provider = bcProviderClass.getConstructor().newInstance();
}
bcProviderJce = provider;
logger.debug("Bouncy Castle provider available");
} catch (Throwable e) {
logger.debug("Cannot load Bouncy Castle provider", e);
unavailabilityCauseBcProv = e;
}
try {
// Check for bcpkix-jdk18on:
ClassLoader classLoader = BouncyCastleUtil.class.getClassLoader();
Provider provider = bcProviderJce;
if (provider != null) {
// Use provider class loader in case it was loaded by the system loader.
classLoader = provider.getClass().getClassLoader();
}
Class.forName(BC_PEMPARSER, true, classLoader);
logger.debug("Bouncy Castle PKIX available");
} catch (Throwable e) {
logger.debug("Cannot load Bouncy Castle PKIX", e);
unavailabilityCauseBcPkix = e;
}
try {
// Check for bctls-jdk18on:
ClassLoader classLoader = BouncyCastleUtil.class.getClassLoader();
Provider provider = Security.getProvider(BC_JSSE_PROVIDER_NAME);
if (provider != null) {
// Use provider class loader in case it was loaded by the system loader.
classLoader = provider.getClass().getClassLoader();
} else {
Class<?> providerClass = Class.forName(BC_JSSE_PROVIDER, true, classLoader);
provider = (Provider) providerClass.getConstructor().newInstance();
}
bcSSLEngineClass = (Class<? extends SSLEngine>) Class.forName(BC_JSSE_SSLENGINE, true, classLoader);
Class.forName(BC_JSSE_ALPN_SELECTOR, true, classLoader);
bcProviderJsse = provider;
logger.debug("Bouncy Castle JSSE available");
} catch (Throwable e) {
logger.debug("Cannot load Bouncy Castle TLS", e);
unavailabilityCauseBcTls = e;
}
attemptedLoading = true;
return null;
});
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does tryLoading() do?
tryLoading() is a function in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java.
Where is tryLoading() defined?
tryLoading() is defined in handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java at line 165.
What calls tryLoading()?
tryLoading() is called by 1 function(s): ensureLoaded.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free