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

Michael McCandless commented on LUCENE-1464:
--------------------------------------------

I don't understand what you mean by "it's the IndexWriter's job to
create a placeholder for Directory".

It's IndexWriter's job to create a new index.  It's FSDir's job to
deal with the particulars of a file system like having to make the
containing directory before creating a file.

With this patch we aren't silently creating dirs.  Rather, we create
the dir the first time we need to create a file in that dir.  That
seems like the right time to create the dir?

> FSDirectory.getDirectory always creates index path
> --------------------------------------------------
>
>                 Key: LUCENE-1464
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1464
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 2.4, 2.9
>            Reporter: Andrzej Bialecki 
>            Assignee: Michael McCandless
>         Attachments: LUCENE-1464.patch
>
>
> This was reported to me as a Luke bug, but going deeper it proved to be a 
> non-intuitive (broken?) behavior of FSDirectory.
> If you use FSDirectory.getDirectory(File nonexistent) on a nonexistent path, 
> but one that is located under some existing parent path, then FSDirectory:174 
> uses file.mkdirs() to create this directory. One would expect a variant of 
> the method with a boolean flag to decide whether or not to create the output 
> path. However, the API with "create" flag is now deprecated, with a comment 
> that points to IndexWriter's "create" flag. This comment is misleading, 
> because the indicated path is created anyway in the file system just by 
> calling FSDirectory.getDirectory().
> I propose to do one of the following:
> * reinstate the variant of the method with "create" flag. In case if this 
> flag is false, and the index directory is missing, either return null or 
> throw an IOException,
> * keep the API as it is now, but either return null or throw IOException if 
> the index dir is missing. This breaks the backwards compatibility, because 
> now users are required to do file.mkdirs() themselves prior to calling 
> FSDirectory.getDirectory().

-- 
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