--- frameworks/python/src/ladon/interfaces/jsonrpc10.py 2012-10-30 14:18:38 +0000 +++ frameworks/python/src/ladon/interfaces/jsonrpc10.py 2013-05-03 13:56:08 +0000 @@ -145,9 +145,13 @@ raise RequestParamsArrayFault(passback_dict) params_len = len(params) if params is not None else 0 args_len = len(minfo.args()) - if params_len == 0 and args_len> 0: + optional = 0 + for arg in minfo.args(): + if arg['optional']: + optional = optional + 1 + if params_len == 0 and args_len - optional > 0: raise RequestParamFault(minfo.args()[0]['name'],passback_dict) - elif params_len < args_len: + elif params_len < args_len - optional: raise RequestParamFault(minfo.args()[params_len]['name'],passback_dict) elif params_len > args_len: raise MethodArgsCountFault(req_dict['method'], args_len, params_len,passback_dict)