commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Bourg (JIRA)" <>
Subject [jira] Updated: (JXPATH-129) MethodUtils#matchType uses TypeUtils#canConvert which causes "Ambiguous method call" exception.
Date Fri, 29 May 2009 08:20:45 GMT


Emmanuel Bourg updated JXPATH-129:

    Fix Version/s:     (was: 1.3)

> MethodUtils#matchType uses TypeUtils#canConvert which causes "Ambiguous method call"
> -----------------------------------------------------------------------------------------------
>                 Key: JXPATH-129
>                 URL:
>             Project: Commons JXPath
>          Issue Type: Bug
>         Environment: Not relevant.
>            Reporter: Robert Ross
>             Fix For: post-1.3
> MethodUtils#matchParameterTypes calls MethodUtils#matchType.  
> MethodUtils#matchType includes this:
>         if (TypeUtils.canConvert(object, expected)) {
>             return APPROXIMATE_MATCH;
>         }
> This goes through a whole process of attempting to convert types using JXPath-specific
conversion routines.  However, this is not valid logic when attempting to find matching Methods
since overloaded functions with "convertable" parameters would still have different function
> An example:
> abstract class ExampleClass
> {
>      static final String formatISO(Calendar calendar) { return ""};
>      static final String formatISO(Date date) { return ""};
> }
> If referenced from JXPath with "ExampleClass.formatISO(pathToDateObject)", these two
functions would trigger JXPathException("lookupMethod() Ambiguous method call: " + name) because
apparently TypeUtils is able to convert a Calendar to a Date and vice-versa.
> When attempting to retrieve a function via signature, is it not irrelevant whether JXPath
is able to convert a parameter's type or not?  Is there a way to change this behavior or provide
a way to toggle this behavior similar to the setLenient() method.
> Also, the word "Ambiguous" is spelled incorrectly as "Ambigous" three times in MethodLookupUtils.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message