XML-RPC

Initalization bugs 1) handleInitParameters always fails and 2) registerPublicMethods never adds void methods

Created: 11/Nov/06 04:12 PM   Updated: 28/Nov/08 08:53 PM
Return to search
Component/s: Source
Affects Version/s: 3.1
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works XMLRPC-124.diff 2006-11-11 04:17 PM Jimisola Laursen 1 kB

Resolution Date: 11/Nov/06 10:50 PM


 Description  « Hide
1)

A bug was inserted when the patch for XMLRPC-116 was changed/refactored slightly.

In handleInitParameters you call ReflectionUtil.setProperty(server, name, value) where server is an XmlRpcServletServer . This class does not have any setters for init parameters such as "enabledForExtensions" or "contentLengthOptional", so reflection fails. I believe that methods on XmlRpcServerConfig are reflection should be used on (this is what I did in my patch) and therefore

ReflectionUtil.setProperty(server, name, value)

should change to

ReflectionUtil.setProperty(server.getConfig(), name, value).

2)

The latter issue was due to voidMethodEnabled not being set (here: to true) using isEnabledForExtension prior to public method being registered and therefore
XmlRpcServlet.newPropertyHandlerMapping:~180

should change to

        mapping.setVoidMethodEnabled(server.getConfig().isEnabledForExtensions());
        mapping.load(Thread.currentThread().getContextClassLoader(), url);

from

        mapping.load(Thread.currentThread().getContextClassLoader(), url);
        mapping.setVoidMethodEnabled(server.getConfig().isEnabledForExtensions());

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.