-
Type: Bug
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 5.8
-
Fix Version/s: 5.8.0-HF33, 6.0-HF09, 7.3
-
Component/s: Web API (REST or WS*), Web Common
When using an HTTP API (WebEngine, WebDAV, others) for a transactional Nuxeo call (the usual case), a transaction timeout (or other exception at commit/rollback time) could be suppressed if the call returns a non-empty response, because we don't explicitly detect the exception and leave it to the servlet container to catch the exception and send a http status 500, however the servlet container cannot do this if we already set the status and wrote some content (response.isCommitted() returns true).
The solution is to properly catch such exceptions when we try to commit, and if they occur to set the http status 500 immediately.