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

Jochen Wiedmann resolved XMLRPC-124.
------------------------------------

    Resolution: Fixed

I have changed the handling of init parameters like this:

                if (!ReflectionUtil.setProperty(this, name, value)
                    &&  !ReflectionUtil.setProperty(server, name, value)
                    &&  !ReflectionUtil.setProperty(server.getConfig(), name, 
value)) {



> 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

        

Reply via email to