Return-Path: X-Original-To: apmail-lucene-commits-archive@www.apache.org Delivered-To: apmail-lucene-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 42E7592F5 for ; Sun, 4 Dec 2011 23:31:58 +0000 (UTC) Received: (qmail 78589 invoked by uid 500); 4 Dec 2011 23:31:58 -0000 Mailing-List: contact commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list commits@lucene.apache.org Received: (qmail 78582 invoked by uid 99); 4 Dec 2011 23:31:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Dec 2011 23:31:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Dec 2011 23:31:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B80DF23888E7; Sun, 4 Dec 2011 23:31:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1210277 - in /lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index: SegmentInfo.java SegmentReader.java codecs/lucene40/Lucene40NormsReader.java Date: Sun, 04 Dec 2011 23:31:32 -0000 To: commits@lucene.apache.org From: rmuir@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111204233132.B80DF23888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rmuir Date: Sun Dec 4 23:31:32 2011 New Revision: 1210277 URL: http://svn.apache.org/viewvc?rev=1210277&view=rev Log: LUCENE-3606: clean up more cruft Modified: lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentInfo.java lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentReader.java lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java Modified: lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentInfo.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1210277&r1=1210276&r2=1210277&view=diff ============================================================================== --- lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentInfo.java (original) +++ lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentInfo.java Sun Dec 4 23:31:32 2011 @@ -48,7 +48,7 @@ public final class SegmentInfo implement // TODO: remove these from this class, for now this is the representation public static final int NO = -1; // e.g. no norms; no deletes; public static final int YES = 1; // e.g. have norms; have deletes; - static final int WITHOUT_GEN = 0; // a file name that has no GEN in it. + public static final int WITHOUT_GEN = 0; // a file name that has no GEN in it. public String name; // unique name in dir public int docCount; // number of docs in seg @@ -339,18 +339,6 @@ public final class SegmentInfo implement /** * @deprecated separate norms are not supported in >= 4.0 */ - public boolean hasSeparateNorms(int fieldNumber) { - if (normGen == null) { - return false; - } - - Long gen = normGen.get(fieldNumber); - return gen != null && gen.longValue() != NO; - } - - /** - * @deprecated separate norms are not supported in >= 4.0 - */ boolean hasSeparateNorms() { if (normGen == null) { return false; @@ -365,42 +353,6 @@ public final class SegmentInfo implement return false; } - void initNormGen() { - if (normGen == null) { // normGen is null if this segments file hasn't had any norms set against it yet - normGen = new HashMap(); - } - } - - /** - * Increment the generation count for the norms file for - * this field. - * - * @param fieldIndex field whose norm file will be rewritten - */ - void advanceNormGen(int fieldIndex) { - Long gen = normGen.get(fieldIndex); - if (gen == null || gen.longValue() == NO) { - normGen.put(fieldIndex, new Long(YES)); - } else { - normGen.put(fieldIndex, gen+1); - } - clearFilesCache(); - } - - /** - * Get the file name for the norms file for this field. - * - * @param number field index - */ - public String getNormFileName(int number) { - if (hasSeparateNorms(number)) { - return IndexFileNames.fileNameFromGeneration(name, IndexFileNames.SEPARATE_NORMS_EXTENSION + number, normGen.get(number)); - } else { - // single file for all norms - return IndexFileNames.fileNameFromGeneration(name, IndexFileNames.NORMS_EXTENSION, WITHOUT_GEN); - } - } - /** * Mark whether this segment is stored as a compound file. * Modified: lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentReader.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentReader.java?rev=1210277&r1=1210276&r2=1210277&view=diff ============================================================================== --- lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentReader.java (original) +++ lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/SegmentReader.java Sun Dec 4 23:31:32 2011 @@ -208,26 +208,16 @@ public class SegmentReader extends Index ensureOpen(); boolean deletionsUpToDate = (this.si.hasDeletions() == si.hasDeletions()) && (!si.hasDeletions() || this.si.getDelFileName().equals(si.getDelFileName())); - boolean normsUpToDate = true; - - Set fieldNormsChanged = new HashSet(); - for (FieldInfo fi : core.fieldInfos) { - int fieldNumber = fi.number; - if (!this.si.getNormFileName(fieldNumber).equals(si.getNormFileName(fieldNumber))) { - normsUpToDate = false; - fieldNormsChanged.add(fieldNumber); - } - } // if we're cloning we need to run through the reopenSegment logic // also if both old and new readers aren't readonly, we clone to avoid sharing modifications - if (normsUpToDate && deletionsUpToDate && !doClone && openReadOnly && readOnly) { + if (deletionsUpToDate && !doClone && openReadOnly && readOnly) { return null; } // When cloning, the incoming SegmentInfos should not // have any changes in it: - assert !doClone || (normsUpToDate && deletionsUpToDate); + assert !doClone || (deletionsUpToDate); // clone reader SegmentReader clone = new SegmentReader(); Modified: lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java?rev=1210277&r1=1210276&r2=1210277&view=diff ============================================================================== --- lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java (original) +++ lucene/dev/branches/lucene3606/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java Sun Dec 4 23:31:32 2011 @@ -48,13 +48,15 @@ public class Lucene40NormsReader extends // but we just don't do any seeks or reading yet. public Lucene40NormsReader(Directory dir, SegmentInfo info, FieldInfos fields, IOContext context, Directory separateNormsDir) throws IOException { maxdoc = info.docCount; + String segmentName = info.name; + Map normGen = info.getNormGen(); boolean success = false; try { long nextNormSeek = Lucene40NormsWriter.NORMS_HEADER.length; //skip header (header unused for now) for (FieldInfo fi : fields) { if (fi.isIndexed && !fi.omitNorms) { - String fileName = info.getNormFileName(fi.number); - Directory d = info.hasSeparateNorms(fi.number) ? separateNormsDir : dir; + String fileName = getNormFilename(segmentName, normGen, fi.number); + Directory d = hasSeparateNorms(normGen, fi.number) ? separateNormsDir : dir; // singleNormFile means multiple norms share this file boolean singleNormFile = IndexFileNames.matchesExtension(fileName, IndexFileNames.NORMS_EXTENSION); @@ -127,6 +129,24 @@ public class Lucene40NormsReader extends } } + private static String getNormFilename(String segmentName, Map normGen, int number) { + if (hasSeparateNorms(normGen, number)) { + return IndexFileNames.fileNameFromGeneration(segmentName, IndexFileNames.SEPARATE_NORMS_EXTENSION + number, normGen.get(number)); + } else { + // single file for all norms + return IndexFileNames.fileNameFromGeneration(segmentName, IndexFileNames.NORMS_EXTENSION, SegmentInfo.WITHOUT_GEN); + } + } + + private static boolean hasSeparateNorms(Map normGen, int number) { + if (normGen == null) { + return false; + } + + Long gen = normGen.get(number); + return gen != null && gen.longValue() != SegmentInfo.NO; + } + class Norm { IndexInput file; long offset;