Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 63228 invoked from network); 6 Mar 2010 16:36:32 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 6 Mar 2010 16:36:32 -0000 Received: (qmail 24733 invoked by uid 500); 6 Mar 2010 16:36:14 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 24659 invoked by uid 500); 6 Mar 2010 16:36:14 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 24652 invoked by uid 99); 6 Mar 2010 16:36:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 06 Mar 2010 16:36:14 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 06 Mar 2010 16:36:13 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 074E223889E9; Sat, 6 Mar 2010 16:35:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r919796 - in /commons/proper/configuration/trunk: src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java xdocs/changes.xml Date: Sat, 06 Mar 2010 16:35:52 -0000 To: commits@commons.apache.org From: oheger@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100306163553.074E223889E9@eris.apache.org> Author: oheger Date: Sat Mar 6 16:35:52 2010 New Revision: 919796 URL: http://svn.apache.org/viewvc?rev=919796&view=rev Log: CONFIGURATION-409: HierarchicalINIConfiguration.save() now works correctly with sections containing a delimiter character in their name. Modified: commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java commons/proper/configuration/trunk/xdocs/changes.xml Modified: commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java?rev=919796&r1=919795&r2=919796&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java (original) +++ commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/HierarchicalINIConfiguration.java Sat Mar 6 16:35:52 2010 @@ -269,15 +269,20 @@ while (it.hasNext()) { String section = (String) it.next(); + Configuration subset; if (section != null) { out.print("["); out.print(section); out.print("]"); out.println(); + subset = createSubnodeConfiguration(getSectionNode(section)); + } + else + { + subset = getSection(null); } - Configuration subset = getSection(section); Iterator keys = subset.getKeys(); while (keys.hasNext()) { Modified: commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java?rev=919796&r1=919795&r2=919796&view=diff ============================================================================== --- commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java (original) +++ commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalINIConfiguration.java Sat Mar 6 16:35:52 2010 @@ -631,6 +631,23 @@ } /** + * Tests whether a configuration can be saved that contains section keys + * with delimiter characters. This test is related to CONFIGURATION-409. + */ + public void testSaveKeysWithDelimiters() throws ConfigurationException + { + HierarchicalINIConfiguration conf = new HierarchicalINIConfiguration(); + final String section = "Section..with..dots"; + conf.addProperty(section + ".test1", "test1"); + conf.addProperty(section + ".test2", "test2"); + conf.save(TEST_FILE); + conf = new HierarchicalINIConfiguration(); + conf.load(TEST_FILE); + assertEquals("Wrong value (1)", "test1", conf.getString(section + ".test1")); + assertEquals("Wrong value (2)", "test2", conf.getString(section + ".test2")); + } + + /** * A thread class for testing concurrent access to the global section. */ private static class GlobalSectionTestThread extends Thread Modified: commons/proper/configuration/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/xdocs/changes.xml?rev=919796&r1=919795&r2=919796&view=diff ============================================================================== --- commons/proper/configuration/trunk/xdocs/changes.xml (original) +++ commons/proper/configuration/trunk/xdocs/changes.xml Sat Mar 6 16:35:52 2010 @@ -23,6 +23,10 @@ + + HierarchicalINIConfiguration now correctly saves sections whose name + contains delimiter characters. + Fixed a potential IllegalStateException in HierarchicalINIConfiguration that can be thrown when the global section is requested concurrently.