diff --git a/CHANGES.txt b/CHANGES.txt index ae2cf0a29..25d812cca 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,10 @@ +Ongoing + +Fixes: +- Issue 34: "Behavior of Text Filter is unpredictable when "regular expression" mode is enabled." + Regex was not compiled with case insensitivity flag. + + 1.0.1 Release (May 12, 2010) Fixes: diff --git a/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java b/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java index 4d1c6315f..dca81e6c6 100644 --- a/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java +++ b/src/main/java/com/metaweb/gridworks/browsing/facets/TextSearchFacet.java @@ -58,19 +58,16 @@ public class TextSearchFacet implements Facet { _mode = o.getString("mode"); _caseSensitive = o.getBoolean("caseSensitive"); if (_query != null) { - _query = _query.trim(); - if (_query.length() > 0) { - if (!_caseSensitive) { - _query = _query.toLowerCase(); - } - - if ("regex".equals(_mode)) { - try { - _pattern = Pattern.compile(_query); - } catch (java.util.regex.PatternSyntaxException e) { - //e.printStackTrace(); - } + if ("regex".equals(_mode)) { + try { + _pattern = Pattern.compile( + _query, + _caseSensitive ? 0 : Pattern.CASE_INSENSITIVE); + } catch (java.util.regex.PatternSyntaxException e) { + e.printStackTrace(); } + } else if (!_caseSensitive) { + _query = _query.toLowerCase(); } } }