[ http://issues.apache.org/jira/browse/XMLRPC-124?page=all ]
Jimisola Laursen updated XMLRPC-124:
------------------------------------
Attachment: XMLRPC-124.diff
Fix for 1) and 2) in original issue description.
In addition to original issue description for 1) there was also a problem with
if (ReflectionUtil.setProperty(server, name, value)) {
throw new ServletException("Unknown init parameter " +
name);
}
since ReflectionUtil.setProperty returns true if the property was set correctly.
Hence, it should be
if (!ReflectionUtil.setProperty(server.getConfig(), name,
value)) {
throw new ServletException("Unknown init parameter " +
name);
}
> Initalization bugs 1) handleInitParameters always fails and 2)
> registerPublicMethods never adds void methods
> ------------------------------------------------------------------------------------------------------------
>
> Key: XMLRPC-124
> URL: http://issues.apache.org/jira/browse/XMLRPC-124
> Project: XML-RPC
> Issue Type: Bug
> Components: Source
> Affects Versions: 3.1
> Reporter: Jimisola Laursen
> Attachments: XMLRPC-124.diff
>
>
> 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());
--
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