[ https://issues.apache.org/jira/browse/LUCENE-1464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12649946#action_12649946 ]
Michael McCandless commented on LUCENE-1464: -------------------------------------------- bq. I'm curious why we shouldn't re-instate the no-create API in Directory? See LUCENE-773 for the full explanation. The short answer is that it's confusing because IndexWriter also has a create boolean and I think there should be only one. Plus, IndexWriter's impl of "create=true" is better than FSDir's (it will retry deleting files if they are still in use, instead of throwing IOException, and, it will allow the deletion policy to decide what to do with the older commit points). > 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]