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 yo...@apache.org on 2006/10/09 19:26:50 UTC

svn commit: r454434 - in /lucene/java/trunk: CHANGES.txt src/java/org/apache/lucene/index/FieldsReader.java

Author: yonik
Date: Mon Oct  9 10:26:49 2006
New Revision: 454434

URL: http://svn.apache.org/viewvc?view=rev&rev=454434
Log:
remove LazyField.chars to reduce memory consumption

Modified:
    lucene/java/trunk/CHANGES.txt
    lucene/java/trunk/src/java/org/apache/lucene/index/FieldsReader.java

Modified: lucene/java/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?view=diff&rev=454434&r1=454433&r2=454434
==============================================================================
--- lucene/java/trunk/CHANGES.txt (original)
+++ lucene/java/trunk/CHANGES.txt Mon Oct  9 10:26:49 2006
@@ -126,6 +126,7 @@
 14. LUCENE-650: Fixed NPE in Locale specific String Sort when Document
     has no value.
     (Oliver Hutchison via Chris Hostetter)
+
     
 Optimizations
 
@@ -152,6 +153,9 @@
      certain level have been accumulated.  This increases indexing performance
      in the presence of deleted docs or partially full segments as well as
      enabling future optimizations. (Ning Li, Yonik Seeley)
+
+  7. Lazy loaded fields unnecessarily retained an extra copy of loaded
+     String data.  (Yonik Seeley)
 
 Test Cases
   1. Added TestTermScorer.java (Grant Ingersoll)

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/FieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/FieldsReader.java?view=diff&rev=454434&r1=454433&r2=454434
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/FieldsReader.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/FieldsReader.java Mon Oct  9 10:26:49 2006
@@ -265,9 +265,6 @@
   private class LazyField extends AbstractField implements Fieldable {
     private int toRead;
     private long pointer;
-    //internal buffer
-    private char[] chars;
-
 
     public LazyField(String name, Field.Store store, int toRead, long pointer) {
       super(name, store, Field.Index.NO, Field.TermVector.NO);
@@ -337,10 +334,9 @@
         try {
           localFieldsStream.seek(pointer);
           //read in chars b/c we already know the length we need to read
-          if (chars == null || toRead > chars.length)
-            chars = new char[toRead];
+          char[] chars = new char[toRead];
           localFieldsStream.readChars(chars, 0, toRead);
-          fieldsData = new String(chars, 0, toRead);//fieldsStream.readString();
+          fieldsData = new String(chars);
         } catch (IOException e) {
           throw new FieldReaderException(e);
         }