cache results of synchronously requests

Cache update is done by the Dispatcher only for async requests.
This update the cache also for synchronously requests.
I tried writing unit test for this but it uses static code which is hard to test.