[
https://issues.apache.org/jira/browse/OPENEJB-1961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Romain Manni-Bucau closed OPENEJB-1961.
---------------------------------------
Resolution: Fixed
Fix Version/s: 4.5.1
> Classloader memory leak by Threads which is started by
> org.apache.openejb.loader.Files
> --------------------------------------------------------------------------------------
>
> Key: OPENEJB-1961
> URL: https://issues.apache.org/jira/browse/OPENEJB-1961
> Project: OpenEJB
> Issue Type: Bug
> Components: tomee
> Reporter: chunlinyao
> Priority: Minor
> Labels: leak, tomee
> Fix For: 4.5.1
>
>
> org.apache.openejb.loader.Files registered ShutdownHook, which will create a
> Thread.
> When new a Thread, the thread will record contextClassLoader and
> inheritedAccessControlContext,
> If Files is first called by a Thread using LazyStopWebappClassLoader, it will
> hold the classLoader.
> Daemon Thread [localhost-startStop-1] (Class load: Files)
> owns: StandardContext (id=262)
>
> TomEEFacesConfigResourceProvider.getMetaInfConfigurationResources(ExternalContext)
> line: 86
>
> DefaultFacesConfigurationProvider.getClassloaderFacesConfig(ExternalContext)
> line: 249
> DefaultFacesConfigurationMerger.getFacesConfigData(ExternalContext)
> line: 101
> FacesConfigurator.configure() line: 416
>
> Jsp21FacesInitializer(AbstractFacesInitializer).buildConfiguration(ServletContext,
> ExternalContext, ExpressionFactory) line: 370
> Jsp21FacesInitializer.initContainerIntegration(ServletContext,
> ExternalContext) line: 73
>
> Jsp21FacesInitializer(AbstractFacesInitializer).initFaces(ServletContext)
> line: 143
> StartupServletContextListener.contextInitialized(ServletContextEvent)
> line: 119
> StandardContext.listenerStart() line: 4791
> StandardContext.startInternal() line: 5285
> StandardContext(LifecycleBase).start() line: 150
> ContainerBase$StartChild.call() line: 1559
> ContainerBase$StartChild.call() line: 1549
> FutureTask$Sync.innerRun() line: 334
> FutureTask<V>.run() line: 166
> ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110
> ThreadPoolExecutor$Worker.run() line: 603
> Thread.run() line: 722
> We must load Files from other thread first to prevent this leak.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira