You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by bu...@apache.org on 2002/07/18 11:11:41 UTC

DO NOT REPLY [Bug 10941] New: - Memory leaks when using dynamic images

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10941>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10941

Memory leaks when using dynamic images

           Summary: Memory leaks when using dynamic images
           Product: Fop
           Version: all
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Major
          Priority: Other
         Component: pdf renderer
        AssignedTo: fop-dev@xml.apache.org
        ReportedBy: d.deridder@customerdialogue.com


Hi,

I have discovered some memory leaks when creating dynamic reports with dynamic 
(gif) image files.

The problem is that image files seem to be cached and not released anymore, 
even when removing the fop driver object or calling the driver.reset() method.

Since we are making dynamic reports and all charts in it are stored with unique 
filenames (to prevent concurrency problems between users), every created report 
keeps about 40 kb of memory in memory. After a few days, this results in tomcat 
to crash because the system gets out of memory (with heap size of 256 MB).

When I always use the same GIF filenames and start a one user test repeatingly 
making reports for one user, one after the other, there is no memory leak. This 
means that the memory leak is caused by caching the image files and never 
releasing them. When the same filenames are reused over and over again, the 
cached image files are overwritten for every new report.

After investigating the FOP source code (0.20.4) I discovered at least one 
problem in the FopImageFactory.java class:

There is a private static Hashtable "m_urlMap" that caches all image URLs but 
never releases these URLs. Since it is a static map, the URLs are not even 
released after removing the fop objects from memory.

When I solved this problem on my PC (by clearing the m_urlMap after calling the 
Driver.Reset method) there is still memory leak of about 30 kb left.

Does anyone know about this problem and is there a possible work around (except 
from reusing the filenames)?

Thanks,

Dominique De Ridder

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org