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[]";
+ }
+
}
}