You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2007/08/09 20:25:15 UTC

svn commit: r564330 - in /velocity/engine/trunk/src/java/org/apache/velocity/runtime: RuntimeInstance.java VelocimacroFactory.java

Author: nbubna
Date: Thu Aug  9 11:25:13 2007
New Revision: 564330

URL: http://svn.apache.org/viewvc?view=rev&rev=564330
Log:
passing a null logtag into evaluate() already causes macros to fail, so enforce non-null logtags and make the error messages more helpful

Modified:
    velocity/engine/trunk/src/java/org/apache/velocity/runtime/RuntimeInstance.java
    velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/RuntimeInstance.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/RuntimeInstance.java?view=diff&rev=564330&r1=564329&r2=564330
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/RuntimeInstance.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/RuntimeInstance.java Thu Aug  9 11:25:13 2007
@@ -1142,6 +1142,11 @@
     public boolean evaluate(Context context, Writer writer,
                             String logTag, Reader reader) throws IOException
     {
+        if (logTag == null)
+        {
+            throw new NullPointerException("logTag (i.e. template name) cannot be null, you must provide an identifier for the content being evaluated");
+        }
+
         SimpleNode nodeTree = null;
         try
         {

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java?view=diff&rev=564330&r1=564329&r2=564330
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/VelocimacroFactory.java Thu Aug  9 11:25:13 2007
@@ -424,11 +424,31 @@
          * the caller like this...
          *
          * I hate this : maybe exceptions are in order here...
+         * They definitely would be if this was only called by directly
+         * by users, but Velocity calls this internally.
          */
-        if (name == null ||   macroBody == null || argArray == null ||
-                sourceTemplate == null)
+        if (name == null || macroBody == null || argArray == null ||
+            sourceTemplate == null)
         {
-            log.warn("VM addition rejected : programmer error : arg null");
+            String msg = "VM '"+name+"' addition rejected : ";
+            if (name == null)
+            {
+                msg += "name";
+            }
+            else if (macroBody == null)
+            {
+                msg += "macroBody";
+            }
+            else if (argArray == null)
+            {
+                msg += "argArray";
+            }
+            else
+            {
+                msg += "sourceTemplate";
+            }
+            msg += " argument was null";
+            log.warn(msg);
             return false;
         }