[ https://issues.apache.org/jira/browse/LUCENENET-186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Digy closed LUCENENET-186. -------------------------- Resolution: Fixed Assignee: Digy > Lucene.Net 2.4.0 - Status/Todo (all in one place) > ------------------------------------------------- > > Key: LUCENENET-186 > URL: https://issues.apache.org/jira/browse/LUCENENET-186 > Project: Lucene.Net > Issue Type: Bug > Reporter: Digy > Assignee: Digy > Attachments: CloseableThreadLocal.cs, ReusableStringReader.patch, > SupportClass.diff > > > The following is my understanding of the current status and remaining work to > be done on the 2.4.0 port: > 1) Lucene.Net.Util.CloseableThreadLocal > - Needs WeakReferences wrapping thread-local data. > 2) > Lucene.Net.Search.TimeLimitedCollector/Lucene.Net.Search.TestTimeLimitedCollector > - Unit tests are failing, requires investigation and bugfix > 3) File Descriptor syncing in FSDirectory.cs > FSDirectory.Sync(string) is supposed to sync the underlying file descriptor, > flushing all downstream buffers. I'm not sure how to accomplish this is C#, > and this code needs to be reviewed/fixed/nuked. > Digy suggests the following code fix: > [System.Runtime.InteropServices.DllImport("kernel32")] > public static extern int > FlushFileBuffers(Microsoft.Win32.SafeHandles.SafeFileHandle > SafeFileHandle); > public static void Sync(FileStream fs) > { > if (FlushFileBuffers(fs.SafeFileHandle) == 0) > { > throw new SyncFailedException(); > } > } > public class SyncFailedException : Exception > { > } > 4) Weak References in Caches > Lucene.Net.Search.CachingSpanFilter.cs > Lucene.Net.Search.CachingWrapperFilter.cs > Lucene.Net.Search.FieldCacheImpl.cs > - Lucene Java utilizes java.util.WeakHashMap > - Lucene.Net is not using a data structure with weak references > Per Digy: > "WeakHashTable(implemented in SupportClass) was used in FieldCacheImpl, > CachingSpanFilter, CachingWrapperFilter in v2.3.2 because HashTable had > caused memory leak (http://issues.apache.org/jira/browse/LUCENENET-106). But > as I said before, some patches made to Lucene.Net 2.3.2(2.3.1?) are lost with > your new 2.4.0" > WeakHashTable needs to be recovered from the 2.3.2 SupportClass and > integrated into the 2.4.0 SupportClass. FieldCacheImpl, CachingSpanFilter, > and CachingWrapperFilter need to be updated to utilize WeakHashTable. > 5) Implement Lucene.Net.Store.NIOFSDirectory.cs > (org.apache.lucene.store.NIOFSDirectory.java) > Me (from a few days ago): > "This is a Java subclass of FSDirectory that allows multiple threads to read > from a single file without blocking each other. Write behavior is inherited > from FSDirectory. If anyone would like to take a stab at this, please be my > guest." > I'm not sure that this is a necessary component for moving forward with the > 2.4.0 release, but if someone comes up with an implementation that performs > better than FSDirectory, of course we would be interested. > 6+) Per Digy: "Here is a list of lost bug fixes/improvements with v2.4.0" > LUCENENET-183 > LUCENENET-182 > LUCENENET-175 > LUCENENET-174 > LUCENENET-170 > LUCENENET-169 > LUCENENET-168 > LUCENENET-163 > LUCENENET-160 > LUCENENET-159 > LUCENENET-106 (This is the #4, above) > This list needs to be traversed and ported when/where necessary. > Thanks, > Doug -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.