WeakReference doesn't fit here.  We need a real reference.

I don't like falling back to GC to do "close" in case there are "precious" resources that the Directory needs to release.

Mike

robert engels wrote:

Why not create new lightweight references to the the directory, and using WeakReferences and ReferenceQueues and avoid the need to manually use incRef and decRef ?

Tracking state like this almost always leads to problems - this is why Java has GC in the first place - because it is very difficult to perform this sort of resource tracking.

On Nov 18, 2008, at 2:37 PM, Michael McCandless wrote:


I think this makes sense.

But: I think we'd need to add incRef/decRef to Directory? And fix the newly added logic in DirectoryIndexReader that now clones the dir during reopen (because it's hardwired to only work with FSDir).

Mike

Mark Miller wrote:

Does anyone object to making IndexReader

private static IndexReader open(final Directory directory, final boolean closeDirectory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly) throws CorruptIndexException, IOException { return DirectoryIndexReader.open(directory, closeDirectory, deletionPolicy, commit, readOnly);
}

public? I think it can be convenient to be able to both control the closing of the Directory yourself, as well as give the Directory to an IndexReader to manage.

If you have created a DirectoryFactory to supply your IndexReaders, you will want to supply external Directory implementations to the IndexReaders, and its quite possible that you then want the IndexReader to take over the lifecycle of the Directory for you rather than having to juggle the two separately

- Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to