Description
FormComponent.updateCollectionModel should handle situation, when getter returns unmodifiable list.
Proposed solution:
formComponent.modelChanging();
booelan isChanged;
try {
collection.clear();
if (convertedInput != null)
isChanged = true;
catch (Exception e)
try
{ if(isChanged) formComponent.getModel().setObject(collection); else // TODO: create here collection as non-abstract successor of setObject declared argument formComponent.getModel().setObject(new ArrayList(convertedInput)); isChanged = true; }catch (Exception e)
{ // ignore this exception because it could be that there // is not setter for this collection. logger.info("An error occurred while trying to set the new value for the property attached to " + formComponent, e); } // at least one update method should pass successfully
if(isChanged)
formComponent.modelChanged();
else
throw new RuntimeException("An error occurred while trying to modify value for the property attached to " + formComponent);