[ 
https://issues.apache.org/jira/browse/IMAGING-359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746095#comment-17746095
 ] 

Marcono1234 commented on IMAGING-359:
-------------------------------------

Might be possible but I am not sure if that would be very useful at the moment 
because a lot of the API seems to take a {{File}} currently so you might have 
to convert {{Path}} back to {{File}} again.
The main problem here is conversion from {{Class.getResource(String)}} to 
{{File}} / {{Path}}, but for this issue here it does not matter whether 
{{File}} or {{Path}} is used.

Have created a pull request for this issue: 
https://github.com/apache/commons-imaging/pull/306
At least locally with a space in the file path of the directory this seems to 
solve the test failures.

> Faulty usage of URL.getFile() in tests
> --------------------------------------
>
>                 Key: IMAGING-359
>                 URL: https://issues.apache.org/jira/browse/IMAGING-359
>             Project: Commons Imaging
>          Issue Type: Bug
>            Reporter: Marcono1234
>            Priority: Major
>
> The unit tests contain a lot of code which obtains a {{URL}} from 
> {{Class.getResource(String)}}, and then calls {{URL.getFile()}} to use that 
> as file path.
> The problem is that, despite sounding similar, {{URL.getFile()}} is 
> completely unrelated to file paths and actually returns an URL encoded value. 
> So what this means is that you encounter a lot of test failures due to 
> {{NoSuchFileException}} if you have the project in a directory with space (or 
> non-ASCII characters?) in its file path.
> The solution is to call {{URL.toURI()}} and then either {{new File(URI)}} or 
> {{Paths.get(URI)}} (respectively {{Path.of(URI)}}).
> Maybe a separate helper method shared by all test code is needed for this 
> because {{toURI}} unfortunately throws a checked {{URISyntaxException}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to