protected <T> T executeInsideRequest(final WhatToDo<T> execution) {
Callable<T> task = new Callable<T>(){
public T call() throws Exception {
T result = null;
HttpSessionMock session = new HttpSessionMock(context, "session" + ++counter);
HttpServletRequestMock httpRequest = new HttpServletRequestMock(session,
mock(MutableRequest.class, "request" + counter));
MutableResponse response = mock(MutableResponse.class, "response" + counter);
RequestInfo request = new RequestInfo(context, null, httpRequest, response);
VRaptorRequestHolder.setRequestForCurrentThread(request);