You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Llewellyn Falco (JIRA)" <ji...@apache.org> on 2005/11/19 01:02:43 UTC
[jira] Commented: (VELOCITY-132) IllegalArgumentException while calling an overloaded method
[ http://issues.apache.org/jira/browse/VELOCITY-132?page=comments#action_12358041 ]
Llewellyn Falco commented on VELOCITY-132:
------------------------------------------
the following test breaks.
package com.spun.util.velocity.tests;
import junit.framework.TestCase;
import org.apache.velocity.context.Context;
import com.spun.util.velocity.ContextAware;
import com.spun.util.velocity.VelocityParser;
public class VelocityNullArgumentTest extends TestCase implements ContextAware
{
/***********************************************************************/
public void testOverloadedMethodFound() throws Exception
{
assertEquals("you got null", VelocityParser.parseString("$object.getClass($nullValue)", this));
}
/***********************************************************************/
public void setupContext(Context context)
{
context.put("object", this);
context.put("nullValue", null);
}
/***********************************************************************/
public static String getClass(Class c)
{
return c == null ? "you got null" : c.getName();
}
/***********************************************************************/
public static String getClass(String c)
{
return c == null ? "you got null" : c.getClass().getName();
}
/***********************************************************************/
/***********************************************************************/
}
> IllegalArgumentException while calling an overloaded method
> -----------------------------------------------------------
>
> Key: VELOCITY-132
> URL: http://issues.apache.org/jira/browse/VELOCITY-132
> Project: Velocity
> Type: Bug
> Components: Source
> Versions: 1.3-rc1
> Environment: Operating System: All
> Platform: All
> Reporter: MySign
> Fix For: 1.5
>
> If there are two methods with the same name and different parameters like:
> public class myClass
> {
> public String foo ( Integer intObj );
> public String foo ( String str );
> }
> and a velocity template like this
> $myObj.foo( $someObj.getNull() )
> $myObj.foo( $str )
> while $someObj.getNull() returns null and $str is a java.lang.String object
> with a String like 'test'. Because velocity caches the first method with the
> Integer argument on calling with the parameter null (which isn't of course of
> any type/class) the call fails with the String argument, because velocity tries
> to call the foo( Integer intObj )!
> In the velocity log appears a IllegalArgumentException which is right, but
> velocity should call the right method!
> mike
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-dev-help@jakarta.apache.org