velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <lawre...@marchex.com>
Subject Re: OutOfMemoryException Processing Velocity Template
Date Tue, 10 May 2005 17:35:50 GMT
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, lawrence@marchex.com <lawrence@marchex.com> 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?
> > >
> > >
> > > lawrence@marchex.com wrote:
> > > >The stack trace makes it seem like the problem still originates from the
> > > >VelocityViewServlet, and not the TilesTool:
> > > >
> > > >org.apache.velocity.exception.MethodInvocationException: 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(ASTReference.java:175)
> > > >     at
> > > >     org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:220)
> > > >     at
> > > >     org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.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.doRequest(Unknown
Source)
> > > >     at
> > > >     org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(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(ApplicationDispatcher.java:684)
> > > >     at
> > > >     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
> > > >     at
> > > >     org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
> > > >     at
> > > >     org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1097)
> > > >     at
> > > >     org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:302)
> > > >     at
> > > >     org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:278)
> > > >     at
> > > >     org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:341)
> > > >     at
> > > >     org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:272)
> > > >     at
> > > >     org.apache.struts.action.ActionServlet.process(ActionServlet.java: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.internalDoFilter(ApplicationFilterChain.java:247)
> > > >     at
> > > >     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
> > > >     at
> > > >     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> > > >     at
> > > >     org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > > >     at
> > > >     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> > > >     at
> > > >     org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > > >     at
> > > >     org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
> > > >     at
> > > >     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
> > > >     at
> > > >     org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
> > > >     at
> > > >     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> > > >     at
> > > >     org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > > >     at
> > > >     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
> > > >     at
> > > >     org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.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(ChannelSocket.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
> > > >>
> > > >>
> > > >>lawrence@marchex.com 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, lawrence@marchex.com
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: lawrence@marchex.com [mailto:lawrence@marchex.com]
> > > >>>>>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: lawrence@marchex.com [mailto:lawrence@marchex.com]
> > > >>>>>>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, lawrence@marchex.com <lawrence@marchex.com>
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
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>lawrence@marchex.com 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, lawrence@marchex.com
<lawrence@marchex.com> 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_RESOURCE_LOADER_CACHE,
> > > >>>>>>
> > > >>>>>>"true");
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>>>where ri is a runtime instance.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>Will this fix your issue?
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>Cheers,
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>Jian
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>On 5/5/05, lawrence@marchex.com
<lawrence@marchex.com>
> > > >>>>>
> > > >>>>>wrote:
> > > >>>>>
> > > >>>>>
> > > >>>>>>>>>>>>>>I am getting an OutOfMemoryException:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>org.apache.velocity.exception.MethodInvocationException:
> > > >>>>>>
> > > >>>>>>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:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>>>>For additional commands,
e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>--------------------------------------------------------------------
> > > >>>>>>
> > > >>>>>>-
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>>>To unsubscribe, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>>>For additional commands,
e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>---------------------------------------------------------------------
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>>>>>>To unsubscribe, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>>For additional commands, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>---------------------------------------------------------------------
> > > >>>>>>>
> > > >>>>>>>
> > > >>>>>>>>>>>To unsubscribe, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>>For additional commands, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>---------------------------------------------------------------------
> > > >>>>>>>
> > > >>>>>>>
> > > >>>>>>>>>>To unsubscribe, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>For additional commands, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>>.
> > > >>>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>>>>
> > > >>>>>>---------------------------------------------------------------------
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>To unsubscribe, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>>For additional commands, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>---------------------------------------------------------------------
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>>>To unsubscribe, e-mail:
> > > >>>>>
> > > >>>>>velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>
> > > >>>>>
> > > >>>>>>>>For additional commands, e-mail:
> > > >>>>>>
> > > >>>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>---------------------------------------------------------------------
> > > >>>>>
> > > >>>>>
> > > >>>>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>>For additional commands, e-mail:
> > > >>>>>
> > > >>>>>velocity-user-help@jakarta.apache.org
> > > >>>>>
> > > >>>>>
> > > >>>>>>---------------------------------------------------------------------
> > > >>>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>---------------------------------------------------------------------
> > > >>>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>>>
> > > >>>>>---------------------------------------------------------------------
> > > >>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>>>
> > > >>>>>
> > > >>>>>---------------------------------------------------------------------
> > > >>>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>>
> > > >>>>---------------------------------------------------------------------
> > > >>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>
> > > >>>
> > > >>>---------------------------------------------------------------------
> > > >>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >>>
> > > >>>.
> > > >>>
> > > >>
> > > >>
> > > >>---------------------------------------------------------------------
> > > >>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >
> > > >
> > > >---------------------------------------------------------------------
> > > >To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > >For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > > >
> > > >.
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: velocity-user-help@jakarta.apache.org
> > 
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: velocity-user-help@jakarta.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Mime
View raw message