stevedlawrence commented on a change in pull request #44:
URL: https://github.com/apache/daffodil-vscode/pull/44#discussion_r736618471
##########
File path:
server/core/src/main/scala/org.apache.daffodil.debugger.dap/Parse.scala
##########
@@ -211,9 +211,10 @@ object Parse {
Either
.catchNonFatal(LaunchArgs.InfosetOutput.File(Paths.get(path.getAsString)))
.leftMap(t => s"'infosetOutput.path' field from
launch request is not a valid path: $t")
- .ensureOr(file => s"can't write to infoset output
file at ${file.path}")(
- _.path.toFile().canWrite()
- )
+ .ensureOr(file => s"can't write to infoset output
file at ${file.path}") { f =>
+ val file = f.path.toFile
+ file.exists && file.canWrite ||
file.getParentFile.canWrite
Review comment:
What if the file exists and you can't write to it, but you can write to
the parent file? This test will succeed, but wouldn't that still cause an error
unless it tries to delete the file before writing to it first? I can't see
anywhere if we do that delete. Note that I think `canWrite` requires that the
file exists, so should logic instead be something like
```scala
file.canWrite || (!file.exists && file.getParentFile.canWrite)
```
So either we can write to the file, or it it doesn't exist and we can create
it?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]