| Package | Description |
|---|---|
| se.jiderhamn.classloader.leak.prevention | |
| se.jiderhamn.classloader.leak.prevention.cleanup | |
| se.jiderhamn.classloader.leak.prevention.preinit |
| Modifier and Type | Method and Description |
|---|---|
ClassLoaderLeakPreventor |
ClassLoaderLeakPreventorFactory.newLeakPreventor()
Create new
ClassLoaderLeakPreventor used to prevent the provided Thread.contextClassLoader of the
Thread.currentThread() from leaking. |
ClassLoaderLeakPreventor |
ClassLoaderLeakPreventorFactory.newLeakPreventor(ClassLoader classLoader)
Create new
ClassLoaderLeakPreventor used to prevent the provided ClassLoader from leaking |
| Modifier and Type | Method and Description |
|---|---|
void |
ReplaceDOMNormalizerSerializerAbortException.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ClassLoaderPreMortemCleanUp.cleanUp(ClassLoaderLeakPreventor preventor)
Perform cleanup actions needed to make provided
classLoader
ready for garbage collection. |
static RuntimeException |
ReplaceDOMNormalizerSerializerAbortException.constructRuntimeExceptionWithoutStackTrace(ClassLoaderLeakPreventor preventor,
String message,
Throwable cause)
Construct a new
RuntimeException without any stack trace, in order to avoid any references back to this class |
void |
ReplaceDOMNormalizerSerializerAbortException.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
PreClassLoaderInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor)
Perform action that needs to be done outside the leak susceptible classloader, i.e. in the system or other parent
classloader.
|
protected void |
ReplaceDOMNormalizerSerializerAbortException.replaceDOMNormalizerSerializerAbortException(ClassLoaderLeakPreventor preventor) |
| Modifier and Type | Method and Description |
|---|---|
void |
X509TrustManagerImplUnparseableExtensionCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ThreadLocalCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ThreadGroupContextCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ThreadGroupCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
StopThreadsCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ShutdownHookCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
SecurityProviderCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
SAAJEnvelopeFactoryParserPoolCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
RmiTargetsCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ResourceBundleCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ReactorNettyHttpResourcesCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ProxySelectorCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
PropertyEditorCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
MXBeanNotificationListenersCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
MultiThreadedHttpConnectionManagerCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
MoxyCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
MBeanCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
KeepAliveTimerCacheCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
JDK8151486CleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
JceSecurityCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
JavaUtilLoggingLevelCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
JavaServerFaces2746CleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
JacksonCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
IntrospectionUtilsCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
IIOServiceProviderCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
GeoToolsCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
DriverManagerCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
DefaultAuthenticatorCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
BeanValidationCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
BeanIntrospectorCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
BeanELResolverCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
void |
ApacheCommonsLoggingCleanUp.cleanUp(ClassLoaderLeakPreventor preventor) |
protected void |
RmiTargetsCleanUp.clearRmiTargetsMap(ClassLoaderLeakPreventor preventor,
Map<?,?> rmiTargetsMap)
Iterate RMI Targets Map and remove entries loaded by protected ClassLoader
|
Class<?> |
MoxyCleanUp.findClass(ClassLoaderLeakPreventor preventor,
String className) |
protected void |
StopThreadsCleanUp.forceStartOpenOfficeJurtCleanup(ClassLoaderLeakPreventor preventor)
The bug detailed at https://issues.apache.org/ooo/show_bug.cgi?
|
protected void |
ThreadLocalCleanUp.forEachThreadLocalInThread(ClassLoaderLeakPreventor preventor,
Thread thread) |
protected Authenticator |
DefaultAuthenticatorCleanUp.getDefaultAuthenticator(ClassLoaderLeakPreventor preventor)
Find default
Authenticator |
protected boolean |
MBeanCleanUp.isJettyWithJMX(ClassLoaderLeakPreventor preventor)
Are we running in Jetty with JMX enabled?
|
protected void |
WarningThreadLocalCleanUp.processLeak(ClassLoaderLeakPreventor preventor,
Thread thread,
Reference<?> entry,
ThreadLocal<?> threadLocal,
Object value,
String message)
Log not
ThreadLocal.remove()ed leak as a warning. |
protected void |
ThreadLocalCleanUp.processLeak(ClassLoaderLeakPreventor preventor,
Thread thread,
Reference<?> entry,
ThreadLocal<?> threadLocal,
Object value,
String message)
After having detected potential ThreadLocal leak, this method is called.
|
protected void |
ThreadLocalCleanUp.processThreadLocalMap(ClassLoaderLeakPreventor preventor,
Thread thread,
Object threadLocalMap) |
protected void |
ShutdownHookCleanUp.removeShutdownHook(ClassLoaderLeakPreventor preventor,
Thread shutdownHook)
Deregister shutdown hook and execute it immediately
|
protected void |
DefaultAuthenticatorCleanUp.removeWrappedAuthenticators(ClassLoaderLeakPreventor preventor,
Authenticator authenticator)
Recursively removed wrapped
Authenticator loaded in protected ClassLoader. |
protected void |
StopThreadsCleanUp.stopThreads(ClassLoaderLeakPreventor preventor)
Partially inspired by org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads()
|
protected void |
StopThreadsCleanUp.stopTimerThread(ClassLoaderLeakPreventor preventor,
Thread thread) |
protected void |
MXBeanNotificationListenersCleanUp.unregisterNotificationListeners(ClassLoaderLeakPreventor preventor,
NotificationBroadcasterSupport mBean,
Class<?> listenerWrapperClass)
Unregister
NotificationListeners from subclass of NotificationBroadcasterSupport, if listener,
filter or handback is loaded by the protected ClassLoader. |
| Constructor and Description |
|---|
JURTKiller(ClassLoaderLeakPreventor preventor,
Thread jurtThread) |
| Modifier and Type | Method and Description |
|---|---|
void |
SunGCInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
SunAwtAppContextInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
SecurityProvidersInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
SecurityPolicyInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
OracleJdbcThreadInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
LdapPoolManagerInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
JdbcDriversInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
JavaxSecurityLoginConfigurationInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
Java2dRenderQueueInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
Java2dDisposerInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
JarUrlConnectionInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
DocumentBuilderFactoryInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
DatatypeConverterImplInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
void |
AwtToolkitInitiator.doOutsideClassLoader(ClassLoaderLeakPreventor preventor) |
Copyright © 2019. All rights reserved.