hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charlie Helin (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MAPREDUCE-6455) Unable to use surefire > 2.18
Date Wed, 19 Aug 2015 11:28:46 GMT

     [ https://issues.apache.org/jira/browse/MAPREDUCE-6455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Charlie Helin updated MAPREDUCE-6455:
-------------------------------------
    Attachment: mr-6455.2.patch

> Unable to use surefire > 2.18
> -----------------------------
>
>                 Key: MAPREDUCE-6455
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6455
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>    Affects Versions: 2.7.1
>            Reporter: Charlie Helin
>            Assignee: Charlie Helin
>         Attachments: mr-6455.1.patch, mr-6455.2.patch
>
>
> There are some compelling features in later version of surefire which lets one exclude/include
tests based the content of a file, re-running of test case etc.
> However introduced in Surefire 2.18 is also https://issues.apache.org/jira/browse/SUREFIRE-649.
Which changed the convention of null properties to empty string values (""). This only applies
to forked tests such as the MapReduce tests and cause a couple of them to fail because of
functionality that is directly or indirectly dependent on the value being null. One such example
is Configuration.substituteVars() and TaskLog.getBaseLogDir().
> substituteVars() shows the issue when the getProperty returns empty String, skipping
the getRaw(var) expression. One way to work around this could be
> {code} 
>    if (val == null || val.isEmpty()) {
>         String raw = getRaw(var);
>         if (raw != null) {
>           // raw contains a value, otherwise default to whatever System.getProperty returned
>           // since it could be an empty string
>           val = raw;
>         }
>       }
> {code}
> getBaseLogDir, similarly when returns an empty string the schematics of java.io.File
differs dependent on whether parent is null or "". A null value is interpreted as new File(file);
whereas "" will be interpreted as new File(defaultParent /* / */, file);
> This could simply be addressed with 
> {code}
>   static String getBaseLogDir() {
>     String logDir = System.getProperty("hadoop.log.dir");
>     // there is a difference how null and "" is treated as a parent
>     // directory when creating a file
>     return logDir == null || logDir.isEmpty() ? null : logDir;
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message