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 "Aleksey Gureev (JIRA)" <xm...@ws.apache.org> on 2006/07/19 11:58:13 UTC
[jira] Created: (XMLRPC-98) Serious problem with method selection
in ReflectiveXmlRpcHandler
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
[jira] Closed: (XMLRPC-98) Serious problem with method selection in
ReflectiveXmlRpcHandler
Posted by "Jochen Wiedmann (JIRA)" <xm...@ws.apache.org>.
[ 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