You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Jarek Gawor <ga...@mcs.anl.gov> on 2003/08/21 21:36:42 UTC

output parameters in RPCProvider bug?

In the RPCProvider, the piece of code that handles the output params
(starting line 265) it puts the Holder objects into the argValues array
starting at an index based on the number of parameters passed in the
request. The problems is if some of the input parameters are optional and
not sent in the request, the output parameters in the argValues will be put
into the wrong location and therefore wrong operation on the service will be
invoked. For example, if I have a service with a method that takes one
optional input parameter and has two output parameters, and if the request
does not pass the input parameter, then the argValues array will look like
this: {FooHolder, BarHolder, null} but it should be: {null, FooHolder,
BarHolder}.
I modified that piece of code in RPCProvider to handle OUT params in the
same way as the INOUT params (so that order could be preserved) and that
solved this problem. If this makes sense I can submit a patch.

Jarek

Btw, it looks like org\apache\axis\configuration\FileProvider.java uses old
resource key ("noService").


Re: output parameters in RPCProvider bug?

Posted by Steve Loughran <st...@iseran.com>.
Jarek, can you file a bug on both these issues. Patches in cvs diff -u 
format are preferred. Test cases would be very, very nice too, as that 
way we can catch regressions automatically.

thanks,

-steve

Jarek Gawor wrote:
> In the RPCProvider, the piece of code that handles the output params
> (starting line 265) it puts the Holder objects into the argValues array
> starting at an index based on the number of parameters passed in the
> request. The problems is if some of the input parameters are optional and
> not sent in the request, the output parameters in the argValues will be put
> into the wrong location and therefore wrong operation on the service will be
> invoked. For example, if I have a service with a method that takes one
> optional input parameter and has two output parameters, and if the request
> does not pass the input parameter, then the argValues array will look like
> this: {FooHolder, BarHolder, null} but it should be: {null, FooHolder,
> BarHolder}.
> I modified that piece of code in RPCProvider to handle OUT params in the
> same way as the INOUT params (so that order could be preserved) and that
> solved this problem. If this makes sense I can submit a patch.
> 
> Jarek
> 
> Btw, it looks like org\apache\axis\configuration\FileProvider.java uses old
> resource key ("noService").
>