[ 
https://issues.apache.org/jira/browse/LUCENE-1468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650197#action_12650197
 ] 

Michael McCandless commented on LUCENE-1468:
--------------------------------------------

I would tend to agree -- Directory should try to be a "simple conduit" to the 
filesystem.  It should not filter things in some methods and not others.

It should be up to the caller to pick & choose which files are of interest.

EG in LUCENE-638, RamDir should pick & choose to copy over only those files 
referenced by all live commit points.

LUCENE-385 was another issue where filtering was added to FSDir so that when 
you opened an index with create=true, Lucene would only remove files that look 
like index files.  This one should already be fixed (I haven't yet tested 
though), because we have now deprecated the create=true argument to FSDir in 
favor of IndexWriter's create=true.  IndexWriter is smarter and careful (uses 
IndexFileDeleter; retries delete; keeps old commit points around if the 
deletion policy says so; etc.) about which files should be deleted.

Especially as we move towards flexible indexing (LUCENE-1458), what is and is 
not an index file is up to the particular codec(s) in use and is no longer a 
simple list of file extensions.  I had to change quite a few "interesting" 
places when I created the first codec that used new file extensions.

So I agree neither list(), nor any other methods in FSDir, should do any 
filtering.  But because of back compatibility: I don't think we can suddenly 
change list() to return all files.  I think we'd have to deprecate list and 
then add eg "fullList" or "listAll" instead.

> FSDirectory.list() is inconsistent
> ----------------------------------
>
>                 Key: LUCENE-1468
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1468
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 2.1, 2.2, 2.3, 2.3.1, 2.3.2, 2.4
>            Reporter: Marcel Reutegger
>            Priority: Minor
>         Attachments: DirectoryTest.java
>
>
> LUCENE-638 added a check to the FSDirectory.list() method to only return 
> files that are Lucene related. I think this change made the FSDirectory 
> implementation inconsistent with all other methods in Directory. E.g. you can 
> create a file with an arbitrary name using FSDirectory, fileExists() will 
> report that it is there, deleteFile() will remove it, but the array returned 
> by list() will not contain the file.
> The actual issue that was reported in LUCENE-638 was about sub directories. 
> Those should clearly not be listed, but IMO it is not the responsibility of a 
> Directory implementation to decide what kind of files can be created or 
> listed. The Directory class is an abstraction of a directory and it should't 
> to more than that.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to