You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by by...@apache.org on 2009/01/03 15:10:31 UTC

svn commit: r730987 - in /velocity/engine/trunk/src: changes/changes.xml java/org/apache/velocity/runtime/parser/node/ASTReference.java

Author: byron
Date: Sat Jan  3 06:10:31 2009
New Revision: 730987

URL: http://svn.apache.org/viewvc?rev=730987&view=rev
Log:
VELOCITY-656 Improve error reporting when toString() throws an exceptionin #if() testing

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

Modified: velocity/engine/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/changes/changes.xml?rev=730987&r1=730986&r2=730987&view=diff
==============================================================================
--- velocity/engine/trunk/src/changes/changes.xml (original)
+++ velocity/engine/trunk/src/changes/changes.xml Sat Jan  3 06:10:31 2009
@@ -1,4 +1,3 @@
-ls
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!--
@@ -28,6 +27,11 @@
   <body>
     <release version="1.7" date="In Subversion">
 
+      <action type="add" dev="byron" issue="VELOCITY-656">
+	Better error reporting when toString() throw an exception when testing
+	an #if conditional. For example #if($foo)
+      </action>
+      
       <action type="add" dev="byron" issue="VELOCITY-406">
  	  Added bracketed index syntax, $foo[0], or #set($foo[0] = 1)
       </action>

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java?rev=730987&r1=730986&r2=730987&view=diff
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java Sat Jan  3 06:10:31 2009
@@ -481,13 +481,19 @@
                 return true;
             else
                 return false;
-        }
-        else if (value.toString() == null)
+        }        
+        else
         {
-            return false;
+            try
+            {
+                return value.toString() != null;
+            }
+            catch(Exception e)
+            {
+                throw new VelocityException("Reference evaluation threw an exception at " 
+                    + Log.formatFileString(this), e);
+            }
         }
-        else
-            return true;
     }
 
     /**