Hello Thomas,

You might want to look at the unit tests to see if there are any
expectations regarding empty section names. I don't know off the top of my
head.

Gary

On Mon, Apr 15, 2024, 11:41 AM Steiner Thomas
<thomas.stei...@engel.at.invalid> wrote:

> Hi,
>
> should it possible to parse an ini-File with an empty section key with
> commons-configuration2 2.10.1?
>
> Or is there any intended purpose why the following example doesn't work:
>     INIConfiguration iniConfiguration = new INIConfiguration();
>     try (FileReader fileReader = new FileReader(file)) {
>       iniConfiguration.read(fileReader);
>     } catch (ConfigurationException | IOException e) {
>       e.printStackTrace();
>     }
>     SubnodeConfiguration subSection = iniConfiguration.getSection("");
>     String nextKey = subSection.getKeys().next();
>     assertNotNull(nextKey);
>     assertEquals("property", nextKey);
>     Object nextValue = subSection.getProperty(nextKey);
>     assertNotNull(nextValue); // FIXME: value is null
>     assertEquals("property1", nextValue);
>
> emptySection.ini:
>   []
>   property = "property1"
>
> The value is null due to the keyBuffer's length in the
> DefaultConfigurationKey is 0 and the endIndex is also 0 so the
> KeyIterator's hasNext() is false.
>
> Sections with a space (' ') are parsed as expected:
>     INIConfiguration iniConfiguration = new INIConfiguration();
>     try (FileReader fileReader = new FileReader(file)) {
>       iniConfiguration.read(fileReader);
>     } catch (ConfigurationException | IOException e) {
>       e.printStackTrace();
>     }
>     SubnodeConfiguration subSection = iniConfiguration.getSection(" ");
>     String nextKey = subSection.getKeys().next();
>     assertNotNull(nextKey);
>     assertEquals("property", nextKey);
>     Object nextValue = subSection.getProperty(nextKey);
>     assertNotNull(nextValue);
>     assertEquals("property1", nextValue);
>
> spaceSection.ini:
>   [ ]
>   property = "property1"
>
> Best regards,
> Thomas Steiner
>
>
> ********************************************************************************************************************
> Please note the information on data protection at
> https://www.engelglobal.com/dataprotection.
>
>
> ********************************************************************************************************************
>
> Important Notice:
> This electronic transmission (including any attachments) is intended
> solely for the use and information
> of the addressee(s). It may contain confidential or legally privileged
> information. Any unauthorized use
> or disclosure of this message is strictly prohibited.If you are not the
> intended recipient, please notify
> the sender immediately and delete the message and its attachments.
> The sender does not guarantee the integrity of this transmission and shall
> therefore never be liable if
> the message is altered or falsified nor for any virus, interception or
> damage to your system.
>

Reply via email to