commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (COMPRESS-387) Allow spaces in path for unit tests in Windows
Date Wed, 19 Apr 2017 17:18:41 GMT

    [ 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)

Mime
View raw message