diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java index 854c09ac7..7b6acc351 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java @@ -95,6 +95,14 @@ public class VitroRequest extends HttpServletRequestWrapper { setAttribute("dataset", dataset); } + public Dataset getUnfilteredDataset() { + return (Dataset) getAttribute("unfilteredDataset"); + } + + public void setUnfilteredDataset(Dataset dataset) { + setAttribute("unfilteredDataset", dataset); + } + //Method that retrieves write model, returns special model in case of write model public OntModel getWriteModel() { //if special write model doesn't exist use get ont model diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/QueryUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/QueryUtils.java index 04b03aed5..e2c1df90b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/QueryUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/QueryUtils.java @@ -115,9 +115,16 @@ public class QueryUtils { } public static ResultSet getQueryResults(String queryStr, VitroRequest vreq) { - - Dataset dataset = vreq.getDataset(); - dataset.getLock().enterCriticalSection(Lock.READ); + return getQueryResults(queryStr, vreq.getDataset()); + } + + public static ResultSet getLanguageNeutralQueryResults(String queryStr, VitroRequest vreq) { + return getQueryResults(queryStr, vreq.getUnfilteredDataset()); + } + + /** Already have the dataset, so process the query and return the results. */ + private static ResultSet getQueryResults(String queryStr, Dataset dataset) { + dataset.getLock().enterCriticalSection(Lock.READ); QueryExecution qexec = null; ResultSet results = null; try { @@ -133,6 +140,6 @@ public class QueryUtils { } return results; - } + } } 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 4d53fa058..983742ab3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java @@ -131,6 +131,7 @@ public class RequestModelsPrep implements Filter { VitroRequest vreq = new VitroRequest(req); vreq.setUnfilteredRDFService(rawRdfService); + vreq.setUnfilteredDataset(new RDFServiceDataset(rawRdfService)); List langs = getPreferredLanguages(req); RDFService rdfService = addLanguageAwareness(langs, rawRdfService);