Thank you very much for the quick replies Roger. I'll try out your suggestion and if that doesn't work I'll get back to you with a test case that reproduces the problem.
On Wed, Jul 18, 2012 at 2:25 PM, Roger L. Whitcomb < [email protected]> wrote: > Actually, I think I see what’s going on:**** > > **· **Every time you load an image it is saved in the > ApplicationContext resource cache so it can be retrieved quickly if it is > reused.**** > > **· **There is no provision for limiting the size of that cache, > so the cache continues to grow as it caches each of the images in your > slideshow.**** > > ** ** > > So, the solution is simple: save the URL of the previous image and before > doing the “setImage” of the new one, remove the old one from the cache like > this:**** > > ** ** > > ApplicationContext.getResourceCache().remove(previousURL);**** > > ** ** > > HTH,**** > > *~Roger Whitcomb* > > ** ** > > *From:* Roger L. Whitcomb [mailto:[email protected]] > *Sent:* Wednesday, July 18, 2012 2:12 PM > *To:* [email protected] > *Subject:* RE: OutOfMemoryError - after calling ImageView.setImage(url) > 50 times**** > > ** ** > > Hi Sridhar,**** > > How is the ImageView being displayed in Pivot? How > exactly does the update to the next image occur? Someone else logged a bug > about images used as window icons not being released in the image listener > list, so this sounds a lot like the same problem.**** > > So, could you provide a small sample program that > demonstrates the problem? One of us will be looking at the problem.**** > > ** ** > > Thank you for using Pivot,**** > > *~Roger Whitcomb* > > ** ** > > *From:* Sridhar Sarnobat [mailto:[email protected] <[email protected]>] > *Sent:* Wednesday, July 18, 2012 2:03 PM > *To:* [email protected] > *Subject:* OutOfMemoryError - after calling ImageView.setImage(url) 50 > times**** > > ** ** > > I have created a slideshow application using Apache Pivot, and it works > great.**** > > ** ** > > But it reaches 285 MB after I cycle through about 50 jpg images, and > starts throwing OOM errors. *I have a memory leak that I don't know how > to stop.* I am manipulating java.io.File objects (not streams or readers) > and I don't see any way to close these files.**** > > ** ** > > I believe that I am not releasing resources of a File 1 before calling the > following line with File 2:**** > > ** ** > > org.apache.pivot.wtk.ImageView.setImage( java.io.File.toURI().toURL() )* > *** > > ** ** > > I hope that's enough information. What am I doing wrong? I don't want to > increase the available heap space. This is supposed to be a simple app.*** > * >
