Author: byron
Date: Sun Jan  4 07:52:08 2009
New Revision: 731279

URL: http://svn.apache.org/viewvc?rev=731279&view=rev
Log:
VELOCITY-664 Reduce memory usage of cached templates by preventing text from 
being stored twice

Modified:
    velocity/engine/trunk/src/changes/changes.xml
    
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
    
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java

Modified: velocity/engine/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/src/changes/changes.xml?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
--- velocity/engine/trunk/src/changes/changes.xml (original)
+++ velocity/engine/trunk/src/changes/changes.xml Sun Jan  4 07:52:08 2009
@@ -27,6 +27,11 @@
   <body>
     <release version="1.7" date="In Subversion">
 
+      <action type="fix" dev="byron" issue="VELOCITY-664">
+       Reduce memory usage of cached templates by preventing text from being 
stored
+       twice.
+      </action>
+      
       <action type="add" dev="byron" issue="VELOCITY-663">
        Re-implement #stop so that it stops template execution and rendering.  
This
        Also addresses a performance bottleneck detected in the old 
implementation.

Modified: 
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
--- 
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
 (original)
+++ 
velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTText.java
 Sun Jan  4 07:52:08 2009
@@ -32,7 +32,7 @@
  */
 public class ASTText extends SimpleNode
 {
-    private char[] ctext;
+    private String ctext;
 
     /**
      * @param id
@@ -66,11 +66,9 @@
     throws TemplateInitException
     {
         Token t = getFirstToken();
-
-        String text = NodeUtils.tokenLiteral( t );
-
-        ctext = text.toCharArray();
-
+        // In most cases tokenLiteral() will return back t.image, we want to 
use t.image directly
+        // and not a copy because otherwise this would mean all text nodes are 
stored twice.
+        ctext = NodeUtils.tokenLiteral( t );
         return data;
     }
 

Modified: 
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java?rev=731279&r1=731278&r2=731279&view=diff
==============================================================================
--- 
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java 
(original)
+++ 
velocity/engine/trunk/src/test/org/apache/velocity/test/BaseEvalTestCase.java 
Sun Jan  4 07:52:08 2009
@@ -37,7 +37,7 @@
 {
     protected VelocityEngine engine;
     protected VelocityContext context;
-    protected boolean DEBUG = true;
+    protected boolean DEBUG = false;
     protected TestLogChute log;
 
     public BaseEvalTestCase(String name)


Reply via email to