Dug,

This should fix the problem that you had this morning.

Thanks,
dims

--- [EMAIL PROTECTED] wrote:
> dims        2002/06/04 13:06:59
> 
>   Modified:    java/src/org/apache/axis/client Call.java
>   Log:
>   - Make sure that getParamList is called from only one spot.
>   - Fix possible NullPointerException in getParamList
>   - Fix getParamList such that if RPCParam already exists in the object array it is 
>used as-is.
>   
>   Revision  Changes    Path
>   1.127     +17 -10    xml-axis/java/src/org/apache/axis/client/Call.java
>   
>   Index: Call.java
>   ===================================================================
>   RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
>   retrieving revision 1.126
>   retrieving revision 1.127
>   diff -u -r1.126 -r1.127
>   --- Call.java       31 May 2002 19:08:06 -0000      1.126
>   +++ Call.java       4 Jun 2002 20:06:59 -0000       1.127
>   @@ -1172,14 +1172,14 @@
>                throw new AxisFault( JavaUtils.getMessage("noOperation00") );
>            try {
>                return this.invoke(operationName.getNamespaceURI(),
>   -                    operationName.getLocalPart(), getParamList(params));
>   +                    operationName.getLocalPart(), params);
>            }
>            catch( AxisFault af) {
>                throw af;
>            }
>            catch( Exception exp ) {
>                //if ( exp instanceof AxisFault ) throw (AxisFault) exp ;
>   -
>   +            exp.printStackTrace();
>                throw new AxisFault( JavaUtils.getMessage("errorInvoking00", "\n" + 
>exp) );
>            }
>        }
>   @@ -1197,7 +1197,7 @@
>         */
>        public void invokeOneWay(Object[] params) {
>            try {
>   -            invoke( getParamList(params) );
>   +            invoke( params );
>            }
>            catch( Exception exp ) {
>                throw new JAXRPCException( exp.toString() );
>   @@ -1333,7 +1333,6 @@
>    
>            // If we never set-up any names... then just return what was passed in
>            //////////////////////////////////////////////////////////////////////
>   -        log.debug( "getParamList number of params: " + params.length);
>            log.debug( "operation=" + operation);
>            if(operation != null) log.debug("operation.getNumParams()="
> +operation.getNumParams());
>            if ( operation.getNumParams() == 0 ) return( params );
>   @@ -1343,11 +1342,13 @@
>            /////////////////////////////////////////////////////////////////////
>            numParams = operation.getNumInParams();
>    
>   -        if ( numParams != params.length )
>   +        if ( params == null || numParams != params.length )
>                throw new JAXRPCException(
>                        JavaUtils.getMessage("parmMismatch00",
>                        "" + params.length, "" + numParams) );
>    
>   +        log.debug( "getParamList number of params: " + params.length);
>   +
>            // All ok - so now produce an array of RPCParams
>            //////////////////////////////////////////////////
>            Vector result = new Vector();
>   @@ -1360,14 +1361,20 @@
>                    continue ;
>    
>                QName paramQName = param.getQName();
>   -            RPCParam p = new RPCParam(paramQName.getNamespaceURI(),
>   +            RPCParam rpcParam = null;
>   +            Object p = params[j++];
>   +            if(p instanceof RPCParam) {
>   +                rpcParam = (RPCParam)p;
>   +            } else {
>   +                rpcParam = new RPCParam(paramQName.getNamespaceURI(),
>                                          paramQName.getLocalPart(),
>   -                                      params[j++] );
>   +                                      p );
>   +            }
>                // Attach the ParameterDescription to the RPCParam
>                // so that the serializer can use the (javaType, xmlType) 
>                // information.
>   -            p.setParamDesc(param);
>   -            result.add( p );
>   +            rpcParam.setParamDesc(param);
>   +            result.add( rpcParam );
>            }
>    
>            return( result.toArray() );
>   @@ -1607,7 +1614,7 @@
>                throw new AxisFault(JavaUtils.getMessage("mustSpecifyParms"));
>            }
>    
>   -        RPCElement  body = new RPCElement(namespace, method, args);
>   +        RPCElement  body = new RPCElement(namespace, method, getParamList(args));
>    
>            Object ret = invoke( body );
>    
>   
>   
>   


=====
Davanum Srinivas - http://xml.apache.org/~dims/

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

Reply via email to