[richfaces-issues] [JBoss JIRA] Commented: (RF-4471) Usage of ImageIO in ResourceBuilderImpl causes memory leak

Denis Petrunin (JIRA) jira-events at lists.jboss.org
Fri Dec 12 07:45:37 EST 2008


    [ https://jira.jboss.org/jira/browse/RF-4471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12442310#action_12442310 ] 

Denis Petrunin commented on RF-4471:
------------------------------------

I've encountered in the same issue on 3.2.2-SR1.

See org.ajax4jsf.resource.ResourceBuilderImpl for ImageIO.setUseCache(false) (line 115).  Due to this call there is a reference to WebappClassLoader in static member of sun.awt.AppContext. As result webapp classes can't be garbage collected in PermGen space. I can't continuously redelpoy my web application due to  PermGen  failure (java.lang.OutOfMemoryError).

Here is an output of jhat utility (heap dump was done after webapp was undeployed):

Static reference from sun.awt.AppContext.mainAppContext (from class sun.awt.AppContext) :
--> sun.awt.AppContext at 0x3a30ce0 (49 bytes) (field contextClassLoader:)
--> org.apache.catalina.loader.WebappClassLoader at 0x382ec00 (152 bytes) 

As result I have a troubles with hot redeployment while development.

> Usage of ImageIO in ResourceBuilderImpl causes memory leak
> ----------------------------------------------------------
>
>                 Key: RF-4471
>                 URL: https://jira.jboss.org/jira/browse/RF-4471
>             Project: RichFaces
>          Issue Type: Bug
>    Affects Versions: 3.1.6
>         Environment: any
>            Reporter: Philipp Schoepf
>            Assignee: Nick Belaevski
>             Fix For: Future
>
>
> It seems as we found a memleak in the ResourceBuilderImpl class. The call to 
> ImageIO.setCache(false)
> causes sun.awt.AppContext to statically initialize itself (inside static initialization of IIORegistry). The problem is that AppContext seems to hold a static reference to the contextclassloader of the calling thread. When our application gets undeployed the reference to the applications classloader is still hold by AppContext causing that loaded classes cannot be garbage collected.
> I only checked richfaces 3.16 but if ResourceBuilderImpl still exists in 3.2 stream I suppose that the problem exists there as well.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list