You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2017/04/19 17:18:41 UTC

[jira] [Comment Edited] (COMPRESS-387) Allow spaces in path for unit tests in Windows

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

Uwe Schindler edited comment on COMPRESS-387 at 4/19/17 5:18 PM:
-----------------------------------------------------------------

bq. Thanks, we probably don't need the getPath() at all but could rather stop right after toURI().

Yes, that's the correct way to do it. Using getPath() on the URI may break, too. The correct way (see also the Maven project's code guidelines about URL/URI/File and Classpath) is to convert the URL to an URI and pass the URI to the File ctor: https://maven.apache.org/plugin-developers/common-bugs.html#Converting_between_URLs_and_Filesystem_Paths (although the comments are a bit outdated, as newer Java versions have URL.toURI() that works correct).

This is "the correct way" to do this:

{code:java}
URL u = foobar.getResource("...");
File f = new File(u.toURI());
{code}

Nevertheless, I'd prefer to get an InputStream directly, as the test suite would fail, if the resources are in a JAR file for some reason (IDE,...).


was (Author: thetaphi):
bq. Thanks, we probably don't need the getPath() at all but could rather stop right after toURI().

Yes, that's the correct way to do it. Using getPath() on the URI may break, too. The correct way (see also the Maven project's code guidelines about URL/URI/File and Classpath) is to convert the URL to an URI and pass the URI to the File ctor: https://maven.apache.org/plugin-developers/common-bugs.html#Converting_between_URLs_and_Filesystem_Paths (although this is outdated, as newer Java versions have URL.toURI() that works correct.

This is "the correct way" to do this:

{code:java}
URL u = foobar.getResource("...");
File f = new File(u.toURI());
{code}

Nevertheless, I'd prefer to get an InputStream directly, as the test suite would fail, if the resources are in a JAR file for some reason (IDE,...).

> Allow spaces in path for unit tests in Windows
> ----------------------------------------------
>
>                 Key: COMPRESS-387
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-387
>             Project: Commons Compress
>          Issue Type: Improvement
>            Reporter: Tim Allison
>            Priority: Trivial
>             Fix For: 1.14
>
>
> I'm getting build failures on Windows, probably because I'm working in a directory that has a space in the name (on purpose!).
> If we modify the much better:
> {noformat}
>     private static final File ARCDIR = new File(CLASSLOADER.getResource("archives").getFile());
> {noformat}
> with this hideousness in LongPathTest, LongSymLinkTest and ArchiveReadTest
> {noformat}
>     static {
>         try {
>             ARCDIR = new File(CLASSLOADER.getResource("archives").toURI().getPath());
>         } catch (URISyntaxException e) {
>             throw new RuntimeException(e);
>         }
>     }
> {noformat}
> tests all pass.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)