You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Will Glass-Husain (JIRA)" <ji...@apache.org> on 2005/09/18 21:34:54 UTC

[jira] Updated: (VELOCITY-132) IllegalArgumentException while calling an overloaded method

     [ http://issues.apache.org/jira/browse/VELOCITY-132?page=all ]

Will Glass-Husain updated VELOCITY-132:
---------------------------------------

    Bugzilla Id:   (was: 16707)
    Fix Version: 1.5
                     (was: 1.4)
    Description: 
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

  was:
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

    Environment: 
Operating System: All
Platform: All

  was:
Operating System: All
Platform: All

      Assign To:     (was: Velocity-Dev List)

> 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
>     Priority: Blocker
>      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