NIHVIVO-2762 Fix jsp errors resulting from a jsp variable inserted into a query string in Java code, where it does not get evaluated. Augment the method getActivityTypeQuery() to handle classgroup-based select lists.

This commit is contained in:
ryounes 2011-06-23 20:32:22 +00:00
parent 1aa136f075
commit f64db6f406
7 changed files with 23 additions and 20 deletions

View file

@ -766,7 +766,7 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
// filter causes the query to fail. Insert the subjectUri manually instead.
// QuerySolutionMap initialBindings = new QuerySolutionMap();
// initialBindings.add("subject", ResourceFactory.createResource(subjectUri));
String queryString = subUriForQueryVar(DATA_PROPERTY_QUERY_STRING, "subject", subjectUri);
String queryString = QueryUtils.subUriForQueryVar(DATA_PROPERTY_QUERY_STRING, "subject", subjectUri);
Query query = null;
try {

View file

@ -331,7 +331,7 @@ public class DataPropertyStatementDaoJena extends JenaBaseDao implements DataPro
Map<String, String> bindings = new HashMap<String, String>();
bindings.put("subject", subjectUri);
bindings.put("property", propertyUri);
String queryString = subUrisForQueryVars(DATA_PROPERTY_VALUE_QUERY_STRING, bindings);
String queryString = QueryUtils.subUrisForQueryVars(DATA_PROPERTY_VALUE_QUERY_STRING, bindings);
// Run the SPARQL query to get the properties
List<Literal> values = new ArrayList<Literal>();

View file

@ -1101,21 +1101,5 @@ public class JenaBaseDao extends JenaBaseDaoCon {
return temp;
}
/** Manually replace query variables with uris when prebinding causes the query to fail, probably
* due to a Jena bug.
*/
protected static String subUrisForQueryVars(String queryString, Map<String, String> varsToUris) {
for (String var : varsToUris.keySet()) {
queryString = subUriForQueryVar(queryString, var, varsToUris.get(var));
}
return queryString;
}
/** Manually replace a query variable with a uri when prebinding causes the query to fail, probably
* due to a Jena bug.
*/
protected static String subUriForQueryVar(String queryString, String varName, String uri) {
return queryString.replaceAll("\\?" + varName + "\\b", "<" + uri + ">");
}
}

View file

@ -859,7 +859,7 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
// Due to a Jena bug, prebinding on ?subject combined with the isURI()
// filter causes the query to fail. Using string concatenation to insert the
// subject uri instead.
String queryString = subUriForQueryVar(OBJECT_PROPERTY_QUERY_STRING, "subject", subjectUri);
String queryString = QueryUtils.subUriForQueryVar(OBJECT_PROPERTY_QUERY_STRING, "subject", subjectUri);
Query query = null;
try {

View file

@ -399,7 +399,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
* **/
public List<String> getMostSpecificTypesForIndividual(String subjectUri) {
String queryString = subUriForQueryVar(MOST_SPECIFIC_TYPE_QUERY, "subject", subjectUri);
String queryString = QueryUtils.subUriForQueryVar(MOST_SPECIFIC_TYPE_QUERY, "subject", subjectUri);
log.debug("Query string for vitro:mostSpecificType : " + queryString);

View file

@ -84,4 +84,22 @@ public class QueryUtils {
return "";
}
}
/** Manually replace query variables with uris when prebinding causes the query to fail, probably
* due to a Jena bug.
*/
public static String subUrisForQueryVars(String queryString, Map<String, String> varsToUris) {
for (String var : varsToUris.keySet()) {
queryString = subUriForQueryVar(queryString, var, varsToUris.get(var));
}
return queryString;
}
/** Manually replace a query variable with a uri when prebinding causes the query to fail, probably
* due to a Jena bug.
*/
public static String subUriForQueryVar(String queryString, String varName, String uri) {
return queryString.replaceAll("\\?" + varName + "\\b", "<" + uri + ">");
}
}

View file

@ -160,6 +160,7 @@ public class SparqlEvaluate {
// }
public String queryToUri(String querystr){
log.debug("Query string in queryToUri():" + querystr);
String value = null;
QueryExecution qe = null;
try{