[ 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]