commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Weihe (JIRA) <j...@apache.org>
Subject [jira] Created: (CONFIGURATION-424) HierachicalINIConfiguration has problems with configurations only containing a global section
Date Fri, 15 Oct 2010 21:04:35 GMT
HierachicalINIConfiguration has problems with configurations only containing a global section
---------------------------------------------------------------------------------------------

                 Key: CONFIGURATION-424
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-424
             Project: Commons Configuration
          Issue Type: Bug
          Components: Format
            Reporter: André Weihe
            Priority: Critical


HierachicalINIConfiguration#getSections() does not correctly deal with configurations containing
only a globalSection() leading for example to a configuration containing only a global section
to be saved as a zero length file.

The current code only acknowledges a global section when at least one other named section
is present, if none is present it just returns an empty set.
Since HierachicalINIConfiguration#save() saves only the contents of the set returned by getSections()
this leads to an ini file being loaded and saved again to be saved as a zero length file resulting
in the loss of all data in the file (thus the critical priority).

Workaround:
Create at least one named section

Proposed fix (sourcecode): 
Set sections = new ListOrderedSet();

for (Iterator it = getRootNode().getChildren().iterator(); it.hasNext();)
{
    ConfigurationNode node = (ConfigurationNode) it.next();
    if (isSectionNode(node))
    {
        sections.add(node.getName());
    }
    else
    {
        sections.add(null);
    }
}

return sections;


Beware:
I have NOT tested this (at all).
It's just the way I would write this method instead of the way it was written before. But
since I don't know the big picture maybe there was a (good) reason to write the current version
the way it is now so my seemingly easy fix could not work correctly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message