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]


Reply via email to