- [Obsolete("Use Dispose() instead")] + //[Obsolete("Use Dispose() instead")] public override void Close() { Dispose();
Is Close obsolete or not?... On Mon, Jun 18, 2012 at 1:21 AM, <ccurr...@apache.org> wrote: > Author: ccurrens > Date: Sun Jun 17 22:21:07 2012 > New Revision: 1351173 > > URL: http://svn.apache.org/viewvc?rev=1351173&view=rev > Log: > [LUCENENET-495] - Replaced several instances of DateTime.Now with > DateTime.UtcNow. Improves performance by ~31% > > Modified: > incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs > incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs > incubator/lucene.net/trunk/src/core/Index/Term.cs > incubator/lucene.net/trunk/src/core/Lucene.Net.csproj > incubator/lucene.net/trunk/src/core/Search/FilterManager.cs > incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs > incubator/lucene.net/trunk/src/core/Store/RAMFile.cs > incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs > incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs > > Modified: incubator/ > lucene.net/trunk/src/core/Index/ReusableStringReader.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- > incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs(original) > +++ incubator/lucene.net/trunk/src/core/Index/ReusableStringReader.cs Sun > Jun 17 22:21:07 2012 > @@ -67,7 +67,7 @@ namespace Lucene.Net.Index > } > } > > - [Obsolete("Use Dispose() instead")] > + //[Obsolete("Use Dispose() instead")] > public override void Close() > { > Dispose(); > > Modified: incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs (original) > +++ incubator/lucene.net/trunk/src/core/Index/SegmentInfos.cs Sun Jun 17 > 22:21:07 2012 > @@ -121,7 +121,7 @@ namespace Lucene.Net.Index > /// <summary> counts how often the index has been changed > by adding or deleting docs. > /// starting with the current time in milliseconds forces > to create unique version numbers. > /// </summary> > - private long version = (DateTime.Now.Ticks / > TimeSpan.TicksPerMillisecond); > + private long version = (DateTime.UtcNow.Ticks / > TimeSpan.TicksPerMillisecond); > > private long generation = 0; // generation of the > "segments_N" for the next commit > private long lastGeneration = 0; // generation of the > "segments_N" file we last successfully read > @@ -303,7 +303,7 @@ namespace Lucene.Net.Index > { > // in old format the version number > may be at the end of the file > if (input.FilePointer >= > input.Length()) > - version = > (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond); > + version = > (DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond); > // old file format without version > number > else > version = input.ReadLong(); > // read version > > Modified: incubator/lucene.net/trunk/src/core/Index/Term.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Index/Term.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Index/Term.cs (original) > +++ incubator/lucene.net/trunk/src/core/Index/Term.cs Sun Jun 17 22:21:07 > 2012 > @@ -141,12 +141,12 @@ namespace Lucene.Net.Index > return String.CompareOrdinal(field, > other.field); > } > > - /// <summary>Resets the field and text of a Term. > </summary> > - internal void Set(System.String fld, System.String txt) > - { > - field = fld; > - text = txt; > - } > + ///// <summary>Resets the field and text of a Term. </summary> > + //internal void Set(System.String fld, System.String txt) > + //{ > + // field = fld; > + // text = txt; > + //} > > public override System.String ToString() > { > > Modified: incubator/lucene.net/trunk/src/core/Lucene.Net.csproj > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Lucene.Net.csproj?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Lucene.Net.csproj (original) > +++ incubator/lucene.net/trunk/src/core/Lucene.Net.csproj Sun Jun 17 > 22:21:07 2012 > @@ -86,7 +86,7 @@ > <WarningLevel>4</WarningLevel> > <DebugType>full</DebugType> > <ErrorReport>prompt</ErrorReport> > - > <CodeAnalysisRuleSet>BasicDesignGuidelineRules.ruleset</CodeAnalysisRuleSet> > + <CodeAnalysisRuleSet>blah.ruleset</CodeAnalysisRuleSet> > <RunCodeAnalysis>false</RunCodeAnalysis> > </PropertyGroup> > <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == > 'Release|AnyCPU' "> > > Modified: incubator/lucene.net/trunk/src/core/Search/FilterManager.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Search/FilterManager.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Search/FilterManager.cs (original) > +++ incubator/lucene.net/trunk/src/core/Search/FilterManager.cs Sun Jun > 17 22:21:07 2012 > @@ -110,7 +110,7 @@ namespace Lucene.Net.Search > fi = cache[filter.GetHashCode()]; > if (fi != null) > { > - fi.timestamp = > System.DateTime.Now.Ticks; > + fi.timestamp = > System.DateTime.UtcNow.Ticks; > return fi.filter; > } > cache[filter.GetHashCode()] = new > FilterItem(filter); > @@ -130,7 +130,7 @@ namespace Lucene.Net.Search > public FilterItem(Filter filter) > { > this.filter = filter; > - this.timestamp = System.DateTime.Now.Ticks; > + this.timestamp = > System.DateTime.UtcNow.Ticks; > } > } > > > Modified: incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs (original) > +++ incubator/lucene.net/trunk/src/core/Store/RAMDirectory.cs Sun Jun 17 > 22:21:07 2012 > @@ -121,7 +121,11 @@ namespace Lucene.Net.Store > } > if (file == null) > throw new > System.IO.FileNotFoundException(name); > - return file.LastModified; > + > + // RAMOutputStream.Flush() was changed to use DateTime.UtcNow. > + // Convert it back to local time before returning (previous > behavior) > + return new > DateTime(file.LastModified*TimeSpan.TicksPerMillisecond, > DateTimeKind.Utc).ToLocalTime().Ticks/ > + TimeSpan.TicksPerMillisecond; > } > > /// <summary>Set the modified time of an existing file to > now.</summary> > @@ -137,7 +141,7 @@ namespace Lucene.Net.Store > if (file == null) > throw new > System.IO.FileNotFoundException(name); > > - long ts2, ts1 = System.DateTime.Now.Ticks; > + long ts2, ts1 = System.DateTime.UtcNow.Ticks / > TimeSpan.TicksPerMillisecond; > do > { > try > @@ -151,7 +155,7 @@ namespace Lucene.Net.Store > ThreadClass.Current().Interrupt(); > throw new > System.SystemException(ie.Message, ie); > } > - ts2 = System.DateTime.Now.Ticks; > + ts2 = System.DateTime.UtcNow.Ticks / > TimeSpan.TicksPerMillisecond; > } > while (ts1 == ts2); > > > Modified: incubator/lucene.net/trunk/src/core/Store/RAMFile.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMFile.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Store/RAMFile.cs (original) > +++ incubator/lucene.net/trunk/src/core/Store/RAMFile.cs Sun Jun 17 > 22:21:07 2012 > @@ -32,7 +32,7 @@ namespace Lucene.Net.Store > internal long sizeInBytes; > > // This is publicly modifiable via Directory.touchFile(), > so direct access not supported > - private long lastModified = (DateTime.Now.Ticks / > TimeSpan.TicksPerMillisecond); > + private long lastModified = (DateTime.UtcNow.Ticks / > TimeSpan.TicksPerMillisecond); > > // File used as buffer, in no RAMDirectory > public /*internal*/ RAMFile() > > Modified: incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs(original) > +++ incubator/lucene.net/trunk/src/core/Store/RAMOutputStream.cs Sun Jun > 17 22:21:07 2012 > @@ -43,7 +43,7 @@ namespace Lucene.Net.Store > { > } > > - public /*internal*/ RAMOutputStream(RAMFile f) > + internal RAMOutputStream(RAMFile f) > { > file = f; > > @@ -173,7 +173,7 @@ namespace Lucene.Net.Store > > public override void Flush() > { > - file.LastModified = (DateTime.Now.Ticks / > TimeSpan.TicksPerMillisecond); > + file.LastModified = (DateTime.UtcNow.Ticks / > TimeSpan.TicksPerMillisecond); > SetFileLength(); > } > > > Modified: incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs > URL: > http://svn.apache.org/viewvc/incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs?rev=1351173&r1=1351172&r2=1351173&view=diff > > ============================================================================== > --- incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs(original) > +++ incubator/lucene.net/trunk/src/core/Support/CollectionsHelper.cs Sun > Jun 17 22:21:07 2012 > @@ -37,17 +37,30 @@ namespace Lucene.Net.Support > > public static void AddIfNotContains(System.Collections.Hashtable > hashtable, System.Object item) > { > - if (hashtable.Contains(item) == false) > + // Added lock around check. Even though the collection > should already have > + // a synchronized wrapper around it, it doesn't prevent this > test from having > + // race conditions. Two threads can (and have in > TestIndexReaderReopen) call > + // hashtable.Contains(item) == false at the same time, then > both try to add to > + // the hashtable, causing an ArgumentException. locking on > the collection > + // prevents this. -- cc > + lock (hashtable) > { > - hashtable.Add(item, item); > + if (hashtable.Contains(item) == false) > + { > + hashtable.Add(item, item); > + } > } > } > > public static void AddIfNotContains(System.Collections.ArrayList > hashtable, System.Object item) > { > - if (hashtable.Contains(item) == false) > + // see AddIfNotContains(Hashtable, object) for information > about the lock > + lock (hashtable) > { > - hashtable.Add(item); > + if (hashtable.Contains(item) == false) > + { > + hashtable.Add(item); > + } > } > } > > > > >