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 2008/11/25 00:35:14 UTC

svn commit: r720351 - in /velocity/engine/trunk/src: java/org/apache/velocity/util/introspection/UberspectImpl.java test/org/apache/velocity/test/VarargMethodsTestCase.java

Author: nbubna
Date: Mon Nov 24 15:35:13 2008
New Revision: 720351

URL: http://svn.apache.org/viewvc?rev=720351&view=rev
Log:
VELOCITY-649 beware of null values to vararg methods

Modified:
    velocity/engine/trunk/src/java/org/apache/velocity/util/introspection/UberspectImpl.java
    velocity/engine/trunk/src/test/org/apache/velocity/test/VarargMethodsTestCase.java

Modified: velocity/engine/trunk/src/java/org/apache/velocity/util/introspection/UberspectImpl.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/util/introspection/UberspectImpl.java?rev=720351&r1=720350&r2=720351&view=diff
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/util/introspection/UberspectImpl.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/util/introspection/UberspectImpl.java Mon Nov 24 15:35:13 2008
@@ -434,7 +434,7 @@
                 actual = new Object[] { Array.newInstance(type, 0) };
             }
             // if one value is being passed into the vararg
-            else if (actual.length == index + 1)
+            else if (actual.length == index + 1 && actual[index] != null)
             {
                 // make sure the last arg is an array of the expected type
                 Class argClass = actual[index].getClass();

Modified: velocity/engine/trunk/src/test/org/apache/velocity/test/VarargMethodsTestCase.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/test/org/apache/velocity/test/VarargMethodsTestCase.java?rev=720351&r1=720350&r2=720351&view=diff
==============================================================================
--- velocity/engine/trunk/src/test/org/apache/velocity/test/VarargMethodsTestCase.java (original)
+++ velocity/engine/trunk/src/test/org/apache/velocity/test/VarargMethodsTestCase.java Mon Nov 24 15:35:13 2008
@@ -116,6 +116,11 @@
         assertEvalEquals("[1, 2]", "#set( $list = [1..2] )$nasty.test642($list.toArray())");
     }
 
+    public void testNullToPrimitiveVarArg()
+    {
+        assertEvalEquals("int[]", "$nasty.test649($null)");
+    }
+
 
 
     public static class NiceTool
@@ -219,6 +224,11 @@
             return o.toString();
         }
 
+        public String test649(int[] array)
+        {
+            return "int[]";
+        }
+
     }
 
 }