Hi! :)
We used BlockHound to identify blocking operations in reactive spring modules; it turns out resolveViewName operation is blocking the reactive pipeline in webflux:
This PR fixes the blocking call as well as updates a test to support the updated, reactive version.
The changes have been validated with build and test commands as mention in guidelines. 👍
Comment From: poutsma
The problem with the changes made by this PR is that all view resolution is done one the bounded elastic scheduler; not just blocking ones like FreeMarker. And because context switches can be expensive, it is not desirable for this to happen.
I will address the concern underlying this PR (i.e. blocking template resolution when using FreeMarker) by localizing the usage of the bounded elastic scheduler to just the blocking operations in FreeMarkerView
, and not all view resolutions. Doing so will require introducing new methods, so I am rescheduling to 6.1.