Status: Resolved (View Workflow)
Affects Version/s: 2.0.12.Final
Fix Version/s: 2.0.17.Final
Steps to Reproduce:
User impact: User relying implicitly on container calling onComplete() method will not be able to migrate app to 7.2 without change of source code.
Workaround exists: Call AsyncContext.complete() explicitly in application code, e.g. in onError() method.
Since undertow 2.0.12.Final the `AsyncListener#onComplete()` method is no longer called implicitly by container if error occures during asynchronous request processing in entering servlet. (Point iii. in servlet referenced specification section below)
- From javadoc  it is not clear how should these methods behave
- Specification clearly states container MUST call AsyncContext.complete(), therefore onComplete() should be called
- EAP passes TCKs. Most probably this aspect is not tested at all.
- Undertow Test  passes, but it makes explicit call to AsyncContext.complete therefore onComplete() is called after onError()
- Possible cause is described in  most probably https://github.com/undertow-io/undertow/commit/7f60713d8b3aeb9ce5713cda04a6397283605a5b