spring-projects / spring-projects/spring-ws

HTTP 500 with no fault is not handled correctly [SWS-956]

Open
#1,028 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: waiting-for-triage
Dominant language
Java
Stars
346
Forks
323
Avg merge
3d 2h
Merged PRs (30d)
7

Description

Ivan Brencsics opened SWS-956 and commented

When Spring WS makes a SOAP call, and receives back HTTP 500, it ignores the response code, and considers the call as successful:

o.a.h.wire | http-outgoing-0 << "HTTP/1.1 500 Internal Server Error [\r][\n]"
o.a.h.wire | http-outgoing-0 << "Content-Type: application/soap+xml[\r][\n]"
o.a.h.wire | http-outgoing-0 << "Content-Length: 0[\r][\n]"
o.a.h.wire | http-outgoing-0 << "Server: WEBrick/1.3.1 (Ruby/1.9.1/2009-12-07) OpenSSL/0.9.8e-rhel5[\r][\n]"
o.a.h.wire | http-outgoing-0 << "Date: Fri, 15 Apr 2016 14:46:53 GMT[\r][\n]"
o.a.h.wire | http-outgoing-0 << "Connection: Keep-Alive[\r][\n]"
o.a.h.wire | http-outgoing-0 << "[\r][\n]"
o.a.h.imp~.exe~.MainClientExec | Connection can be kept alive indefinitely
o.s.w.cli~.Mes~.received | Received no response for request [...]

On the contrary, when receiving 50x other then 500, it fails properly:

o.s.w.cli~.cor~.WebServiceTemplate | Received error for request [...]


Affects: 2.2.0.RELEASE

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the WebServiceTemplate/client execution path shown in the logs and reproduce a SOAP call that receives an empty HTTP 500 response. Compare it with the handling for other 50x responses and add a regression test; done means an HTTP 500 without a SOAP fault is reported as an error rather than a successful call.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.