Closed Bug 122472 Opened 24 years ago Closed 24 years ago

When a non-normal SOAP HTTP status is returned, the response is ignored.

Categories

(Core :: XML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: rayw, Assigned: hjtoi-bugzilla)

Details

In several cases, a server was smart enough to return a SOAP fault saying that a service was not known, and then returned a code 500. The Mozilla SOAP implementation assumed a 500 was really bad and did not return the more-expansive body of the response. I cannot think of a case where the http status is really significant. What is significant is you got a body, in which case, it tells you everything you need, or you didn't, in which case, the particular http response tells you little. So we just need to stop checking the http response. To test this, make a soap call to a service that is not deployed. Either you get an error status on the call or you get back a response that may have a fault, or you get the former behavior, or the latter. The former is what was happening. The latter is what we want to have happen.
I have no idea how to write such a test case at this point, so could you attach a testcase?
Test case: Take a functioning test of the name /mozilla/extensions/xmlextras/tests/soap*.html. Now, go to the "encode" call and change the uri which identifies the service being invoked (not the transportURI) to something not likely to be valid. Now, the server receiving the call will have to return an error. I have not verified that servers other than my own return the alternate http status, so I have set up the test "soapunscramble.html" to hit my own server that I know demonstrates the problem, which I will check in as soon as a spurious cvs lock is cleared. Once you have the modified test, then the "invokeAsync" method returns an error instead of returning a fault in a normal response. The modified behavior will be to return the fault and complete the call successfully (no js exception, and get a SOAPResponse containing a fault, which the examples clearly handle).
The fix for this was batched in with a number of others that piled up when a cvs lock wouldn't clear.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
QA Contact: petersen → rakeshmishra
You need to log in before you can comment on or make changes to this bug.