You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Romain Manni-Bucau (JIRA)" <ji...@apache.org> on 2012/12/05 10:26:59 UTC

[jira] [Closed] (OPENEJB-1961) Classloader memory leak by Threads which is started by org.apache.openejb.loader.Files

     [ 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