You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Dicke (JIRA)" <ji...@apache.org> on 2014/10/22 14:59:33 UTC

[jira] [Created] (LANG-1055) StrSubstitutor.replaceSystemProperties does not work constistently

Phil Dicke created LANG-1055:
--------------------------------

             Summary: StrSubstitutor.replaceSystemProperties does not work constistently
                 Key: LANG-1055
                 URL: https://issues.apache.org/jira/browse/LANG-1055
             Project: Commons Lang
          Issue Type: Bug
          Components: lang.text.*
    Affects Versions: 3.3.2
         Environment: Windows 7, Java 7
            Reporter: Phil Dicke


StrSubsitutor caches a references to SystemProperties statically on first class references.  This does not work properly with System.setProperties().  For example the following code:
{code}
package test.utilities;

import java.util.Properties;

import org.apache.commons.lang.text.StrSubstitutor;

public class TestStrSubstitutor {

    public static void main(String[] args) {
        System.out.println(StrSubstitutor.replaceSystemProperties("os.name=${os.name}"));
        Properties testProps = new Properties();
        testProps.put("test_key",  "test_value");
        testProps.putAll(System.getProperties());
        System.setProperties(testProps);
        System.out.println(StrSubstitutor.replace("test_key=${test_key}", System.getProperties()));
        System.out.println(StrSubstitutor.replaceSystemProperties("test_key=${test_key}"));
    }

}
{code}
produces the following output:
{code}
os.name=Windows 7
test_key=test_value
test_key=${test_key}
{code}

The code linked here shows the static caching of the System Properties reference: http://commons.apache.org/proper/commons-lang/apidocs/src-html/org/apache/commons/lang3/text/StrLookup.html




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