From 4883621236d0fe309b2302bb70085945594f02d1 Mon Sep 17 00:00:00 2001 From: grahamtriggs Date: Fri, 25 Sep 2015 22:16:41 +0100 Subject: [PATCH] [VIVO-1059] Improve bind parameter method in SparqlQueryDataGetter so that variables with a common root are bound correctly - e.g. binding ?individual won't match ?individualURI (Does not use full set of allowed Sparql characters, but should catch all commonly used cases) --- .../vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java index 341e2e030..547f5641d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java @@ -165,7 +165,7 @@ public class SparqlQueryDataGetter extends DataGetterBase implements DataGetter{ private String bindParameters(String text, Map merged) { String bound = text; for (String key : merged.keySet()) { - bound = bound.replace('?' + key, '<' + merged.get(key) + '>'); + bound = bound.replaceAll("[?$]" + key + "[^a-zA-Z0-9_\\-]", '<' + merged.get(key) + '>'); } if (log.isDebugEnabled()) { log.debug("parameters: " + merged);