Currently we log this in WebAsyncManager and similar warning exists in ReactiveTypeHandler too:

!!!
An Executor is required to handle java.util.concurrent.Callable return values.
Please, configure a TaskExecutor in the MVC config under "async support".
The SimpleAsyncTaskExecutor currently in use is not suitable under load.
-------------------------------
Request URI: '/'
!!!

This should not be logged if using virtual threads.

Comment From: wilkinsona

Can a SimpleAsyncTaskExecutor with virtual threads enabled also be taken into account? It's what Boot auto-configures when virtual threads are enabled.

Comment From: quaff

This should not be logged if the executor is VirtualThreadTaskExecutor.

VirtualThreadTaskExecutor is AsyncTaskExecutor, neither SimpleAsyncTaskExecutor nor SyncTaskExecutor.

https://github.com/spring-projects/spring-framework/blob/0d8a8432d18af8d2a5fcb29f9de40e4cbf0f9016/spring-core/src/main/java/org/springframework/core/task/VirtualThreadTaskExecutor.java#L32

https://github.com/spring-projects/spring-framework/blob/0d8a8432d18af8d2a5fcb29f9de40e4cbf0f9016/spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java#L365

Comment From: rstoyanchev

Indeed, VirtualThreadTaskExecutor is not relevant here, and we're checking for SimpleAsyncTaskExecutor. There is similar check and warning in ReactiveTypeHandler too. I've updated the title and description to reflect that.