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