in invoker/core/src/main/java/com/google/cloud/functions/invoker/HttpFunctionExecutor.java [68:84]
public void service(HttpServletRequest req, HttpServletResponse res) {
HttpRequestImpl reqImpl = new HttpRequestImpl(req);
HttpResponseImpl respImpl = new HttpResponseImpl(res);
ClassLoader oldContextLoader = Thread.currentThread().getContextClassLoader();
try {
executionIdUtil.storeExecutionId(req);
Thread.currentThread().setContextClassLoader(function.getClass().getClassLoader());
function.service(reqImpl, respImpl);
} catch (Throwable t) {
logger.log(Level.SEVERE, "Failed to execute " + function.getClass().getName(), t);
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} finally {
Thread.currentThread().setContextClassLoader(oldContextLoader);
executionIdUtil.removeExecutionId();
respImpl.flush();
}
}