[ 
https://issues.apache.org/jira/browse/CONFIGURATION-277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oliver Heger resolved CONFIGURATION-277.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5

A fix was applied that catches the potential UnsupportedOperationException. If 
such an exception is caught, clearProperty() will be called for the remaining 
properties.

> 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
>            Assignee: Oliver Heger
>             Fix For: 1.5
>
>
> 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