You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by cc...@apache.org on 2011/11/21 20:31:21 UTC

[Lucene.Net] svn commit: r1204661 - in /incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk: src/contrib/Analyzers/ src/contrib/Analyzers/CJK/ src/core/ src/core/Index/ src/core/Store/ src/core/Util/ test/contrib/Analyzers/

Author: ccurrens
Date: Mon Nov 21 19:31:20 2011
New Revision: 1204661

URL: http://svn.apache.org/viewvc?rev=1204661&view=rev
Log:
Cleaned up change notes and file diffs

Modified:
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/CJK/CJKAnalyzer.cs
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/FileDiffs.txt
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/ChangeNotes.txt
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/RAMDirectory.cs
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/Parameter.cs
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/PriorityQueue.cs
    incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/contrib/Analyzers/PortedTests.txt

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/CJK/CJKAnalyzer.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/CJK/CJKAnalyzer.cs?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/CJK/CJKAnalyzer.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/CJK/CJKAnalyzer.cs Mon Nov 21 19:31:20 2011
@@ -123,14 +123,14 @@ namespace Lucene.Net.Analysis.CJK
             protected internal TokenStream result;
         };
 
-        /**
-         * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text 
-         * in the provided {@link Reader}.
-         *
-         * @param fieldName lucene field name
-         * @param reader    Input {@link Reader}
-         * @return A {@link TokenStream} built from {@link CJKTokenizer}, filtered with
-         *    {@link StopFilter}
+        /**
+         * Returns a (possibly reused) {@link TokenStream} which tokenizes all the text 
+         * in the provided {@link Reader}.
+         *
+         * @param fieldName lucene field name
+         * @param reader    Input {@link Reader}
+         * @return A {@link TokenStream} built from {@link CJKTokenizer}, filtered with
+         *    {@link StopFilter}
          */
         public override sealed TokenStream ReusableTokenStream(String fieldName, TextReader reader)
         {

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/FileDiffs.txt
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/FileDiffs.txt?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/FileDiffs.txt (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/contrib/Analyzers/FileDiffs.txt Mon Nov 21 19:31:20 2011
@@ -1,36 +1,16 @@
-TODO: make sure namespaces match Lucene's.  (defaults to Analyzers instead of Analysis)
+All files have been ported except for those listed below.
+
+TODO: make sure namespaces match Lucene's.  (defaults to Analyzers instead of Analysis)
 TODO: Fix method naming
 TODO: Convert all javaDoc Comments to C# XML
 TODO: Normalize Line Endings
-TODO: Fix sb.ToString().Substring t-> sb.ToString(int, int)
-TODO: RussianStemFilter.SetStemmer()
-
-analysis\ar\
-analysis\ar\ArabicAnalyzer.java - PORTED
-analysis\ar\ArabicLetterTokenizer.java - PORTED
-analysis\ar\ArabicNormalizationFilter.java - PORTED
-analysis\ar\ArabicNormalizer.java - PORTED
-analysis\ar\ArabicStemFilter.java - PORTED
-analysis\ar\ArabicStemmer.java - IDENTICAL
-analysis\ar\package.html - IDENTICAL
-
-analysis\br\
-analysis\br\BrazilianAnalyzer.java - PORTED
-analysis\br\BrazilianStemFilter.java - PORTED
-analysis\br\BrazilianStemmer.java - IDENTICAL
-analysis\br\package.html - IDENTICAL
-
-analysis\cjk\
-analysis\cjk\CJKAnalyzer.java - PORTED
-analysis\cjk\CJKTokenizer.java - PORTED 
-analysis\cjk\package.html - IDENTICAL
-
-analysis\cn\
-analysis\cn\ChineseAnalyzer.java - PORTED
-analysis\cn\ChineseFilter.java - PORTED
-analysis\cn\ChineseTokenizer.java - PORTED
-analysis\cn\package.html - IDENTICAL
+TODO: RussianStemFilter.SetStemmer() - I may be missing something, but All methods in java are private, so they can't be
+                                       overridden...so you can't subclass its behavior, so what's the point?  It's commented out
+TODO: Using Regex to determine UnicodeBlocks (CJKTokenizer as an example of this) 
+      probably slower than implementing our own UnicodeBlock class, which should
+      be fairly easy.
 
+TODO: The following Hypenation classes use SAX XML parsing, no FCL .NET equiv
 analysis\compound\hyphenation\
 analysis\compound\hyphenation\ByteVector.java - ADDED
 analysis\compound\hyphenation\CharVector.java - ADDED
@@ -39,117 +19,11 @@ analysis\compound\hyphenation\hyphenatio
 analysis\compound\hyphenation\Hyphenation.java - Text files are different
 analysis\compound\hyphenation\HyphenationException.java - Text files are different
 analysis\compound\hyphenation\HyphenationTree.java - Text files are different
-analysis\compound\hyphenation\package.html - Text files are different
 analysis\compound\hyphenation\PatternConsumer.java - Text files are different
 analysis\compound\hyphenation\PatternParser.java - Text files are different
 analysis\compound\hyphenation\TernaryTree.java - Text files are different
 
 analysis\compound\
-analysis\compound\CompoundWordTokenFilterBase.java - PORTED
-analysis\compound\DictionaryCompoundWordTokenFilter.java - PORTED
 analysis\compound\HyphenationCompoundWordTokenFilter.java - Text files are different
-analysis\compound\package.html - IDENTICAL
-
-analysis\cz\
-analysis\cz\CzechAnalyzer.java - PORTED
-analysis\cz\package.html - IDENTICAL
-
-analysis\de\
-analysis\de\GermanAnalyzer.java - PORTED
-analysis\de\GermanStemFilter.java - PORTED
-analysis\de\GermanStemmer.java - PORTED
-analysis\de\package.html - IDENTICAL
-
-analysis\el\
-analysis\el\GreekAnalyzer.java - PORTED
-analysis\el\GreekCharsets.java - REMOVED IN 3.x
-analysis\el\GreekLowerCaseFilter.java - PORTED
-analysis\el\package.html - IDENTICAL
-
-analysis\fa\
-analysis\fa\package.html - IDENTICAL
-analysis\fa\PersianAnalyzer.java - PORTED
-analysis\fa\PersianNormalizationFilter.java - PORTED
-analysis\fa\PersianNormalizer.java - PORTED
-
-analysis\fr\
-analysis\fr\ElisionFilter.java - PORTED
-analysis\fr\analysis\fr\FrenchAnalyzer.java - PORTED
-analysis\fr\FrenchStemFilter.java - PORTED
-analysis\fr\FrenchStemmer.java - PORTED
-analysis\fr\package.html - IDENTICAL
-
-analysis\miscellaneous\
-analysis\miscellaneous\EmptyTokenStream.java - PORTED
-analysis\miscellaneous\package.html - IDENTICAL
-analysis\miscellaneous\PatternAnalyzer.java - PORTED
-analysis\miscellaneous\PrefixAndSuffixAwareTokenFilter.java - PORTED
-analysis\miscellaneous\PrefixAwareTokenFilter.java - PORTED
-analysis\miscellaneous\SingleTokenTokenStream.java - PORTED
-
-analysis\ngram\
-analysis\ngram\EdgeNGramTokenFilter.java - PORTED
-analysis\ngram\EdgeNGramTokenizer.java - PORTED
-analysis\ngram\NGramTokenFilter.java - PORTED
-analysis\ngram\NGramTokenizer.java - PORTED
-analysis\ngram\package.html - IDENTICAL
-
-analysis\nl\
-analysis\nl\DutchAnalyzer.java - PORTED
-analysis\nl\DutchStemFilter.java - PORTED
-analysis\nl\DutchStemmer.java - PORTED
-analysis\nl\package.html - IDENTICAL
-analysis\nl\WordlistLoader.java - REMOVED IN 3.x
-
-analysis\payloads\
-analysis\payloads\AbstractEncoder.java - PORTED
-analysis\payloads\DelimitedPayloadTokenFilter.java -  PORTED
-analysis\payloads\FloatEncoder.java -  PORTED
-analysis\payloads\IdentityEncoder.java -  PORTED
-analysis\payloads\IntegerEncoder.java -  PORTED
-analysis\payloads\NumericPayloadTokenFilter.java - PORTED
-analysis\payloads\package.html -  Text file is missing
-analysis\payloads\PayloadEncoder.java - PORTED
-analysis\payloads\PayloadHelper.java - IDENTICAL
-analysis\payloads\TokenOffsetPayloadTokenFilter.java - PORTED
-analysis\payloads\TypeAsPayloadTokenFilter.java - PORTED
-
-analysis\position\
-analysis\position\package.html - IDENTICAL
-analysis\position\PositionFilter.java - PORTED
-
-analysis\query\
-analysis\query\package.html - IDENTICAL
-analysis\query\QueryAutoStopWordAnalyzer.java - PORTED
-
-analysis\reverse\
-analysis\reverse\package.html - IDENTICAL
-analysis\reverse\ReverseStringFilter.java - PORTED
-
-analysis\ru\
-analysis\ru\package.html - IDENTICAL
-analysis\ru\RussianAnalyzer.java - PORTED
-analysis\ru\RussianCharsets.java - REMOVED IN 3.x
-analysis\ru\RussianLetterTokenizer.java - PORTED
-analysis\ru\RussianLowerCaseFilter.java - PORTED
-analysis\ru\RussianStemFilter.java - PORTED
-analysis\ru\RussianStemmer.java - PORTED
-
-analysis\shingle\
-analysis\shingle\package.html - IDENTICAL
-analysis\shingle\ShingleAnalyzerWrapper.java - PORTED
-analysis\shingle\ShingleFilter.java - PORTED
-analysis\shingle\ShingleMatrixFilter.java - PORTED
-analysis\sinks\
-analysis\sinks\DateRecognizerSinkFilter.java - PORTED
-analysis\sinks\DateRecognizerSinkTokenizer.java - REMOVED IN 3.x
-analysis\sinks\package.html - IDENTICAL
-analysis\sinks\TokenRangeSinkFilter.java - PORTED
-analysis\sinks\TokenRangeSinkTokenizer.java - REMOVED IN 3.x
-analysis\sinks\TokenTypeSinkFilter.java - PORTED
-analysis\sinks\TokenTypeSinkTokenizer.java - REMOVED IN 3.x
 
-analysis\th\
-analysis\th\package.html - IDENTICAL
-analysis\th\ThaiAnalyzer.java - PORTED
 analysis\th\ThaiWordFilter.java - PORTED WITH ISSUES - No BreakIterator.  Won't compile; commented out

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/ChangeNotes.txt
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/ChangeNotes.txt?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/ChangeNotes.txt (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/ChangeNotes.txt Mon Nov 21 19:31:20 2011
@@ -1,59 +1,73 @@
-##############################################################
-This branch does not build, and likely won't for a while. The
-tests don't pass, and there is no guarantee that everything
-would work properly even if it did.  There is a bit of work
-being done to try and emulate java's classes as much as possible
-and because of that, there may be unexpected behavior until
-tests have been written and prove that they work as intended.
-
-There are some design choices in attempts to emulate java
-librarys that may change.
-##############################################################
-
-Many of the changes made to collections may be unnecessary.  HashMap might
-be unnecessary, if Lucene doesn't use null keys at any point in program execution
-so that a normal Dictionary may be used.  Other unnecessary additions might
-be LinkedList over List in some cases, but these have to be checked on a per
-case basis for behavior and performance...
+Some fairly large changes happened between Lucene 2.x and 3.x, particularly the addition of Generics and Enum types to Java.
+Due to some of the major differences between C#'s generics and Java's generics, there are some areas of lucene that differ
+greatly in design.  
+
+The AttributeFactory in AttributeSource is a good example of this.  Java has the Class<E> type, which would
+be .NET's Type<T>, if it existed.  Since .NET doesn't have a generic type, the compile time checking Java has for attributes
+(being constrained to typeof(Attribute)) had to be done in a different way.  The factory methods for AddAttribute and GetAttribute
+now take no parameters, and instead use generic type arguments (AddAttribute<TypeAttribute>(); instead of 
+AddAttribute(typeof(TypeAttribute));)  This change should be documented.
+
+Another example is in Enum types.  Lucene has converted its Enum types from Util.Parameter classes into proper Enums.  This
+is good improvement, since they are more lightweight and performant than a class.  However, Java's enums are closer to classes than
+in .NET.  The enumerations in Field (ie, Field.Index) have methods that help to determine the properties of that field.
+Right now, they are put in a static class as extension methods.  That allows us to use methods like IsStored(), WithOffsets(),
+WithPositions(), etc on the actual enum type without having to use a static class, but since the extension methods can only be used
+on instances of the type, the functions that create the enums, ie ToIndex(), ToTermVector(), are static methods on a static
+class.
+
+Also, more unit tests fail intermittantly in Release mode.  We notice this mostly with TestIndexWriter.TestExceptionsDuringCommit, but
+now we're seeing it on a others as well (I think one in Store and others).  It has to do with the file system, we'll get 
+AccessViolationExceptions, and seem to be caused by the pure speed that we're trying to access the file.  I think we're trying to 
+access the file after it's been written, but before the kernel has finished writing to the file, since its buffered like that.  
+It passes if you run in release with the debugger attached.  I can also get them to pass if I run them in release where they would 
+normally fail, but with Process Monitor on in the background, monitoring the file requests. - cc
 
-TODO: AttributeSource Attribute Factory uses generic types differently than java, needs to be documented properly
-
-Use of ISet<T> instead of HashSet<T> also may be unnecessary, when comparing the number of Sets java has vs .net
-
-TODO: Tests need to be written for HashMap -> verify behavior
+TODO: Confirm HashMap emulates java properly
 TODO: Tests need to be written for WeakDictionary
 TODO: Comments need to be written for WeakDictionary
 TODO: Tests need to be written for IdentityDictionary -> Verify behavior
 
-Util.Version changed to Enum with extension methods
-ThreadInterruptedException.java was not ported, because it only exists in the java because the build-in is a checked exception
 
-TODO: ParallelMultiSearcher - cannot be ported identically to java.  Check differences.  A main one is that there are not named threads.
+PriorityQueue in InsertWithOverflow, java returns null, I set it to return default(T).  I don't think it's an issue.  We should, at least, document
+              that is may have unexpected results if used with a non-nullable type.
+
+BooleanClause.java - Can't override ToString on Enum or replace with Extension Method.  Leave type-safe, override with extension method, or create static class?
+
+ParallelReader - extra data types, using SortedDictionary in place of TreeMap.  Confirm compatibility.  Looks okay, .NET uses a r/b tree just like Java, and it
+                 seems to perform/behave just about the same.
+
+FieldValueHitQueue.Entry had to be made public for accessibility.
+
+FieldCacheRangeFilter & (NumericRangeFilter/Query) - Expects nullable primitives for the anonymous range filters<T> -> replaced with Nullable<T>
+         -> Could FieldCacheRangeFilter and NumericRangeFilter/Query be converted to use normal primitives, and define no lower/upper bounds as being
+            Type.MaxValue instead of null?
+
+FuzzyQuery - uses java.util.PriorityQueue<T>, which .net does not have.  Using SortedList<TKey, TVal> in it's place, which works, but a) isn't a perfect replacement
+             (a SortedList<TKey, TVal> doesn't allow duplicate keys, which is what is sorted, where a PriorityQueue does) and b) it's likely slower than a PriorityQueue<T>
+             I can't tell if the PriorityQueue that is defined in Lucene.Net.Util would work in its place.
+
+Java LinkedList behavior compared to C#.  Used extensively in Attributes, filters and the like
+
+SegmentInfos inherits from java.util.Vector which is threadsafe.  Closest equiv is SynchronizedCollection<T>, which is in System.ServiceModel.dll
+      so, we'd have a dependency on that DLL for the one collection, which I'm not sure is worth it.  We could probably synchronize it a different way.
+
+ThreadInterruptedException.java was not ported, because it only exists in the java because the built-in one is a checked exception
+        -> Anywhere in .NET code that catches a ThreadInterruptedException and re-throws it, should just be removed, as it's redundant.
+        -> Example places include (FSDirectory, ConcurrentMergeScheduler, 
+
+Dispose needs to be implemented properly around the entire library.  IMO, that means that Close should be Obsoleted and the code in Close() moved to Dispose().
+
+Constants.cs - LUCENE_MAIN_VERSION, and static constructor differs quite a bit from Java.  It may be that way by design, I'm guessing differences in how
+               java packages work versus .NET.  Either way, the tests for versioning passes, so it's probably not an issue?
+
+ParallelMultiSearcher -> Successfully ported, but in Java the threads are named, in .NET, I ported it without named threads 
+                         (also without NamedThreadFactory from java's util)
+
+
+TODO: NamedThreadFactory.java - Is this needed?  What is it for, just for debugging?
+TODO: DummyConcurrentLock.java - Not Needed?
 
-PriorityQueue in InsertWithOverflow, java returns null, I set it to return default(T).  I don't think it's an issue, it looks like java is doing unchecked generics.  We should look back and determine if we should contrain the generic to class
-Parameter.cs - Commented code in Lucene.Net is uncommented in java
-TODO: Finish HashMap<K,V> and confirm it properly emulates java's behavior
-TODO: NamedThreadFactory.java
-TODO: DummyConcurrentLock.java
-TODO: Constants.java - LUCENE_MAIN_VERSION, and static constructor
-TODO: Implement Cache.cs' IDisposable properly
-TODO: Check on FSDirectory(System.IO.DirectoryInfo path, LockFactory lockFactory)
-TODO: LockStressTest.java
-TODO: MMapDirectory.java -> ThreadInterruptedException
-TODO: NIOFSDirectory.java
-TODO: RAMDirectory.java
-
-TODO: BooleanClause.java - Can't override ToString on Enum or replace with Extension Method.  Leave type-safe, override with extension method, or create static class?
-TODO: FieldValueHitQueue.Entry had to be made public for accessibility.  Look further into that.
-TODO: FuzzyQuery - uses java.util.PriorityQueue<T>, which .net does not have.  Revisit later.
-TODO: ParallelReader - extra data types, using SortedDictionary in place of TreeMap.  Confirm compatibility.
-
-TODO: SegmentInfos inherites from java.util.Vector<E>, which is threadsafe.  Closest equivelant is SynchronizedCollection<T> in .NET, but it's in a System.ServiceModel, and I can't be sure it's worth a dependency on that entire assembly for the one class.  Thread safety can probably be achieved in a different way.
-
-TODO: ThreadInterruptedException.java - This shouldn't be necessary.  Lucene is using it because it is unchecked.  C# has no checked expcetions
-TODO: FSDirectory.java - ThreadInterruptedException
-TODO: ConcurrentMergeScheduler - ThreadInterruptedException
-
-CHANGED: FieldCacheRangeFilter - Expects nullable primitives for the anonymous range filters<T> -> replaced with Nulable<T>
-CONFIRM: IndexWriter.java - ReaderPool.Close/Commit/Get lock/sync changes - may be wrong, probably are ok - ThreadInterruptedException(ie)
-CONFIRM: Java LinkedList behavior compared to C#.  Used extensively in Attributes, filters and the like
\ No newline at end of file
+TODO: LockStressTest.java - Not yet ported.
+TODO: MMapDirectory.java - Port Issues
+TODO: NIOFSDirectory.java - Port Issues
\ No newline at end of file

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt Mon Nov 21 19:31:20 2011
@@ -1,12 +1,12 @@
-index\SegmentInfos.java - PORTED * doesn't inherit from a generic equiv as in java (java's is threadsafe)
-search\BooleanClause.java - Text files are different - Java Enum overrides ToString() -> illegal in .NET
-search\FuzzyQuery.java - PORTED * WITH POSSIBLE MAJOR DIFFERENCES
-search\MultiSearcher.java - PORTED * Double check on MultiSearcherCallableNoSort/Sort, use of new Object() rather than dummy lock.  Shouldn't make a difference, seems to be used because ParallelMultiSearcher uses a ReEntrantLock instead of synchronized
-store\IndexInput.java - PORTED * See IDisposable
-store\IndexOutput.java - PORTED * See IDisposable
+search\BooleanClause.java - Text files are different - Java Enum overrides ToString() -> 
+                                                       can't do that in .NET, it will always choose the 
+                                                       base class instead of the extension method, if that's how
+                                                       we choose to implement.
 store\LockStressTest.java - Text files are different
 store\MMapDirectory.java - Text files are different - PORT ISSUES
 store\NIOFSDirectory.java - Text files are different - PORT ISSUES
-util\DummyConcurrentLock.java - New in 3.x
+
+
+util\DummyConcurrentLock.java - New in 3.x (NOT NEEDED IN .NET?  Can just use new Object() for a dummy lock) (used in MultiSearcher)
 util\NamedThreadFactory.java - New in 3.x
 util\ThreadInterruptedException.java - new in 3.x (NOT NEEDED IN .NET?)
\ No newline at end of file

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs Mon Nov 21 19:31:20 2011
@@ -35,7 +35,7 @@ namespace Lucene.Net.Index
 	/// (subject to change suddenly in the next release)<p/>
 	/// </summary>
 	[Serializable]
-	public sealed class SegmentInfos : List<SegmentInfo>, ICloneable/*ConcurrentBag<SegmentInfo> is thread-safety a requirement of SegmentInfos?*/
+	public sealed class SegmentInfos : List<SegmentInfo>, ICloneable
 	{
 		private class AnonymousClassFindSegmentsFile:FindSegmentsFile
 		{

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/RAMDirectory.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/RAMDirectory.cs?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/RAMDirectory.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/RAMDirectory.cs Mon Nov 21 19:31:20 2011
@@ -252,15 +252,15 @@ namespace Lucene.Net.Store
             Close();
         }
 
-        public HashMap<string, RAMFile> fileMap_ForNUnit
-        {
-            get { return fileMap; }
-        }
+        //public HashMap<string, RAMFile> fileMap_ForNUnit
+        //{
+        //    get { return fileMap; }
+        //}
 
-        public long sizeInBytes_ForNUnitTest
-        {
-            get { return sizeInBytes; }
-            set { sizeInBytes = value; }
-        }
+        //public long sizeInBytes_ForNUnitTest
+        //{
+        //    get { return sizeInBytes; }
+        //    set { sizeInBytes = value; }
+        //}
 	}
 }
\ No newline at end of file

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/Parameter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/Parameter.cs?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/Parameter.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/Parameter.cs Mon Nov 21 19:31:20 2011
@@ -56,7 +56,6 @@ namespace Lucene.Net.Util
 			return name;
 		}
 
-		// TODO: Why is this commented out?  Java has this code uncommented.
 		/// <summary> Resolves the deserialized instance to the local reference for accurate
 		/// equals() and == comparisons.
 		/// 

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/PriorityQueue.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/PriorityQueue.cs?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/PriorityQueue.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/PriorityQueue.cs Mon Nov 21 19:31:20 2011
@@ -161,7 +161,7 @@ namespace Lucene.Net.Util
 			if (size < maxSize)
 			{
 				Add(element);
-				return default(T); // TODO: java returns null, C# can't, TestPriorityQueue relies on a nullable int - cc
+				return default(T);
 			}
 			else if (size > 0 && !LessThan(element, heap[1]))
 			{

Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/contrib/Analyzers/PortedTests.txt
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/contrib/Analyzers/PortedTests.txt?rev=1204661&r1=1204660&r2=1204661&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/contrib/Analyzers/PortedTests.txt (original)
+++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/contrib/Analyzers/PortedTests.txt Mon Nov 21 19:31:20 2011
@@ -1,3 +1,3 @@
 TODO: Add tests to make sure that Version numbers match for all contrib assemblies, all test contrib, lucene core and lucene test.
 
-All ported, except ThaiAnalyzer and Hyphenation
\ No newline at end of file
+All tests ported, except ThaiAnalyzer and Hyphenation
\ No newline at end of file