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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]