[ http://jira.codehaus.org/browse/XFIRE-352?page=all ]
Dan Diephouse closed XFIRE-352:
-------------------------------
Resolution: Fixed
> 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