Author: wglass
Date: Fri Sep 23 14:27:22 2005
New Revision: 291204

URL: http://svn.apache.org/viewcvs?rev=291204&view=rev
Log:
silent reference now works when toString of the context returns null.  (was 
throwing an exception.  Thanks to Llwellyn Falco and Dan Powell for the patch!

Added:
    
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/provider/NullToStringObject.java
Modified:
    
jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
    
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/TemplateTestCase.java
    jakarta/velocity/core/trunk/test/templates/compare/diabolical.cmp
    jakarta/velocity/core/trunk/test/templates/diabolical.vm

Modified: 
jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java?rev=291204&r1=291203&r2=291204&view=diff
==============================================================================
--- 
jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
 (original)
+++ 
jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/node/ASTReference.java
 Fri Sep 23 14:27:22 2005
@@ -171,11 +171,6 @@
             for (int i = 0; i < numChildren; i++)
             {
                 result = jjtGetChild(i).execute(result,context);
-
-                if (result == null)
-                {
-                    return null;
-                }
             }
 
             return result;
@@ -262,7 +257,7 @@
          *  if value is null...
          */
 
-        if (value == null)
+        if ( value == null || (value.toString() == null) )
         {
             /*
              *  write prefix twice, because it's schmoo, so the \ don't escape 
each other...

Modified: 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/TemplateTestCase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/TemplateTestCase.java?rev=291204&r1=291203&r2=291204&view=diff
==============================================================================
--- 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/TemplateTestCase.java
 (original)
+++ 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/TemplateTestCase.java
 Fri Sep 23 14:27:22 2005
@@ -30,6 +30,7 @@
 import org.apache.velocity.app.FieldMethodizer;
 import org.apache.velocity.runtime.RuntimeSingleton;
 import org.apache.velocity.test.provider.BoolObj;
+import org.apache.velocity.test.provider.NullToStringObject;
 import org.apache.velocity.test.provider.TestNumber;
 import org.apache.velocity.test.provider.TestProvider;
 
@@ -173,6 +174,8 @@
         nullList.add("d");
         context.put("nullList", nullList);
 
+        // test silent references with a null tostring
+        context.put("nullToString",new NullToStringObject());
     }
 
     /**

Added: 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/provider/NullToStringObject.java
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/provider/NullToStringObject.java?rev=291204&view=auto
==============================================================================
--- 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/provider/NullToStringObject.java
 (added)
+++ 
jakarta/velocity/core/trunk/src/test/org/apache/velocity/test/provider/NullToStringObject.java
 Fri Sep 23 14:27:22 2005
@@ -0,0 +1,30 @@
+package org.apache.velocity.test.provider;

+

+/*

+ * Copyright 2001-2004 The Apache Software Foundation.

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License")

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+/**

+ * Used to confirm that a null to string is processed properly

+ * @author <a href="mailto:[EMAIL PROTECTED]">Will Glass-Husain</a>

+ * @version $Id: ForeachMethodCallHelper.java 290942 2005-09-22 13:32:34Z 
henning $

+ */

+public class NullToStringObject

+{

+    public String toString() 

+    {

+        return null;

+    }

+}


Modified: jakarta/velocity/core/trunk/test/templates/compare/diabolical.cmp
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/test/templates/compare/diabolical.cmp?rev=291204&r1=291203&r2=291204&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/test/templates/compare/diabolical.cmp (original)
+++ jakarta/velocity/core/trunk/test/templates/compare/diabolical.cmp Fri Sep 
23 14:27:22 2005
@@ -43,3 +43,8 @@
 foobar
 
 #0F
+
+$nullToString
+$nullToString.toString()
+
+

Modified: jakarta/velocity/core/trunk/test/templates/diabolical.vm
URL: 
http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/test/templates/diabolical.vm?rev=291204&r1=291203&r2=291204&view=diff
==============================================================================
--- jakarta/velocity/core/trunk/test/templates/diabolical.vm (original)
+++ jakarta/velocity/core/trunk/test/templates/diabolical.vm Fri Sep 23 
14:27:22 2005
@@ -60,3 +60,8 @@
 
 #set($a=1)
 #0F
+
+$nullToString
+$nullToString.toString()
+$!nullToString
+$!nullToString.toString()



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to