>From way back in your first email: "unless I set the tomcat JVM to use a heap size of at least 256M...."
I'm of two minds: 1) Is there something wrong with that size? What I mean is, the default heap size is fairly small, considering that most servers worth their name have *at least* 512MB to spare. And I'm not trying to make fun of anyone's server here... I'm just asking: Is this now a bug, or more of a "application memory sizing/requirements" issue? p.s. I *wish* I could run the apps I do at work on as little as 256. 2) 150+MB just to do html pushing *does* seem extreme. But on the other hand, how many HTML pages have 66k+ rows? I think most clients, never mind servers, would start to choke on that. So for sure, there ought to be a way to "do better". But I go back to #1 -> the TilesTool seems to 'do 90% of everyone's jobs', and your job is an edgecase; perhaps not for you, but certainly for me and any apps I've ever written. > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 10, 2005 6:21 PM > To: Nathan Bubna > Cc: Velocity Users List > Subject: Re: OutOfMemoryException Processing Velocity Template > > > *Gasp* Ok so I did what you suggested and when I request > the particular template WITHOUT using tiles, it works. But > what now? We've located that the memory problem is indeed in > TilesTools (probably cause it uses a BtyeArrayOutputStream), > but my application is heavily reliant on the use of the TilesTool ... > > Suggestions? > > -L > > P.S. I actually did get the FileOutputStream method to work > with Tiles, but on the page with the huge table, it broke. > > On Tue, May 10, 2005 at 02:35:14PM -0700, Nathan Bubna wrote: > > oops. didn't mean to take this off the list... > > > > i'm quite skeptical that you could get the FileOutputStream > method to > > work with Tiles. you might be able extend the > VelocityViewServlet to > > do something like that though. i'm not sure what the best tactic > > there would be. > > > > as for just requesting the particular template and not using Tiles, > > that should be simple. the tile being requested is just a template > > like any other. the TilesRequestProcessor is just making > an internal > > servlet request (forward or include). all you need to do > is request > > the same template of the VVS directly. in other words, get > your app > > running, enter the URL for the template in question (or one > that does > > the same thing), rather than the parent template that is > requesting it > > as a tile ($tile.foo), and see what happens. > > > > On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > How would I do that? > > > > > > I changed the ImportSupport class to use a > FileOutputStream, which writes out to a temp file. Then the > getString() method reads that temp file. What happens when I > do this, however, is when I get to the page with the 66000 > row table, it sits there for about 1 minute until it runs out > of memory. I'm thoroughly confused! > > > > > > -L > > > > > > On Tue, May 10, 2005 at 11:31:17AM -0700, Nathan Bubna wrote: > > > > hmm. yeah, i don't know what to do then. without some good > > > > profiling to see what is hogging the memory, it's hard to say. > > > > have you tried just requesting the template in question > directly > > > > with the VVS rather than trying to hold it in memory as a tile? > > > > > > > > that might at least narrow down the area with the problem. > > > > > > > > On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > > > Ok I tried that, but unfortunately, it didn't do the > trick =(. I verified that getResponseWriter was returning > an OutputStreamWriter, but it didn't help. Maybe I'll have > to change TilesTool to return an FileOutputStream that writes > to a temp file.... but would that work? Oh well, anything > is worth trying now! > > > > > > > > > > -L > > > > > > > > > > On Tue, May 10, 2005 at 10:44:05AM -0700, Nathan Bubna wrote: > > > > > > well, maybe you can just override the VVS's > > > > > > getResponseWriter() method somehow to try calling/using > > > > > > getOutputStream() on requests first. but i'm not sure that > > > > > > will do the trick. it might, if it's just > StringWriter that > > > > > > is the problem and the whole of the tile's content can be > > > > > > reasonably held in memory with a > ByteArrayOutputStream (which > > > > > > is what the ImportResponseWrapper uses to hold the > tile content if > > > > > > getOutputStream() is called instead of getWriter()). > > > > > > > > > > > > might be worth a shot at least. > > > > > > > > > > > > On 5/10/05, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: > > > > > > > Hm, thats interesting. Thanks for the info. > What would you suggest I do? Can I easily override a method > in VelocityViewServlet that fixes this problem? > > > > > > > > > > > > > > -L > > > > > > > > > > > > > > On Tue, May 10, 2005 at 10:32:40AM -0700, Nathan Bubna > > > > > > > wrote: > > > > > > > > if you are using the TilesTool, note that it extends > > > > > > > > ImportSupport which uses a custom > > > > > > > > HttpServletResponseWrapper (an internal class called > > > > > > > > ImportResponseWrapper). if the getWriter() method is > > > > > > > > called on that wrapper instead of > getOutputStream(), then > > > > > > > > the wrapper will use a StringWriter to hold the content > > > > > > > > being imported. i believe the VelocityViewServlet does > > > > > > > > indeed try to use getWriter() before trying > > > > > > > > getOutputStream(). so import requests via the > TilesTool > > > > > > > > that are mapped to the VVS, will use a StringWriter. > > > > > > > > > > > > > > > > i'm not sure if this helps, but i seem to > recall mention > > > > > > > > of the TilesTool early in the thread and that use of a > > > > > > > > StringWriter seems to be the problem. > > > > > > > > > > > > > > > > On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> > > > > > > > > wrote: > > > > > > > > > The TufteViewServlet overrides mergeTemplate > only to print out some various memory statistics. I'll try > playing around with setBufferSize(), but I'm close to giving up =\. > > > > > > > > > > > > > > > > > > -L > > > > > > > > > > > > > > > > > > On Tue, May 10, 2005 at 09:19:33AM +0300, Ilkka Priha > > > > > > > > > wrote: > > > > > > > > > > Maybe not the tiles tool, but some other filter or > > > > > > > > > > processor along the trace may have wrapped the > > > > > > > > > > response with a caching one. And you have > > > > > > > > > > TufteViewServlet calling mergeTemplate and actually > > > > > > > > > > deciding the writer to apply, not > > > > > > > > > > VelocityViewServlet... > > > > > > > > > > > > > > > > > > > > You can set the buffer size of the response > before any > > > > > > > > > > output with > > > > > > > > > > response.setBufferSize() (or check its > current size with > > > > > > > > > > response.getBufferSize()). That should set > the buffer size for > > > > > > > > > > ServletOutputStream correspondingly. > > > > > > > > > > > > > > > > > > > > -- Ilkka > > > > > > > > > > > > > > > > > > > > BTW. Are browsers capable of viewing an > HTML page of > > > > > > > > > > 100-200 MB in size and how long does it > take to load > > > > > > > > > > such a monster through the net? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] wrote: > > > > > > > > > > >The stack trace makes it seem like the > problem still > > > > > > > > > > >originates from the VelocityViewServlet, > and not the > > > > > > > > > > >TilesTool: > > > > > > > > > > > > > > > > > > > > > > >org.apache.velocity.exception.MethodInvocationExcepti > > > > > > > > > > >on: Invocation of method 'get' in class > > > > > > > > > > >org.apache.velocity.tools.struts.TilesTool > threw exception class java.lang.OutOfMemoryError : null > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.runtime.parser.node.ASTIdentifier.execute( > ASTIdentifier.java:193) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.runtime.parser.node.ASTReference.execute(A > STReference.java:175) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.runtime.parser.node.ASTReference.render(AS > TReference.java:220) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.runtime.parser.node.SimpleNode.render(Simp > leNode.java:230) > > > > > > > > > > > at > org.apache.velocity.Template.merge(Template.java:256) > > > > > > > > > > > at > > > > > > > > > > > > tufte.controller.tools.servlet.TufteViewServlet.mergeTemplate( > TufteViewServlet.java:106) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.tools.view.servlet.VelocityViewServlet.doR > equest(Unknown Source) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.velocity.tools.view.servlet.VelocityViewServlet.doG > et(Unknown Source) > > > > > > > > > > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > > > > > > > > > > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ApplicationDispatcher.invoke(Applicat > ionDispatcher.java:684) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ApplicationDispatcher.doForward(Appli > cationDispatcher.java:432) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ApplicationDispatcher.forward(Applica > tionDispatcher.java:356) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.action.RequestProcessor.doForward(RequestPro > cessor.java:1097) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesR > equestProcessor.java:302) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.tiles.TilesRequestProcessor.processTilesDefi > nition(TilesRequestProcessor.java:278) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.tiles.TilesRequestProcessor.processForwardCo > nfig(TilesRequestProcessor.java:341) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.action.RequestProcessor.process(RequestProce > ssor.java:272) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.action.ActionServlet.process(ActionServlet.j > ava:1187) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:433) > > > > > > > > > > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > > > > > > > > > > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > er(ApplicationFilterChain.java:247) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > cationFilterChain.java:193) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > rapperValve.java:256) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:643) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:480) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardC > ontextValve.java:191) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:643) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:480) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardContext.invoke(StandardContex > t.java:2415) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > Valve.java:180) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:643) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi > spatcherValve.java:171) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:641) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > Valve.java:172) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:641) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:480) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > gineValve.java:174) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline$StandardPipelineValv > eContext.invokeNext(StandardPipeline.java:643) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:480) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter. > java:223) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360) > > > > > > > > > > > at > org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.jk.common.ChannelSocket.processConnection(ChannelSo > cket.java:562) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679) > > > > > > > > > > > at > > > > > > > > > > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > ThreadPool.java:619) > > > > > > > > > > > at java.lang.Thread.run(Thread.java:534) > > > > > > > > > > > > > > > > > > > > > >So I suppose the question is, how effecient is > > > > > > > > > > >ServletOutputStream? When I use an > FileOutputStream, > > > > > > > > > > >very little memory is required. > > > > > > > > > > > > > > > > > > > > > >-L > > > > > > > > > > > > > > > > > > > > > >On Sat, May 07, 2005 at 11:43:03AM +0300, > Ilkka Priha > > > > > > > > > > >wrote: > > > > > > > > > > > > > > > > > > > > > >>Maybe you are not referring to this memory eating > > > > > > > > > > >>template directly from VelocityServlet, > but through > > > > > > > > > > >>some tool, #include, etc., which uses a nested > > > > > > > > > > >>StringWriter and not the servlet's > > > > > > > > > > >>OutputStreamWriter directly. According to > your first > > > > > > > > > > >>post, the original oom exception was > thrown by the > > > > > > > > > > >>Velocity Struts Tiles tool... > > > > > > > > > > >> > > > > > > > > > > >>-- Ilkka > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >>[EMAIL PROTECTED] wrote: > > > > > > > > > > >> > > > > > > > > > > >>>Ok now I'm confused (suprise, suprise!). > I looked at the source for > > > > > > > > > > >>>VelocityServlet, and mergeTemplate has: > > > > > > > > > > >>> > > > > > > > > > > >>>vw = (VelocityWriter) writerPool.get(); > > > > > > > > > > >>> > > > > > > > > > > >>>if (vw == null) > > > > > > > > > > >>>{ > > > > > > > > > > >>> vw = new VelocityWriter(new > > > > > > > > > > >>>OutputStreamWriter(output, encoding),4 * > > > > > > > > > > >>> 1024, true); > > > > > > > > > > >>>} > > > > > > > > > > >>>else > > > > > > > > > > >>>{ > > > > > > > > > > >>> vw.recycle(new > OutputStreamWriter(output, encoding)); > > > > > > > > > > >>>} > > > > > > > > > > >>>template.merge(context, vw); > > > > > > > > > > >>> > > > > > > > > > > >>>=== > > > > > > > > > > >>> > > > > > > > > > > >>>So the VelocityServlet DOES use > OutputStreamWriter > > > > > > > > > > >>>already ... so then why does it still utilize so > > > > > > > > > > >>>much memory? > > > > > > > > > > >>> > > > > > > > > > > >>>-L > > > > > > > > > > >>> > > > > > > > > > > >>>On Fri, May 06, 2005 at 02:02:07PM -0700, > > > > > > > > > > >>>[EMAIL PROTECTED] wrote: > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > > >>>>Alright, I changed the Writer to be: > > > > > > > > > > >>>> > > > > > > > > > > >>>>OutputStreamWriter w = new > OutputStreamWriter(new > > > > > > > > > > >>>>FileOutputStream("test.html")); > > > > > > > > > > >>>> > > > > > > > > > > >>>>And this fixes the memory problem. > > > > > > > > > > >>>> > > > > > > > > > > >>>>However, my application is running > Velocity as a > > > > > > > > > > >>>>servlet, how should I extend the > VelocityServlet > > > > > > > > > > >>>>to use an OutputStreamWriter intead of a > > > > > > > > > > >>>>StringWriter? Should I post a different email > > > > > > > > > > >>>>thread about this? > > > > > > > > > > >>>> > > > > > > > > > > >>>>-L > > > > > > > > > > >>>> > > > > > > > > > > >>>>On Fri, May 06, 2005 at 01:59:19PM -0700, David > > > > > > > > > > >>>>You wrote: > > > > > > > > > > >>>> > > > > > > > > > > >>>> > > > > > > > > > > >>>>>Well, Open a file, use a FileWriter. > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>David > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>-----Original Message----- > > > > > > > > > > >>>>>From: [EMAIL PROTECTED] > > > > > > > > > > >>>>>[mailto:[EMAIL PROTECTED] > > > > > > > > > > >>>>>Sent: Friday, May 06, 2005 1:48 PM > > > > > > > > > > >>>>>To: Velocity Users List > > > > > > > > > > >>>>>Subject: Re: OutOfMemoryException > Processing Velocity Template > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>I printed out the available memory before and > > > > > > > > > > >>>>>after I call > > > > > > > > > > >>>>>"mergeTemplate": > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>Free memory before merge: 217393352 > > > > > > > > > > >>>>>Free memory after merge: 16271392 > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>so I would assume the StringWriter is > approximately 200MB after the > > > > > > > > > > >>>>>merge. What should I use/do instead? > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>-Lawrence > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>On Fri, May 06, 2005 at 01:43:50PM > -0700, David > > > > > > > > > > >>>>>You wrote: > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>Why do you use StringWriter? That is > cached in > > > > > > > > > > >>>>>>the memory. How big is the StringWriter after > > > > > > > > > > >>>>>>the merge? > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>David > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>-----Original Message----- > > > > > > > > > > >>>>>>From: [EMAIL PROTECTED] > > > > > > > > > > >>>>>>[mailto:[EMAIL PROTECTED] > > > > > > > > > > >>>>>>Sent: Friday, May 06, 2005 1:22 PM > > > > > > > > > > >>>>>>To: Velocity Users List > > > > > > > > > > >>>>>>Subject: Re: OutOfMemoryException > Processing Velocity Template > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>Alright, I ran this little piece of code: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>public static void main( String > args[] ) throws > > > > > > > > > > >>>>>>Exception { > > > > > > > > > > >>>>>> /* first, we init the runtime engine. > > > > > > > > > > >>>>>>Defaults are fine. */ > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> Velocity.init(); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> /* lets make a Context and put > data into it > > > > > > > > > > >>>>>> */ > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> VelocityContext context = new > > > > > > > > > > >>>>>> VelocityContext(); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> List results = > ReportBean.runLargeReport(); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> context.put("List", results); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> /* lets render a template */ > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> StringWriter w = new StringWriter(); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > Velocity.mergeTemplate("/myfile.vm", context, w ); > > > > > > > > > > >>>>>> System.out.println(" template : " + w ); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> /* lets make our own string to > render */ } > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>results is a List of 66000 objects > and requires about 8megs of memory. > > > > > > > > > > >>>>>>The "mergeTemplate" requires at least > 230 MB of memory. Any > > > > > > > > > > >>>>>>suggestions? > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>-L > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>On Fri, May 06, 2005 at 11:53:30AM > -0700, jian > > > > > > > > > > >>>>>>chen wrote: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>Hi, > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>I guess the writer Ilkka talked > about is when > > > > > > > > > > >>>>>>>using Velocity as a standalone > template engine. > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>Right now I don't have a good clue, > could you > > > > > > > > > > >>>>>>>run Velocity as a standalone template engine > > > > > > > > > > >>>>>>>and render the page to see if there > is a huge > > > > > > > > > > >>>>>>>memory usage? > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>Cheers, > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>Jian > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>On 5/6/05, [EMAIL PROTECTED] > > > > > > > > > > >>>>>>><[EMAIL PROTECTED]> wrote: > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>>Sorry, I'm not sure what you mean by what > > > > > > > > > > >>>>>>>>"kind of writer" I'm > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>using. Where would I find out? > How would I change this (to maybe a > > > > > > > > > > >>>>>>StringBuffer writer?) > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>Also, each column contains a String > that is at > > > > > > > > > > >>>>>>>>most, 200 > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>characters, > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>most are closer to 10-20. There are > a total of 10 columns. > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>Thanks. > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>>-Lawrence > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>>On Fri, May 06, 2005 at 09:11:13PM +0300, > > > > > > > > > > >>>>>>>>Ilkka Priha wrote: > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>>>What kind of writer are you using and how > > > > > > > > > > >>>>>>>>>long are the items? 66 > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>000 HTML > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>table rows with 5 numeric columns consumes > > > > > > > > > > >>>>>>>>>about 32 MB when > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>buffered into a > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>string writer. If the items are longer, it > > > > > > > > > > >>>>>>>>>takes much more > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>memory. > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>>>>-- Ilkka > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>>[EMAIL PROTECTED] wrote: > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>>>I tried putting static HTML in > the #foreach > > > > > > > > > > >>>>>>>>>>loop, same problem. > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>Then I > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>tried setting the large list as a "local" > > > > > > > > > > >>>>>>>>>>varible: > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>>#set ($localList = $List) > #foreach($row in > > > > > > > > > > >>>>>>>>>>$localList) ... > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>>but that didnt help either. I > don't see why velocity should > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>use > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>250+ MB > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>of memory iterating over a list ~8MB in > > > > > > > > > > >>>>>>>>>>size... -L > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>>On Thu, May 05, 2005 at 02:56:28PM -0700, > > > > > > > > > > >>>>>>>>>>jian chen wrote: > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>Well, I don't have a good clue now. > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>What about do the debugging step > by step, > > > > > > > > > > >>>>>>>>>>>i.e., use just > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>static > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>html > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>in your #foreach loop? Will that blow up > > > > > > > > > > >>>>>>>>>>>the memory? > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>Cheers, > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>Jian > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>On 5/5/05, [EMAIL PROTECTED] > > > > > > > > > > >>>>>>>>>>><[EMAIL PROTECTED]> wrote: > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>Thanks for the suggestion. I > tried putting that, along with > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>file.resource.loader.cache = true > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>in my velocity.properties file. > Both did not work. Any > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>other > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>suggestions? > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>Thanks! > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>-L > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>On Thu, May 05, 2005 at > 02:11:28PM -0700, > > > > > > > > > > >>>>>>>>>>>>jian chen wrote: > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>Hi, > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>This maybe because you haven't > turned on > > > > > > > > > > >>>>>>>>>>>>>template caching. I > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>had > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>similar problem before, and even if I > > > > > > > > > > >>>>>>>>>>>>>only used > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>evaluate(...) > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>method > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>and load the template using my > own java > > > > > > > > > > >>>>>>>>>>>>>program, it happened > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>when the > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>for loop is lot of iterations. > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>The bottom line for my problem > is I need > > > > > > > > > > >>>>>>>>>>>>>to turn on template > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>caching, > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>so, velocity will not try to cache the > > > > > > > > > > >>>>>>>>>>>>>objects it parsed > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>during each > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>time of the iteration. > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>I did: > > > > > > > > > > > >>>>>>>>>>>>>ri.setProperty(RuntimeConstants.FILE_RESO > > > > > > > > > > >>>>>>>>>>>>>URCE_LOADER_CACHE, > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>"true"); > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>where ri is a runtime instance. > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>Will this fix your issue? > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>Cheers, > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>Jian > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>On 5/5/05, [EMAIL PROTECTED] > > > > > > > > > > >>>>>>>>>>>>><[EMAIL PROTECTED]> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>wrote: > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>>>>>>>>>I am getting an OutOfMemoryException: > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > > >>>>>>>>>>>>>>org.apache.velocity.exception.MethodInvo > > > > > > > > > > >>>>>>>>>>>>>>cationException: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>Invocation of > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>method 'get' in class > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>org.apache.velocity.tools.struts.TilesTool > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>threw exception class > > > > > > > > > > >>>>>>>>>>>>>>java.lang.OutOfMemoryError : null > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>>when I am creating a large velocity > > > > > > > > > > >>>>>>>>>>>>>>file. The vm file > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>itself > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>is > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>fairly small, but this piece > of velocity > > > > > > > > > > >>>>>>>>>>>>>>is causing the > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>exception: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>#foreach($row in $List) > > > > > > > > > > >>>>>>>>>>>>>><tr> > > > > > > > > > > >>>>>>>>>>>>>><td height="20" > > > > > > > > > > >>>>>>>>>>>>>>class="tbltxt">$!row.item1</td> <td > > > > > > > > > > >>>>>>>>>>>>>>class="tbltxt">$!row.item2</td> <td > > > > > > > > > > >>>>>>>>>>>>>>class="tbltxt">$!row.item3</td> <td > > > > > > > > > > >>>>>>>>>>>>>>class="tbltxt">$!row.item4</td> <td > > > > > > > > > > > >>>>>>>>>>>>>>class="tbltxt">$!number.format('currency > > > > > > > > > > >>>>>>>>>>>>>>', > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>$!row.item5)</td> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>></tr> > > > > > > > > > > >>>>>>>>>>>>>>#end > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>>List is a list of relatively small > > > > > > > > > > >>>>>>>>>>>>>>objects (5-6 Strings, a > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>couple of > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>BigDecimals), but the List itself > > > > > > > > > > >>>>>>>>>>>>>>contains approximately > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>66,000 > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>entries. Unfortunately, unless I set > > > > > > > > > > >>>>>>>>>>>>>>the tomcat JVM to use > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>a > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>heap > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>size of at least 256M, this velocity > > > > > > > > > > >>>>>>>>>>>>>>template throws an > OutOfMemoryException > > > > > > > > > > >>>>>>>>>>>>>>when it is being processed. > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>>Any suggestions? > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>>Thanks. > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>>>>>>>-L > > > > > > > > > > >>>>>>>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > >>>>>>>>>>-------------------------------------------- > > > > > > > > > > >>>>>>>>>>----------------------- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>-- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>>>>--------------------------------------------- > > > > > > > > > > >>>>>>>>>----------------------- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>>>---------------------------------------------- > > > > > > > > > > >>>>>>>>----------------------- > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>> > > > > > > > > > > >>>>>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>>----------------------------------------------- > > > > > > > > > > >>>>>>>---------------------- > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>>----------------------------------------------- > > > > > > > > > > >>>>>>>---------------------- > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>> > > > > > > > > > > >>>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>>. > > > > > > > > > > >>>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > >>>>>>>>> > > > > > > > > > > > >>>>>>------------------------------------------------ > > > > > > > > > > >>>>>>--------------------- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>------------------------------------------------ > > > > > > > > > > >>>>>>--------------------- > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>------------------------------------------------- > > > > > > > > > > >>>>>-------------------- > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>>>To unsubscribe, e-mail: > > > > > > > > > > >>>>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>>>>For additional commands, e-mail: > > > > > > > > > > >>>>> > > > > > > > > > > >>>>>[EMAIL PROTECTED] > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > > >>>>>>------------------------------------------------ > > > > > > > > > > >>>>>>--------------------- > > > > > > > > > > >>>>>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>>> > > > > > > > > > > >>>>>> > > > > > > > > > > > >>>>>>------------------------------------------------ > > > > > > > > > > >>>>>>--------------------- > > > > > > > > > > >>>>>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>> > > > > > > > > > > > >>>>>------------------------------------------------- > > > > > > > > > > >>>>>-------------------- > > > > > > > > > > >>>>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>> > > > > > > > > > > >>>>> > > > > > > > > > > > >>>>>------------------------------------------------- > > > > > > > > > > >>>>>-------------------- > > > > > > > > > > >>>>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>> > > > > > > > > > > > >>>>-------------------------------------------------- > > > > > > > > > > >>>>------------------- > > > > > > > > > > >>>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > > > >>>--------------------------------------------------- > > > > > > > > > > >>>------------------ > > > > > > > > > > >>>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>> > > > > > > > > > > >>>. > > > > > > > > > > >>> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > > >>---------------------------------------------------- > > > > > > > > > > >>----------------- > > > > > > > > > > >>To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >>For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >----------------------------------------------------- > > > > > > > > > > >---------------- > > > > > > > > > > >To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > >For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > >. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > --------------- > > > > > > > > > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > -------------------------------------------------------- > > > > > > > > > ------------- > > > > > > > > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------- > > > > > > > > ----------- > > > > > > > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > ------------------------------------------------------------ > > > > > > > --------- > > > > > > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > > ------- > > > > > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > > > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]