Close request-based WebappDaoFactory instances.

This commit is contained in:
Jim Blake 2014-05-28 12:11:51 -04:00
parent 25e8d41e52
commit 1ec5d1dec7
2 changed files with 17 additions and 0 deletions

View file

@ -293,6 +293,18 @@ public class ModelAccess {
} }
} }
// ----------------------------------------------------------------------
// Close all locally stored models, WADFs, etc.
// ----------------------------------------------------------------------
public void close() {
if (this.scope == Scope.REQUEST) {
for (WebappDaoFactory wadf: factoryMap.values()) {
wadf.close();
}
}
}
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Helper classes // Helper classes
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------

View file

@ -113,6 +113,7 @@ public class RequestModelsPrep implements Filter {
try { try {
setUpTheRequestModels(rdfService, req); setUpTheRequestModels(rdfService, req);
filterChain.doFilter(req, resp); filterChain.doFilter(req, resp);
tearDownTheRequestModels(req);
} finally { } finally {
rdfService.close(); rdfService.close();
} }
@ -384,6 +385,10 @@ public class RequestModelsPrep implements Filter {
return map; return map;
} }
private void tearDownTheRequestModels(HttpServletRequest req) {
ModelAccess.on(req).close();
}
@Override @Override
public void destroy() { public void destroy() {
// Nothing to destroy // Nothing to destroy