[ https://issues.apache.org/jira/browse/LUCENE-1464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless updated LUCENE-1464: --------------------------------------- Attachment: LUCENE-1464.patch Attached patch that just creates the dir the first time createOutput is called. I plan to commit in a day or so. > 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]