From 7098bab5ead80b17a0cae5f0a56319aa7d0fbbf8 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Wed, 30 Sep 2009 14:36:46 +0000 Subject: [PATCH] RM: Support query for empty strings against untokenised text properties git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16622 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../search/impl/lucene/LuceneQueryParser.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java index adb5fc39f2..caf51402f2 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneQueryParser.java @@ -932,7 +932,7 @@ public class LuceneQueryParser extends QueryParser String localeString = null; if (field.startsWith("@")) { - if (queryText.charAt(0) == '\u0000') + if ((queryText.length() > 0) && (queryText.charAt(0) == '\u0000')) { int position = queryText.indexOf("\u0000", 1); testText = queryText.substring(position + 1); @@ -1299,16 +1299,19 @@ public class LuceneQueryParser extends QueryParser if (replace != null) { StringBuilder postfix = new StringBuilder(); - for (int i = replace.endOffset(); i < testText.length(); i++) + if ((replace.endOffset() >= 0) && (replace.endOffset() < testText.length())) { - char test = testText.charAt(i); - if ((test == '*') || (test == '?')) + for (int i = replace.endOffset(); i < testText.length(); i++) { - postfix.append(test); - } - else - { - break; + char test = testText.charAt(i); + if ((test == '*') || (test == '?')) + { + postfix.append(test); + } + else + { + break; + } } } String post = postfix.toString();