From 89416efa7750a24caf5798b3a5ba901997dbc501 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Mon, 21 Jul 2014 11:22:59 -0400 Subject: [PATCH] VIVO-823 Close all short-term RDF Services. Brian Lowe points out that I was creating an additional RDFService and not closing it. Also, the configuration RDFService wasn't being closed. It wasn't causing a problem because there is no database connection associated with it, but still it was a potential for problem. --- .../webapp/filters/RequestModelsPrep.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java index 3ad13dab3..17513d0d3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java @@ -105,14 +105,19 @@ public class RequestModelsPrep implements Filter { if (!thisRequestNeedsModels(req) || modelsAreAlreadySetUp(req)) { filterChain.doFilter(req, resp); } else { - RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx) + RDFService contentRdfService = RDFServiceUtils + .getRDFServiceFactory(ctx, WhichService.CONTENT) + .getShortTermRDFService(); + RDFService configurationRdfService = RDFServiceUtils + .getRDFServiceFactory(ctx, WhichService.CONFIGURATION) .getShortTermRDFService(); try { - setUpTheRequestModels(rdfService, req); + setUpTheRequestModels(contentRdfService, configurationRdfService, req); filterChain.doFilter(req, resp); tearDownTheRequestModels(req); } finally { - rdfService.close(); + contentRdfService.close(); + configurationRdfService.close(); } } } @@ -139,13 +144,13 @@ public class RequestModelsPrep implements Filter { } } - private void setUpTheRequestModels(RDFService rawRdfService, + private void setUpTheRequestModels(RDFService contentRdfService, RDFService configurationRdfService, HttpServletRequest req) { VitroRequest vreq = new VitroRequest(req); - setRdfServicesAndDatasets(rawRdfService, vreq); + setRdfServicesAndDatasets(contentRdfService, vreq); - setRawModels(vreq); + setRawModels(contentRdfService, configurationRdfService, vreq); RDFService rdfService = vreq.getRDFService(); @@ -181,21 +186,15 @@ public class RequestModelsPrep implements Filter { vreq.setDataset(dataset); } - private void setRawModels(VitroRequest vreq) { + private void setRawModels(RDFService contentRdfService, RDFService configurationRdfService, VitroRequest vreq) { ModelAccess models = ModelAccess.on(vreq); - RDFService shortTermConfigRdfService = RDFServiceUtils - .getRDFServiceFactory(ctx, WhichService.CONFIGURATION) - .getShortTermRDFService(); ModelMaker configMM = ModelMakerUtils.getShortTermModelMaker(ctx, - shortTermConfigRdfService, WhichService.CONFIGURATION); + configurationRdfService, WhichService.CONFIGURATION); models.setModelMaker(CONFIGURATION, configMM); - RDFService shortTermContentRdfService = RDFServiceUtils - .getRDFServiceFactory(ctx, WhichService.CONTENT) - .getShortTermRDFService(); ModelMaker contentMM = ModelMakerUtils.getShortTermModelMaker(ctx, - shortTermContentRdfService, WhichService.CONTENT); + contentRdfService, WhichService.CONTENT); models.setModelMaker(CONTENT, contentMM); /*