[ http://jira.codehaus.org/browse/XFIRE-352?page=all ]

Dan Diephouse updated XFIRE-352:
--------------------------------

    Fix Version: 1.1

> When no SOAP action is specified XFire sometimes gets the desired operation 
> wrong
> ---------------------------------------------------------------------------------
>
>          Key: XFIRE-352
>          URL: http://jira.codehaus.org/browse/XFIRE-352
>      Project: XFire
>         Type: Improvement

>   Components: Core
>     Versions: 1.1-beta-1
>     Reporter: Adam J Chesney
>     Assignee: Dan Diephouse
>     Priority: Minor
>      Fix For: 1.1
>  Attachments: AbstractBindingPatch.patch
>
>
> Service has 3 methods:
>  
> find (A);
>  
> cost (B);
>  
> book (C);
>  
> the problem occurs because C extends B. If no SOAP action is defined, cost(C) 
> gets called instead of book(C). This is due to the random ordering of the 
> Operations in a HashMap and the parameters to cost() get tested before the 
> parameters for book(), but because B is assignable from C, cost() is chosen.
> The attached patch fixes this issue by first checking for an exact match in 
> parameters before dropping back to checking that parameters are assignable 
> from the input params.
> A better patch might be to score each operation on the closeness of actual 
> params to target params, but this is a lot harder and slower, and this patch 
> will probably fix 99% of problems anyway :-)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to