Scarab commit: svn commit: r10653 - trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java

Johannes Höchstädter <[email protected]>
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: jhoech
Date: 2008-12-03 01:32:07-0800
New Revision: 10653

Modified:
   trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java

Log:
sensitive characters in AttributeValue (if StringAttribute) are escaped in IssueSearch, by method from QueryParser itself: QueryParser.escape(String)


Modified: trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java?view=diff&pathrev=10653&r1=10652&r2=10653
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java	(original)
+++ trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java	2008-12-03 01:32:07-0800
@@ -72,6 +72,7 @@
 import org.apache.torque.util.Criteria;
 import org.apache.torque.util.SqlEnum;
 import org.apache.fulcrum.intake.Retrievable;
+import org.apache.lucene.queryParser.QueryParser;
 import org.tigris.scarab.attribute.DateAttribute;
 import org.tigris.scarab.attribute.OptionAttribute;
 import org.tigris.scarab.attribute.StringAttribute;
@@ -142,12 +143,6 @@
 		Pattern.CASE_INSENSITIVE
     );
 	
-	/**
-	 * all characters, which have to escaped for 
-	 * org.apache.lucene.queryParser.QueryParser
-	 */
-	private static final String[] CHARACTERS_WHICH_HAVE_TO_BE_ESCAPED= {"\\", "+", "-", "!", "(", ")", ":", "^", "]", "{", "}", "~", "*", "?"};
-	
 	private SimpleDateFormat formatter;
 
     private ScarabUser searchingUser;
@@ -1044,7 +1039,7 @@
                 else if (aval instanceof StringAttribute)
                 {
                 	AttributeValue copyAval = aval.copy();
-                	copyAval.setValue(escapeSpecialCharacters(copyAval.getValue()));
+                	copyAval.setValue(QueryParser.escape(copyAval.getValue()));
                     query.addAttrClause(copyAval);
                 }
             }
@@ -1823,20 +1818,4 @@
             }
         }
     }
-    
-    /**
-     * escapes all characters from array in CHARACTERS_WHICH_HAVE_TO_BE_ESCAPED
-     * @param text
-     * @return
-     */
-    private String escapeSpecialCharacters(String text){
-    	String returnValue = text;
-    	
-    	for(int i=0; i < CHARACTERS_WHICH_HAVE_TO_BE_ESCAPED.length;i++){
-    		returnValue = StringUtils.replace(returnValue, CHARACTERS_WHICH_HAVE_TO_BE_ESCAPED[i],
-    				"\\"+CHARACTERS_WHICH_HAVE_TO_BE_ESCAPED[i]);
-    	}
-    	
-    	return returnValue;
-    }
 }

------------------------------------------------------
http://scarab.tigris.org/ds/viewMessage.do?dsForumId=3577&dsMessageId=978778
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.