AbstractConfiguration should handle UnsupportedOperationExceptions in 
Iterator.remove() gracefully
--------------------------------------------------------------------------------------------------

                 Key: CONFIGURATION-277
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-277
             Project: Commons Configuration
          Issue Type: Bug
    Affects Versions: 1.4
            Reporter: Michael Rudolf


Hi,

In AbstractConfiguration method clear() on line 533 (see code below) a possible 
UnsupportedOperationException is not caught resulting in the malfunctioning of 
the whole method. However, the documentation of the getKeys() method itself 
warns about relying on the remove() method of interface Iterator. The clear() 
method should not propagate that exception, it should catch it and try the 
clearProperty(String) approach if the remove() method is not supported.

            Iterator it = getKeys();
            while (it.hasNext())
            {
                String key = (String) it.next();
                it.remove();                                          <------- 
EVIL!

                if (containsKey(key))
                {
                    // workaround for Iterators that do not remove the property 
on calling remove()
                    clearProperty(key);
                }

Best regards,
Michael


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to