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]