spring-projects / spring-projects/spring-framework
MockMvcWebConnection doesn't work with async results [SPR-14442]
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
Chris DaMour opened SPR-14442 and commented
MockMvcWebConnection calls MockMVC.perform().andReturn().getResponse() but that doesn't work if you are doign async in your controllers, like returning a deferredResult or Single<HttpEntity> etc (probably CompletableFuture as well).
The mockmvc syntax for achieving a result is a bit clunky requiring two calls to perform()..maybe it could be made simpler there
also HtmlUnitRequestBuilder doesn't set async support to true
Affects: 4.3.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing MockMvcWebConnection's MockMVC.perform().andReturn().getResponse() flow and inspect HtmlUnitRequestBuilder's async support handling. Reproduce the behavior with controllers returning DeferredResult, Single, or CompletableFuture, then verify that asynchronous results are supported and request async support is enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100