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.***
> *
>

Reply via email to