[ 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