You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Alejandro Abdelnur (JIRA)" <ji...@apache.org> on 2013/11/01 17:02:19 UTC

[jira] [Commented] (HADOOP-10080) Variables in configuration properties are substituted in wrong order of precedence

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

Alejandro Abdelnur commented on HADOOP-10080:
---------------------------------------------

I hear you, but I'm afraid this is a huge incompatible change in behavior that would break things within Hadoop and outside that rely on this behavior. Given that I would close as WONT FIX.

> Variables in configuration properties are substituted in wrong order of precedence
> ----------------------------------------------------------------------------------
>
>                 Key: HADOOP-10080
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10080
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: conf
>    Affects Versions: 2.2.0
>            Reporter: Sebastian Nagel
>            Priority: Minor
>
> API doc of [Configuration|https://hadoop.apache.org/docs/stable/api/org/apache/hadoop/conf/Configuration.html] states:
> {quote}
> Value strings are first processed for variable expansion. The available properties are:
> 1.  Other properties defined in this Configuration; and, if a name is undefined here,
> 2.  Properties in System.getProperties().
> {quote}
> The current implementation of variable expansion, however, gives precedence to system properties. If a system property is defined it's value is used no matter whether a configuration property of same name exists.
> This may cause inconsistent behaviour, e.g., if in the API doc example "basedir" is set as system property ({{-Dbasedir=/mnt/tmp}}) the results of two intuitively equivalent calls differ:
> {code}
>  new Path(conf.get("tempdir"))        // = /mnt/data/tmp
>  new Path(conf.get("basedir"), "tmp") // = /user/wastl/tmp
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)