Answer myself: should be solution before
Start.get().getSharedResources().add("image" + random.toString() + ".jpg",
image);
do something like "unmount all previosly mounted images"?

In Application.init() isn't possible to mount them - I don't know which page
user click. In database is around 1.000 images
and there are on around 100 pages (every page has around 10 images). For me
it looks crazy in Application.init() take all images
from DB and mount them.


> -----Original Message-----
> From: Miroslav F. [mailto:mir...@seznam.cz] 
> Sent: Friday, 05. August 2011 18:54
> To: users@wicket.apache.org
> Subject: RE: tomcat eats memory
> 
> Using non-shared images? My problem is that I need same url 
> for href in <a> and for src in <img> for lightbox to work.
> 
> 
> 
> > -----Original Message-----
> > From: Dan Retzlaff [mailto:dretzl...@gmail.com]
> > Sent: Friday, 05. August 2011 18:45
> > To: users@wicket.apache.org
> > Subject: Re: tomcat eats memory
> > 
> > This is your problem:
> > 
> > Start.get().getSharedResources().add("image" +
> > > random.toString() + ".jpg", image);
> > 
> > 
> > Adding shared resources during page construction is very unusual. 
> > Consider registering shared resources in 
> Application.init(), or using 
> > non-shared images. Refer to http://wicketstuff.org/wicket/images/
> > 
> > On Fri, Aug 5, 2011 at 9:20 AM, Miroslav F. 
> <mir...@seznam.cz> wrote:
> > 
> > > Hi folks,
> > >
> > > I have these classes:
> > >
> > > package com.myapp;
> > > public class Minerals extends WebPage{
> > >        public Minerals(){
> > >                RepeatingView repeater = new
> > RepeatingView("repeater");
> > >                //data from database - images and descriptions
> > >                ArrayList dataFromDB = (new 
> ImagesMinerals()).load();
> > >                //descriptions
> > >                ArrayList desc = new ArrayList();
> > >                desc = (ArrayList) dataFromDB.get(0);
> > >                //images
> > >                ArrayList images = new ArrayList();
> > >                images = (ArrayList) dataFromDB.get(1);
> > >                int size = images.size();
> > >                for(int i = 0; i < size; i++){
> > >                        String repeaterID = repeater.newChildId();
> > >                        ImageRepeater repeaterChild = new 
> > > ImageRepeater(repeaterID);
> > >                        //add description
> > >                        repeaterChild.add(new Label("description",
> > > (String) desc.get(i)));
> > >                        //add image
> > >                        DBImage image = new DBImage();
> > >                        image.setImageData((byte[]) images.get(i));
> > >                        //not caching on browser
> > >                        Double random = Math.random();
> > >                        //put shared resource (image) on clean path
> > >                        
> > Start.get().getSharedResources().add("image" +
> > > random.toString() + ".jpg", image);
> > >                        ResourceReference imageResource = new 
> > > ResourceReference("image" + random.toString() + ".jpg");
> > >                        String url =
> > > RequestCycle.get().urlFor(imageResource).toString();
> > >                        //href in <a> and src in <img>
> > should have same
> > > path because lightbox won't work...
> > >                        ExternalLink odkaz = new
> > ExternalLink("anchor",
> > > url);
> > >                        WebMarkupContainer imageSrcAttribute = new 
> > > WebMarkupContainer("image");
> > >                        imageSrcAttribute.add(new 
> > > AttributeModifier("src", new Model<String>(url)));
> > >                        odkaz.add(imageSrcAttribute);
> > >                        odkaz.add(new
> > SimpleAttributeModifier("title",
> > > (String) desc.get(i)));
> > >                        repeaterChild.add(odkaz);
> > >                        repeater.add(repeaterChild);
> > >                }
> > >                this.add(repeater);
> > >        }
> > > }
> > >
> > > package com.myapp;
> > > public class ImagesMinerals extends
> > > LoadableDetachableModel<ArrayList<byte[]>>{
> > >        @Override
> > >        protected ArrayList load(){
> > >                DBGetImages databaseMinerals = new DBGetImages();
> > >                ArrayList dataMineraly = 
> databaseMinerals.getData();
> > >                return dataMinerals;
> > >        }
> > > }
> > >
> > > My problem is that when i again and again click on page the
> > memory in
> > > tomcat is eaten and I end-up with Java heap space error. Doesn't 
> > > matter if heap is 64MB or 1GB on start, after some clicks 
> memory is 
> > > eaten.
> > >
> > > Somethink wrong with my LDM?
> > >
> > > Miro
> > >
> > >
> > > 
> > 
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > > For additional commands, e-mail: users-h...@wicket.apache.org
> > >
> > >
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to