You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by us...@apache.org on 2009/08/07 19:19:53 UTC

svn commit: r802095 - in /lucene/java/trunk/contrib: analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java

Author: uschindler
Date: Fri Aug  7 17:19:53 2009
New Revision: 802095

URL: http://svn.apache.org/viewvc?rev=802095&view=rev
Log:
LUCENE-1607: Change some more String.intern() in contrib

Modified:
    lucene/java/trunk/contrib/analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
    lucene/java/trunk/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java

Modified: lucene/java/trunk/contrib/analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java?rev=802095&r1=802094&r2=802095&view=diff
==============================================================================
--- lucene/java/trunk/contrib/analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java (original)
+++ lucene/java/trunk/contrib/analyzers/common/src/java/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzer.java Fri Aug  7 17:19:53 2009
@@ -22,6 +22,7 @@
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.StopFilter;
+import org.apache.lucene.util.StringHelper;
 
 import java.io.IOException;
 import java.io.Reader;
@@ -137,7 +138,7 @@
    */
   public int addStopWords(IndexReader reader, String fieldName, int maxDocFreq) throws IOException {
     HashSet stopWords = new HashSet();
-    String internedFieldName = fieldName.intern();
+    String internedFieldName = StringHelper.intern(fieldName);
     TermEnum te = reader.terms(new Term(fieldName));
     Term term = te.term();
     while (term != null) {

Modified: lucene/java/trunk/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=802095&r1=802094&r2=802095&view=diff
==============================================================================
--- lucene/java/trunk/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/java/trunk/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Fri Aug  7 17:19:53 2009
@@ -323,24 +323,6 @@
    * @see Field#setBoost(float)
    */
   public void addField(String fieldName, TokenStream stream, float boost) {
-    /*
-     * Note that this method signature avoids having a user call new
-     * o.a.l.d.Field(...) which would be much too expensive due to the
-     * String.intern() usage of that class.
-     * 
-     * More often than not, String.intern() leads to serious performance
-     * degradations rather than improvements! If you're curious why, check
-     * out the JDK's native code, see how it oscillates multiple times back
-     * and forth between Java code and native code on each intern() call,
-     * only to end up using a plain vanilla java.util.HashMap on the Java
-     * heap for it's interned strings! String.equals() has a small cost
-     * compared to String.intern(), trust me. Application level interning
-     * (e.g. a HashMap per Directory/Index) typically leads to better
-     * solutions than frequent hidden low-level calls to String.intern().
-     * 
-     * Perhaps with some luck, Lucene's Field.java (and Term.java) and
-     * cousins could be fixed to not use String.intern(). Sigh :-(
-     */
     try {
       if (fieldName == null)
         throw new IllegalArgumentException("fieldName must not be null");