19

I want to load configuration (apache commons configuration) from a properties file. My program is:

PropertiesConfiguration pc = new PropertiesConfiguration("my.properties");
System.out.println(pc.getString("myValue"));

In my.properties I have

 myValue=value,

with comma

When I run program the output is value, not value, with comma. Looks like value is loaded until , character.

Any ideas?

Sam Dufel
  • 17,560
  • 3
  • 48
  • 51
Tyler
  • 213
  • 1
  • 2
  • 5
  • 2
    Note that this is [no longer the default behavior in commons-configuration 2](https://commons.apache.org/proper/commons-configuration/userguide/upgradeto2_0.html#Accessing_Configuration_Properties). – David Moles Sep 27 '19 at 19:18

5 Answers5

16

That behavior is clearly documented, i.e., that PropertiesConfiguration treats a value with a comma as multiple values allowing things like:

fruit=apples,banana,oranges

to be interpreted sensibly. The fix (from the doc) is to add a backslash to escape the comma, e.g.,

myKey=value\, with an escaped comma
David Moles
  • 48,006
  • 27
  • 136
  • 235
ig0774
  • 39,669
  • 3
  • 55
  • 57
10

Check Javadoc. You have to setDelimiterParsingDisabled(true) to disable parsing list of properties.

David Moles
  • 48,006
  • 27
  • 136
  • 235
KrzyH
  • 4,256
  • 1
  • 31
  • 43
7

Actually propConfig.setDelimiterParsingDisabled(true) is working, but you must load the config file after this setting, for example:

propConfig = new PropertiesConfiguration();
propConfig.setDelimiterParsingDisabled(true);
propConfig.load(propertiesFile);

Settings won't work if your code like is:

propConfig = new PropertiesConfiguration(propertiesFile);
propConfig.setDelimiterParsingDisabled(true);
Radix
  • 2,527
  • 1
  • 19
  • 43
kain
  • 214
  • 2
  • 4
1

PropertiesConfiguration interprets ',' as a value separator.

Karl-Bjørnar Øie
  • 5,554
  • 1
  • 24
  • 30
0

If you put \ before the ,, you escape it, and you can read the value

Example:

myValue=value\, with comma

You read = value, with comma without problems

BuZZ-dEE
  • 6,075
  • 12
  • 66
  • 96
WarsClon
  • 441
  • 4
  • 3