[ https://issues.apache.org/jira/browse/ARROW-9121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17141883#comment-17141883 ]
Mohamed Zenadi commented on ARROW-9121: --------------------------------------- For me, the weird behavior is the default to wipe. Not the fact that empty -> wipe. I would not trust the user's code to be exempt of defaults that would lead to empty strings. Which in some situations would lead to filesystem wipe. On Mon, Jun 22, 2020 at 12:06 PM Krisztian Szucs (Jira) <j...@apache.org> > [C++] Do not wipe the filesystem when path is empty > --------------------------------------------------- > > Key: ARROW-9121 > URL: https://issues.apache.org/jira/browse/ARROW-9121 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Reporter: Mohamed Zenadi > Assignee: Krisztian Szucs > Priority: Minor > Fix For: 1.0.0 > > > The `DeleteDirContents` method in the filesystems api has a default behavior > or *wiping* the whole filesystem if we give it an empty path. > > It's documented as: > > Like DeleteDir, but doesn’t delete the directory itself. Passing an empty > path (“”) will wipe the entire filesystem tree. > > And the corresponding code confirms that: > {code:java} > auto parts = SplitAbstractPath(path); > RETURN_NOT_OK(ValidateAbstractPathParts(parts)); > > if (parts.empty()) { > // Wipe filesystem > impl_->RootDir().entries.clear(); > return Status::OK(); > } > {code} > > This is a weird default that does not make sense. If the user wanted really > to wipe his filesystem, he'd pass a `/`. > -- This message was sent by Atlassian Jira (v8.3.4#803005)