You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by "Jochen Wiedmann (JIRA)" <xm...@ws.apache.org> on 2006/07/19 12:04:14 UTC

[jira] Closed: (XMLRPC-98) Serious problem with method selection in ReflectiveXmlRpcHandler

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

Jochen Wiedmann closed XMLRPC-98.
---------------------------------

    Resolution: Duplicate

> Serious problem with method selection in ReflectiveXmlRpcHandler
> ----------------------------------------------------------------
>
>                 Key: XMLRPC-98
>                 URL: http://issues.apache.org/jira/browse/XMLRPC-98
>             Project: XML-RPC
>          Issue Type: Bug
>          Components: Source
>    Affects Versions: 3.0b1
>            Reporter: Aleksey Gureev
>            Priority: Critical
>
> There's a trouble with loop indexes in the code preventing normal selection of methods to execute. Please examine this code:
> ---
> for (int i = 0;  i < methods.length;  i++) {
>   MethodData methodData = methods[i];
>   TypeConverter[] converters = methodData.typeConverters;
>     if (args.length == converters.length) {
>       boolean matching = true;
>       for (int j = 0;  j < args.length;  j++) {
>       if (!converters[j].isConvertable(args[i])) {
>         matching = false;
>         break;
>       }
>     }
>     if (matching) {
>       for (int j = 0;  j < args.length;  j++) {
>         args[i] = converters[i].convert(args[i]);
>       }
>       return invoke(instance, methodData.method, args);
>     }
>   }
> }
> ---
> It should be (insignificant parts skipped):
> ---
> for (int i = 0;  i < methods.length;  i++) {
>   ...
>       if (!converters[j].isConvertable(args[j])) {
>   ...
>         args[j] = converters[j].convert(args[j]);
>   ...
> }
> ---
> Please notice the change in indexes:
> * in isConvertable() call it's 'j' as we loop through args
> * in the line with convert() call there are three 'j' instead of three 'i'
> Frankly speaking, such mistakes look very scary. I'm moving our server from xmlrpc-1.2 to 3.0 and this makes me think and think if it's worth the effort even though the version 1.2 has a terrible bug with exception handling and threads leak. Sorry for telling this.
> Anyway, keep up good work and thanks for a good open-source project!

-- 
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: xmlrpc-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: xmlrpc-dev-help@ws.apache.org