*/
if (pathInfo.startsWith(PATH_MAPPED)) {
// Session specic file mappers, can't be cached by browser since invalid in next user session.
// mapped paths (per usersession) -> /m/...
//TODO:FG: cachable mappers that are user session specific (e.g. course resources)
MapperRegistry mreg = MapperRegistry.getInstanceFor( UserSession.getUserSession(request) );
// OLAT-5368: an intermediate commit is necessary here to close open transactions which could otherwise
// run into the 2 min timeout and cause errors. The code does a return after serving the file anyway
// and would do a commit right there as well - so this doesn't break the transaction semantics.
DBFactory.getInstance(false).intermediateCommit();
mreg.execute(request, response, subtractContextPath(request, pathInfo));
return;
} else if (pathInfo.startsWith(PATH_GLOBAL_MAPPED)) {
// Dynamic files that can be cached by browsers based on last modified
// date, but are dynamically created by the application
gmr.execute(request, response, subtractContextPath(request, pathInfo));