Revision: 1072 http://openutils.svn.sourceforge.net/openutils/?rev=1072&view=rev Author: fgrilli Date: 2009-03-01 18:01:50 +0000 (Sun, 01 Mar 2009) Log Message: ----------- encode path tokens starting with a digit Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 12:45:46 UTC (rev 1071) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:01:50 UTC (rev 1072) @@ -1,5 +1,10 @@ package net.sourceforge.openutils.mgnlcriteria.jcr.query.xpath.utils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + /** * A utility class to escape xpath strings * @author fgrilli @@ -8,6 +13,8 @@ public class XPathTextUtils { + private static final Logger log = LoggerFactory.getLogger(XPathTextUtils.class); + private XPathTextUtils() { } @@ -72,4 +79,33 @@ .replaceAll("\\\\(?![-\"])", "\\\\\\\\") .replaceAll("'", "\\\\'"))); } -} + + public static String encodeDigitsInPath(String path) + { + log.debug("path to encode is {}", path); + if (StringUtils.isBlank(path)) + { + String msg = "path cannot be a null or empty string"; + log.error(msg); + throw new IllegalArgumentException(msg); + } + + StringBuilder encodedPath = new StringBuilder(path.length()); + // TODO maybe a more robust check is needed + for (int i = 0; i < path.length(); ++i) + { + char ch = path.charAt(i); + + if (i > 0 && path.charAt(i - 1) == '/' && Character.isDigit(ch)) + { + encodedPath.append("_x" + Integer.toHexString(ch) + "_"); + } + else + { + encodedPath.append(ch); + } + } + log.debug("returning encoded path", encodedPath); + return encodedPath.toString(); + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 1074 http://openutils.svn.sourceforge.net/openutils/?rev=1074&view=rev Author: fgrilli Date: 2009-03-01 18:08:06 +0000 (Sun, 01 Mar 2009) Log Message: ----------- javadoc Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:03:42 UTC (rev 1073) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:08:06 UTC (rev 1074) @@ -80,6 +80,10 @@ .replaceAll("'", "\\\\'"))); } + /** + * @param String path to encode eg //my//path/2009//* + * @return String encoded path eg //my//path/_x32_009//* + */ public static String encodeDigitsInPath(String path) { log.debug("path to encode is {}", path); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 1075 http://openutils.svn.sourceforge.net/openutils/?rev=1075&view=rev Author: fgrilli Date: 2009-03-01 18:17:40 +0000 (Sun, 01 Mar 2009) Log Message: ----------- fixed log Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:08:06 UTC (rev 1074) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:17:40 UTC (rev 1075) @@ -109,7 +109,7 @@ encodedPath.append(ch); } } - log.debug("returning encoded path", encodedPath); + log.debug("returning encoded path {}", encodedPath); return encodedPath.toString(); } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2010-03-19 09:34:16
|
Revision: 2159 http://openutils.svn.sourceforge.net/openutils/?rev=2159&view=rev Author: diego_schivo Date: 2010-03-19 09:34:10 +0000 (Fri, 19 Mar 2010) Log Message: ----------- CRIT-9 deprecated escapeIllegalXpathSearchChars (not used anymore in openutils-mgnlcriteria) Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-03-19 09:25:21 UTC (rev 2158) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-03-19 09:34:10 UTC (rev 2159) @@ -47,6 +47,7 @@ * here just to keep this API JCR implementation agnostic * @param string the string to encode * @return the escaped string + * @deprecated may cause JCRQueryException on search-expressions like "\"milano\"" (CRIT-9) */ public static String escapeIllegalXpathSearchChars(String s) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2470 http://openutils.svn.sourceforge.net/openutils/?rev=2470&view=rev Author: cstrap Date: 2010-05-18 08:41:50 +0000 (Tue, 18 May 2010) Log Message: ----------- CRIT-13 Fix parser string (all test now running) Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-05-18 08:39:18 UTC (rev 2469) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-05-18 08:41:50 UTC (rev 2470) @@ -120,11 +120,11 @@ * http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Escaping%20Special%20Characters * http://www.javalobby.org/java/forums/t86124.html */ - String escapeChars = "[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?]"; + String escapeChars = "[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?\"\\[\\]|]"; parseString = parseString.replaceAll(escapeChars, "\\\\$0"); parseString = parseString.replaceAll("\'", "\'\'"); - return QueryParser.escape(parseString); + return parseString; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 2921 http://openutils.svn.sourceforge.net/openutils/?rev=2921&view=rev Author: fgiust Date: 2010-08-29 07:16:56 +0000 (Sun, 29 Aug 2010) Log Message: ----------- added a note about the related JCR jira Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-08-29 07:09:52 UTC (rev 2920) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-08-29 07:16:56 UTC (rev 2921) @@ -106,12 +106,6 @@ return str; } - /* - * It seems that OR is a reserved word for jackrabbit/lucene, only if the search string start with word OR; if * - * OR is inside the text search string, search works (pe "Hello OR World"). Error on - * org.apache.jackrabbit.core.query.QueryImpl.execute() - * http://stackoverflow.com/questions/1311304/keyword-or-and-search-in-lucene - */ String parseString = StringUtils.trimToEmpty(str); // workaround for https://issues.apache.org/jira/browse/JCR-2732 @@ -125,6 +119,7 @@ parseString = parseString.replaceAll(escapeChars, "\\\\$0"); parseString = parseString.replaceAll("\'", "\'\'"); + // workaround for https://issues.apache.org/jira/browse/JCR-2733 if (StringUtils.startsWith(parseString, "OR ")) { parseString = parseString.replaceFirst("\\bOR\\b", "\"OR\""); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2011-04-22 13:18:37
|
Revision: 3428 http://openutils.svn.sourceforge.net/openutils/?rev=3428&view=rev Author: diego_schivo Date: 2011-04-22 13:18:31 +0000 (Fri, 22 Apr 2011) Log Message: ----------- CRIT-37 comma escape Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2011-04-22 10:12:10 UTC (rev 3427) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2011-04-22 13:18:31 UTC (rev 3428) @@ -123,6 +123,10 @@ { encodedPath.append("_x0020_"); } + else if (!inXpathCondition && ch == ',') + { + encodedPath.append("_x002c_"); + } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2012-02-27 09:52:57
|
Revision: 3737 http://openutils.svn.sourceforge.net/openutils/?rev=3737&view=rev Author: diego_schivo Date: 2012-02-27 09:52:51 +0000 (Mon, 27 Feb 2012) Log Message: ----------- CRIT-47 Hyphen escape Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 09:51:38 UTC (rev 3736) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 09:52:51 UTC (rev 3737) @@ -141,6 +141,10 @@ { encodedPath.append("_x002c_"); } + else if (inXpathCondition <= 0 && ch == '-') + { + encodedPath.append("_x002d_"); + } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2012-02-27 10:38:07
|
Revision: 3740 http://openutils.svn.sourceforge.net/openutils/?rev=3740&view=rev Author: diego_schivo Date: 2012-02-27 10:37:56 +0000 (Mon, 27 Feb 2012) Log Message: ----------- CRIT-47 Hyphen escape Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 10:31:04 UTC (rev 3739) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 10:37:56 UTC (rev 3740) @@ -133,6 +133,10 @@ { encodedPath.append("_x" + StringUtils.leftPad(Integer.toHexString(ch), 4, '0') + "_"); } + else if (i > 0 && path.charAt(i - 1) == '/' && ch == '-') + { + encodedPath.append("_x002d_"); + } else if (inXpathCondition <= 0 && ch == ' ') { encodedPath.append("_x0020_"); @@ -141,10 +145,6 @@ { encodedPath.append("_x002c_"); } - else if (inXpathCondition <= 0 && ch == '-') - { - encodedPath.append("_x002d_"); - } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <die...@us...> - 2012-02-27 11:23:18
|
Revision: 3742 http://openutils.svn.sourceforge.net/openutils/?rev=3742&view=rev Author: diego_schivo Date: 2012-02-27 11:23:07 +0000 (Mon, 27 Feb 2012) Log Message: ----------- CRIT-48 inXpathCondition Modified Paths: -------------- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java =================================================================== --- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 11:10:34 UTC (rev 3741) +++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 11:23:07 UTC (rev 3742) @@ -160,7 +160,7 @@ inXpathCondition++; xpathWithFunction = true; } - else + else if (inXpathCondition == 0) { encodedPath.append("_x0028_"); continue; @@ -177,7 +177,7 @@ inXpathCondition--; xpathWithFunction = false; } - else + else if (inXpathCondition == 0) { encodedPath.append("_x0029_"); continue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |